diff --git a/CMakeLists.txt b/CMakeLists.txt index a2604c114..3d2dc0eed 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,37 +52,25 @@ configure_file(${CMAKE_SOURCE_DIR}/server/test/maxscale_test.h.in ${CMAKE_BINARY configure_file(${CMAKE_SOURCE_DIR}/etc/postinst.in ${CMAKE_BINARY_DIR}/postinst) configure_file(${CMAKE_SOURCE_DIR}/etc/postrm.in ${CMAKE_BINARY_DIR}/postrm) -set(CMAKE_C_FLAGS "-Wall -Wno-unused-variable -Wno-unused-function -fPIC") -set(CMAKE_CXX_FLAGS "-Wall -Wno-unused-variable -Wno-unused-function -fPIC") -set(DEBUG_FLAGS "-ggdb -pthread -pipe -Wformat -fstack-protector --param=ssp-buffer-size=4") +set(FLAGS "-Wall -Wno-unused-variable -Wno-unused-function -fPIC" CACHE STRING "Compilation flags") +set(DEBUG_FLAGS "-ggdb -pthread -pipe -Wformat -fstack-protector --param=ssp-buffer-size=4" CACHE STRING "Debug compilation flags") if(CMAKE_VERSION VERSION_GREATER 2.6) if((CMAKE_C_COMPILER_ID STREQUAL "GNU") AND (NOT (CMAKE_C_COMPILER_VERSION VERSION_LESS 4.2))) message(STATUS "C Compiler supports: -Werror=format-security") - set(DEBUG_FLAGS "${DEBUG_FLAGS} -Werror=format-security") + set(DEBUG_FLAGS "${DEBUG_FLAGS} -Werror=format-security" CACHE STRING "Debug compilation flags") endif() if((CMAKE_C_COMPILER_ID STREQUAL "GNU") AND (NOT (CMAKE_C_COMPILER_VERSION VERSION_LESS 4.6))) message(STATUS "C Compiler supports: -Wno-unused-but-set-variable") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-but-set-variable ") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-but-set-variable ") + set(FLAGS "${FLAGS} -Wno-unused-but-set-variable " CACHE STRING "Compilation flags") endif() endif() -if(CMAKE_BUILD_TYPE STREQUAL Debug) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${DEBUG_FLAGS} -DSS_DEBUG") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DEBUG_FLAGS} -DSS_DEBUG") - message(STATUS "Generating debugging symbols and enabling debugging code") -elseif(CMAKE_BUILD_TYPE STREQUAL RelWithDebInfo) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${DEBUG_FLAGS}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DEBUG_FLAGS}") - message(STATUS "Generating debugging symbols") -endif() -if(DEFINED OLEVEL ) +IF(DEFINED OLEVEL ) if((OLEVEL GREATER -1) AND (OLEVEL LESS 4) ) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O${OLEVEL}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O${OLEVEL}") + set(FLAGS "${FLAGS} -O${OLEVEL}" CACHE STRING "Compilation flags") message(STATUS "Optimization level at: ${OLEVEL}") else() message(WARNING "Optimization level was set to a bad value, ignoring it. (Valid values are 0-3)") @@ -90,16 +78,25 @@ if(DEFINED OLEVEL ) endif() if(GCOV) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") + set(FLAGS "${FLAGS} -fprofile-arcs -ftest-coverage" CACHE STRING "Compilation flags") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov") endif() if(FAKE_CODE) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DFAKE_CODE") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DFAKE_CODE") + set(FLAGS "${FLAGS} -DFAKE_CODE" CACHE STRING "Compilation flags") endif() + +set(CMAKE_C_FLAGS "${FLAGS}") +set(CMAKE_C_FLAGS_DEBUG "${DEBUG_FLAGS} -DSS_DEBUG") +set(CMAKE_C_FLAGS_RELEASE "") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "-ggdb") + +set(CMAKE_CXX_FLAGS "${FLAGS}") +set(CMAKE_CXX_FLAGS_DEBUG "${DEBUG_FLAGS} -DSS_DEBUG") +set(CMAKE_CXX_FLAGS_RELEASE "") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-ggdb") + subdirs(MYSQL_DIR_ALL ${MYSQL_DIR}) foreach(DIR ${MYSQL_DIR_ALL}) include_directories(${DIR})