Skip to content

Commit 3e549e2

Browse files
committed
cleanup continue
1 parent f40c56f commit 3e549e2

1 file changed

Lines changed: 47 additions & 95 deletions

File tree

CMakeLists.txt

Lines changed: 47 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@ set(CMAKE_CXX_EXTENSIONS Off)
1616
# export compile commands, useful for IDEs
1717
set(EXPORT_COMPILE_COMMANDS ON)
1818

19-
# #######################################
20-
# define options #
21-
# options are cached variables https://stackoverflow.com/questions/35744647/disabling-cmake-option-has-no-effect
22-
# #######################################
19+
# Define build options
2320
# echo madvise | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
2421
option(USE_HUGEPAGE "use transparent hugepage" ON)
2522
option(ENABLE_TESTS "whether enable test" ON)
@@ -31,9 +28,7 @@ option(ENABLE_3L_CACHE "enable 3LCache" OFF)
3128
set(LOG_LEVEL NONE CACHE STRING "change the logging level")
3229
set_property(CACHE LOG_LEVEL PROPERTY STRINGS INFO WARN ERROR DEBUG VERBOSE VVERBOSE VVVERBOSE)
3330

34-
# #######################################
35-
# detect platform #
36-
# #######################################
31+
# Platform detection
3732
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
3833
message(STATUS "Mac OS X detected, version ${CMAKE_SYSTEM_VERSION}")
3934
add_definitions(-DOS_DARWIN)
@@ -64,20 +59,14 @@ configure_file(libCacheSim/include/config.h.in libCacheSim/include/config.h)
6459

6560
if(SUPPORT_TTL)
6661
add_compile_definitions(SUPPORT_TTL=1)
67-
else()
68-
remove_definitions(SUPPORT_TTL)
69-
endif(SUPPORT_TTL)
62+
endif()
7063

7164
if(USE_HUGEPAGE)
7265
add_compile_definitions(USE_HUGEPAGE=1)
73-
else()
74-
remove_definitions(USE_HUGEPAGE)
75-
endif(USE_HUGEPAGE)
66+
endif()
7667

7768
if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libCacheSim/cache/eviction/priv")
7869
add_compile_definitions(INCLUDE_PRIV=1)
79-
else()
80-
remove_definitions(INCLUDE_PRIV)
8170
endif()
8271

8372
string(TOLOWER "${LOG_LEVEL}" LOG_LEVEL_LOWER)
@@ -105,19 +94,7 @@ else()
10594
add_compile_definitions(LOGLEVEL=7)
10695
endif()
10796

108-
109-
110-
message(STATUS "CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG} CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO} CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}")
111-
112-
# string( REPLACE "/DNDEBUG" "" CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
113-
message(STATUS "SUPPORT TTL ${SUPPORT_TTL}, USE_HUGEPAGE ${USE_HUGEPAGE}, LOGLEVEL ${LOG_LEVEL}, ENABLE_GLCACHE ${ENABLE_GLCACHE}, ENABLE_LRB ${ENABLE_LRB}, ENABLE_3L_CACHE ${ENABLE_3L_CACHE}, OPT_SUPPORT_ZSTD_TRACE ${OPT_SUPPORT_ZSTD_TRACE}")
114-
115-
# add_compile_options(-fsanitize=address)
116-
# add_link_options(-fsanitize=address)
117-
118-
# #######################################
119-
# compiler flags #
120-
# #######################################
97+
# Compiler flags
12198
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -Wno-unused-variable -Wno-unused-function -Wno-unused-parameter -Wno-unused-but-set-variable -Wpedantic -Wformat=2 -Wformat-security -Wshadow -Wwrite-strings -Wstrict-prototypes -Wold-style-definition -Wredundant-decls -Wnested-externs -Wmissing-include-dirs")
12299

