@@ -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 )
@@ -43,19 +50,23 @@ message(STATUS "Building libCacheSim...")
4350
4451# Set compiler environment variables if available
4552set (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
5455list (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
6071execute_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
98109set (CMAKE_POSITION_INDEPENDENT_CODE ON )
99110set (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
102121project (libCacheSim-python VERSION "${LIBCACHESIM_VERSION} " )
103122
0 commit comments