Skip to content

Commit cbca32d

Browse files
committed
Fix clang options
1 parent 6de9ef3 commit cbca32d

File tree

1 file changed

+31
-6
lines changed

1 file changed

+31
-6
lines changed

CMakeLists.txt

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,14 @@ project(libCacheSim-python)
33
set(DESCRIPTION "The libCacheSim Python Package")
44
set(PROJECT_WEB "https://docs.libcachesim.com/python")
55

6-
set(CXX_FLAGS "-Wno-cast-user-defined -Wno-array-bounds")
6+
# Set compiler-specific flags
7+
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
8+
set(CXX_FLAGS "-Wno-cast-user-defined -Wno-array-bounds")
9+
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
10+
set(CXX_FLAGS "-Wno-array-bounds")
11+
else()
12+
set(CXX_FLAGS "")
13+
endif()
714

815
# Options from the libCacheSim library
916
option(ENABLE_GLCACHE "enable group-learned cache" ON)
@@ -52,10 +59,20 @@ endif()
5259

5360
# Add compiler flags to disable specific checks
5461
list(APPEND CMAKE_ARGS "-DCMAKE_C_FLAGS=-fPIC -fno-strict-overflow -fno-strict-aliasing")
55-
list(APPEND CMAKE_ARGS "-DCMAKE_CXX_FLAGS=-fPIC -fno-strict-overflow -fno-strict-aliasing ${CXX_FLAGS}")
56-
list(APPEND CMAKE_ARGS "-DCMAKE_CXX_FLAGS_DEBUG=-g ${CXX_FLAGS}")
57-
list(APPEND CMAKE_ARGS "-DCMAKE_CXX_FLAGS_RELEASE=-O3 ${CXX_FLAGS}")
58-
list(APPEND CMAKE_ARGS "-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-O2 -g -DNDEBUG ${CXX_FLAGS}")
62+
63+
# Set compiler-specific CXX flags for subproject
64+
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
65+
set(SUB_CXX_FLAGS "-fPIC -fno-strict-overflow -fno-strict-aliasing -Wno-cast-user-defined -Wno-array-bounds")
66+
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
67+
set(SUB_CXX_FLAGS "-fPIC -fno-strict-overflow -fno-strict-aliasing -Wno-array-bounds")
68+
else()
69+
set(SUB_CXX_FLAGS "-fPIC -fno-strict-overflow -fno-strict-aliasing")
70+
endif()
71+
72+
list(APPEND CMAKE_ARGS "-DCMAKE_CXX_FLAGS=${SUB_CXX_FLAGS}")
73+
list(APPEND CMAKE_ARGS "-DCMAKE_CXX_FLAGS_DEBUG=-g ${SUB_CXX_FLAGS}")
74+
list(APPEND CMAKE_ARGS "-DCMAKE_CXX_FLAGS_RELEASE=-O3 ${SUB_CXX_FLAGS}")
75+
list(APPEND CMAKE_ARGS "-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-O2 -g -DNDEBUG ${SUB_CXX_FLAGS}")
5976

6077
execute_process(
6178
COMMAND ${CMAKE_COMMAND} -S ${LIBCACHESIM_SOURCE_DIR} -B ${LIBCACHESIM_BUILD_DIR} -G Ninja -DENABLE_LRB=${ENABLE_LRB} -DENABLE_GLCACHE=${ENABLE_GLCACHE} -DENABLE_3L_CACHE=${ENABLE_3L_CACHE} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ${CMAKE_ARGS}
@@ -97,7 +114,15 @@ endif()
97114
# Force enable -fPIC and disable specific checks
98115
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
99116
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -fno-strict-overflow -fno-strict-aliasing")
100-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fno-strict-overflow -fno-strict-aliasing ${CXX_FLAGS}")
117+
118+
# Set compiler-specific flags for current project
119+
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
120+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fno-strict-overflow -fno-strict-aliasing -Wno-cast-user-defined -Wno-array-bounds")
121+
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
122+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fno-strict-overflow -fno-strict-aliasing -Wno-array-bounds")
123+
else()
124+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fno-strict-overflow -fno-strict-aliasing")
125+
endif()
101126

102127
project(libCacheSim-python VERSION "${LIBCACHESIM_VERSION}")
103128

0 commit comments

Comments
 (0)