123100
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -Wno-deprecated-copy -Wno-unused-variable -Wno-unused-function -Wno-unused-parameter -Wno-unused-but-set-variable -Wno-pedantic -Wformat=2 -Wformat-security -Wshadow -Wwrite-strings -Wmissing-include-dirs")
@@ -129,9 +106,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -Wno-deprecated-co
129106
# string(REPLACE "" "" LOCAL_CFLAGS ${CFLAGS})
130107
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} $ENV{CFLAGS} ${LOCAL_CFLAGS}")
131108

132-
# #######################################
133-
# find dependency #
134-
# #######################################
109+
# Find dependencies
135110
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
136111

137112
find_package(GLib REQUIRED)
@@ -155,14 +130,12 @@ if(OPT_SUPPORT_ZSTD_TRACE)
155130

156131
link_libraries(${ZSTD_LIBRARIES})
157132
message(STATUS "ZSTD_INCLUDE_DIR ${ZSTD_INCLUDE_DIR}, ZSTD_LIBRARIES ${ZSTD_LIBRARIES}")
158-
else()
159-
remove_definitions(SUPPORT_ZSTD_TRACE)
160-
endif(OPT_SUPPORT_ZSTD_TRACE)
133+
endif()
161134

162-
# libgoogle-perftools-dev google-perftools
163-
# tcmalloc causes trouble with valgrind https://github.com/gperftools/gperftools/issues/792
164-
# when using valgrind, we should not compile with tcmalloc
165-
# maybe disable tcmalloc under debug model
135+
# TCMalloc (libgoogle-perftools-dev google-perftools)
136+
# Note: tcmalloc causes trouble with valgrind
137+
# https://github.com/gperftools/gperftools/issues/792
138+
# When using valgrind, we should not compile with tcmalloc
166139
if(NOT ${CMAKE_BUILD_TYPE} MATCHES "Debug")
167140
find_package(Tcmalloc)
168141

@@ -176,42 +149,42 @@ endif()
176149

177150
find_package(Threads)
178151

179-
# find_package(Boost REQUIRED)
180-
# message(STATUS "boost found? " ${Boost_FOUND} ", library " ${Boost_LIBRARIES} ", header " ${Boost_INCLUDE_DIRS})
181-
# include_directories(${Boost_INCLUDE_DIRS})
182152
if(ENABLE_GLCACHE)
183153
find_package(xgboost REQUIRED)
184154
include_directories(${XGBOOST_INCLUDE_DIR})
185155
link_libraries(xgboost::xgboost)
186156
add_compile_definitions(ENABLE_GLCACHE=1)
187157
message(STATUS "XGBOOST_INCLUDE_DIR=${XGBOOST_INCLUDE_DIR}")
188-
else()
189-
remove_definitions(ENABLE_GLCACHE)
190158
endif()
191159

192-
foreach (FEATURE ENABLE_LRB ENABLE_3L_CACHE)
193-
if (${FEATURE})
160+
foreach(FEATURE ENABLE_LRB ENABLE_3L_CACHE)
161+
if(${FEATURE})
194162
find_path(LIGHTGBM_PATH LightGBM)
195-
if (NOT LIGHTGBM_PATH)
163+
if(NOT LIGHTGBM_PATH)
196164
message(FATAL_ERROR "LIGHTGBM_PATH not found")
197-
endif ()
165+
endif()
198166
include_directories(${LIGHTGBM_PATH})
199167

200168
find_library(LIGHTGBM_LIB _lightgbm)
201-
if (NOT LIGHTGBM_LIB)
169+
if(NOT LIGHTGBM_LIB)
202170
message(FATAL_ERROR "LIGHTGBM_LIB not found")
203-
endif ()
171+
endif()
204172
link_libraries(${LIGHTGBM_LIB})
205173
add_compile_definitions(${FEATURE}=1)
206-
else()
207-
remove_definitions(${FEATURE})
208174
endif()
209175
endforeach()
210-
# link_libraries("-ldl -lm ${LIBS}")
211-
212-
# put binary in bin directory
176+
# Put binary in bin directory
213177
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
214178

