@@ -3,7 +3,14 @@ project(libCacheSim-python)
33set (DESCRIPTION "The libCacheSim Python Package" )
44set (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
916option (ENABLE_GLCACHE "enable group-learned cache" ON )
@@ -52,10 +59,20 @@ endif()
5259
5360# Add compiler flags to disable specific checks
5461list (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
6077execute_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
98115set (CMAKE_POSITION_INDEPENDENT_CODE ON )
99116set (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
102127project (libCacheSim-python VERSION "${LIBCACHESIM_VERSION} " )
103128
0 commit comments