Skip to content

Commit e025ae9

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

File tree

1 file changed

+31
-12
lines changed

1 file changed

+31
-12
lines changed

CMakeLists.txt

Lines changed: 31 additions & 12 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)
@@ -43,19 +50,23 @@ message(STATUS "Building libCacheSim...")
4350

4451
# Set compiler environment variables if available
4552
set(CMAKE_ARGS "")
46-
if(DEFINED ENV{CC})
47-
list(APPEND CMAKE_ARGS "-DCMAKE_C_COMPILER=$ENV{CC}")
48-
endif()
49-
if(DEFINED ENV{CXX})
50-
list(APPEND CMAKE_ARGS "-DCMAKE_CXX_COMPILER=$ENV{CXX}")
51-
endif()
5253

5354
# Add compiler flags to disable specific checks
5455
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}")
56+
57+
# Set compiler-specific CXX flags for subproject
58+
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
59+
set(SUB_CXX_FLAGS "-fPIC -fno-strict-overflow -fno-strict-aliasing -Wno-cast-user-defined -Wno-array-bounds")
60+
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
61+
set(SUB_CXX_FLAGS "-fPIC -fno-strict-overflow -fno-strict-aliasing -Wno-array-bounds")
62+
else()
63+
set(SUB_CXX_FLAGS "-fPIC -fno-strict-overflow -fno-strict-aliasing")
64+
endif()
65+
66+
list(APPEND CMAKE_ARGS "-DCMAKE_CXX_FLAGS=${SUB_CXX_FLAGS}")
67+
list(APPEND CMAKE_ARGS "-DCMAKE_CXX_FLAGS_DEBUG=-g ${SUB_CXX_FLAGS}")
68+
list(APPEND CMAKE_ARGS "-DCMAKE_CXX_FLAGS_RELEASE=-O3 ${SUB_CXX_FLAGS}")
69+
list(APPEND CMAKE_ARGS "-DCMAKE_CXX_FLAGS_RELWITHDEBINFO=-O2 -g -DNDEBUG ${SUB_CXX_FLAGS}")
5970

6071
execute_process(
6172
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 +108,15 @@ endif()
97108
# Force enable -fPIC and disable specific checks
98109
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
99110
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}")
111+
112+
# Set compiler-specific flags for current project
113+
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
114+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fno-strict-overflow -fno-strict-aliasing -Wno-cast-user-defined -Wno-array-bounds")
115+
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
116+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fno-strict-overflow -fno-strict-aliasing -Wno-array-bounds")
117+
else()
118+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -fno-strict-overflow -fno-strict-aliasing")
119+
endif()
101120

102121
project(libCacheSim-python VERSION "${LIBCACHESIM_VERSION}")
103122

0 commit comments

Comments
 (0)