179+
# Status messages
180+
message(STATUS "CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}")
181+
message(STATUS "CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
182+
message(STATUS "CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}")
183+
message(STATUS "SUPPORT TTL ${SUPPORT_TTL}, USE_HUGEPAGE ${USE_HUGEPAGE}")
184+
message(STATUS "LOGLEVEL ${LOG_LEVEL}, ENABLE_GLCACHE ${ENABLE_GLCACHE}")
185+
message(STATUS "ENABLE_LRB ${ENABLE_LRB}, ENABLE_3L_CACHE ${ENABLE_3L_CACHE}")
186+
message(STATUS "OPT_SUPPORT_ZSTD_TRACE ${OPT_SUPPORT_ZSTD_TRACE}")
187+
215188
message(STATUS "<<++=====------------------\\/------------------=====++>>")
216189
message(STATUS "<<++ libCacheSim summary ++>>")
217190
message(STATUS "<<++=====------------------/\\------------------=====++>>")
@@ -235,9 +208,7 @@ message(STATUS "========================================================")
235208
message(STATUS "============= Status of optional features ==============")
236209
message(STATUS "========================================================")
237210

238-
# #######################################
239-
# library compilation #
240-
# #######################################
211+
# Library compilation
241212
# Define include directories for reuse in subdirectories
242213
set(libCacheSim_include_dir ${CMAKE_CURRENT_SOURCE_DIR}/libCacheSim/include)
243214
set(libCacheSim_binary_include_dir ${CMAKE_CURRENT_BINARY_DIR}/libCacheSim/include)
@@ -255,10 +226,8 @@ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/libCacheSim/bin)
255226
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/libCacheSim/traceAnalyzer)
256227
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/libCacheSim/mrcProfiler)
257228

258-
# #######################################
259-
# library install #
260-
# #######################################
261-
# compile a single library
229+
# Library installation
230+
# Compile a single library
262231
file(GLOB LIB_SOURCE ${PROJECT_SOURCE_DIR}/libCacheSim/*.c)
263232

264233
file(GLOB cache_source
@@ -274,50 +243,38 @@ file(GLOB cache_source
274243
if(EXISTS ${PROJECT_SOURCE_DIR}/libCacheSim/cache/eviction/fifo)
275244
file(GLOB fifo_source
276245
${PROJECT_SOURCE_DIR}/libCacheSim/cache/eviction/fifo/*.c)
277-
set(cache_source
278-
${cache_source} ${fifo_source}
279-
)
246+
set(cache_source ${cache_source} ${fifo_source})
280247
endif()
281248

282249
if(EXISTS ${PROJECT_SOURCE_DIR}/libCacheSim/cache/eviction/belady)
283250
file(GLOB belady_source
284251
${PROJECT_SOURCE_DIR}/libCacheSim/cache/eviction/belady/*.c)
285-
set(cache_source
286-
${cache_source} ${belady_source}
287-
)
252+
set(cache_source ${cache_source} ${belady_source})
288253
endif()
289254

290255
if(EXISTS ${PROJECT_SOURCE_DIR}/libCacheSim/cache/eviction/priv)
291256
file(GLOB priv_source
292257
${PROJECT_SOURCE_DIR}/libCacheSim/cache/eviction/priv/*.c)
293-
set(cache_source
294-
${cache_source} ${priv_source}
295-
)
258+
set(cache_source ${cache_source} ${priv_source})
296259
endif()
297260

298261
if(ENABLE_GLCACHE)
299262
file(GLOB GLCache_source
300263
${PROJECT_SOURCE_DIR}/libCacheSim/cache/eviction/GLCache/*.c)
301-
set(cache_source
302-
${cache_source} ${GLCache_source}
303-
)
304-
endif(ENABLE_GLCACHE)
264+
set(cache_source ${cache_source} ${GLCache_source})
265+
endif()
305266

306267
if(ENABLE_LRB)
307268
file(GLOB LRB_source
308269
${PROJECT_SOURCE_DIR}/libCacheSim/cache/eviction/LRB/*.cpp)
309-
set(cache_source
310-
${cache_source} ${LRB_source}
311-
)
312-
endif(ENABLE_LRB)
270+
set(cache_source ${cache_source} ${LRB_source})
271+
endif()
313272

314273
if(ENABLE_3L_CACHE)
315274
file(GLOB ThreeLCache_source
316275
${PROJECT_SOURCE_DIR}/libCacheSim/cache/eviction/3LCache/*.cpp)
317-
set(cache_source
318-
${cache_source} ${ThreeLCache_source}
319-
)
320-
endif(ENABLE_3L_CACHE)
276+
set(cache_source ${cache_source} ${ThreeLCache_source})
277+
endif()
321278

322279
set(reader_source
323280
${PROJECT_SOURCE_DIR}/libCacheSim/traceReader/reader.c
@@ -329,10 +286,9 @@ set(reader_source
329286
)
330287

331288
if(OPT_SUPPORT_ZSTD_TRACE)
332-
set(reader_source
333-
${reader_source} ${PROJECT_SOURCE_DIR}/libCacheSim/traceReader/generalReader/zstdReader.c
334-
)
335-
endif(OPT_SUPPORT_ZSTD_TRACE)
289+
set(reader_source ${reader_source}
290+
${PROJECT_SOURCE_DIR}/libCacheSim/traceReader/generalReader/zstdReader.c)
291+
endif()
336292

337293
file(GLOB dataStructure_source
338294
${PROJECT_SOURCE_DIR}/libCacheSim/dataStructure/*.c
@@ -348,27 +304,23 @@ file(GLOB utils_source
348304
${PROJECT_SOURCE_DIR}/libCacheSim/utils/*.c
349305
)
350306

351-
set(LIB_SOURCE ${LIB_SOURCE} ${cache_source} ${reader_source} ${dataStructure_source} ${profiler_source} ${utils_source})
307+
set(LIB_SOURCE ${LIB_SOURCE} ${cache_source} ${reader_source}
308+
${dataStructure_source} ${profiler_source} ${utils_source})
352309

353-
# ##################
310+
# Build configuration
354311
# # https://stackoverflow.com/questions/32469953/why-is-cmake-designed-so-that-it-removes-runtime-path-when-installing
355312
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
356313

357314
add_library(${PROJECT_NAME} ${LIB_SOURCE})
358-
# target_compile_options(${PROJECT_NAME} PRIVATE -fPIC)
359315
target_link_options(${PROJECT_NAME} PRIVATE -Wl,--export-dynamic)
360-
361-
362-
# add_library(${PROJECT_NAME} SHARED ${LIB_SOURCE})
363316
set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${${PROJECT_NAME}_VERSION})
364317
set_target_properties(${PROJECT_NAME} PROPERTIES LINKER_LANGUAGE C)
365318
set_target_properties(${PROJECT_NAME} PROPERTIES PUBLIC_HEADER ${PROJECT_SOURCE_DIR}/libCacheSim/include/libCacheSim.h)
366319

367320
configure_file(${PROJECT_SOURCE_DIR}/${PROJECT_NAME}.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc @ONLY)
368321
configure_file(${PROJECT_SOURCE_DIR}/${PROJECT_NAME}.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/Find${PROJECT_NAME}.cmake @ONLY)
369322

370-
# this overwrites the default config.h
371-
# configure_file(${PROJECT_SOURCE_DIR}/libCacheSim/include/config.h.in ${PROJECT_SOURCE_DIR}/libCacheSim/include/config.h @ONLY)
323+
# Install configuration
372324
install(DIRECTORY ${PROJECT_SOURCE_DIR}/libCacheSim/include/ DESTINATION include)
373325
install(FILES ${CMAKE_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION lib/pkgconfig)
374326
install(FILES ${CMAKE_BINARY_DIR}/Find${PROJECT_NAME}.cmake DESTINATION ${CMAKE_ROOT}/Modules/ COMPONENT dev)
@@ -377,7 +329,7 @@ install(TARGETS ${PROJECT_NAME}
377329
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
378330
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
379331

380-
# ############################
332+
# Testing configuration
381333
if(ENABLE_TESTS)
382334
include(CTest)
383335
enable_testing()

0 commit comments

Comments
 (0)