Changeset: 7db80ff1b93a for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7db80ff1b93a Modified Files: CMakeLists.txt Branch: cmake-fun Log Message:
Some compiler parameters are available in every compiler, so don't test for them. diffs (85 lines): diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -603,12 +603,13 @@ else() # GCC, Clang and Apple clang MT_addCompilerFlag("-g3" "-g3" "${CMAKE_C_FLAGS_DEBUG}" "Debug" CMAKE_C_FLAGS_DEBUG) MT_addCompilerFlag("-g3" "-g3" "${CMAKE_C_FLAGS_RELWITHDEBINFO}" "RelWithDebugInfo" CMAKE_C_FLAGS_RELWITHDEBINFO) - if(NOT ${CMAKE_C_FLAGS_RELEASE} MATCHES "D_FORTIFY_SOURCE") - set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -D_FORTIFY_SOURCE=2") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO} -D_FORTIFY_SOURCE=2") - set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL} -D_FORTIFY_SOURCE=2") - message(STATUS "Added definition _FORTIFY_SOURCE=2 for Release, RelWithDebugInfo and MinSizeRel builds") - endif() + MT_removeCompilerFlag("-D_FORTIFY_SOURCE=[013-9]" "-D_FORTIFY_SOURCE=x" "${CMAKE_C_FLAGS_RELEASE}" "Release" CMAKE_C_FLAGS_RELEASE) + MT_removeCompilerFlag("-D_FORTIFY_SOURCE=[013-9]" "-D_FORTIFY_SOURCE=x" "${CMAKE_C_FLAGS_RELWITHDEBINFO}" "RelWithDebugInfo" CMAKE_C_FLAGS_RELWITHDEBINFO) + MT_removeCompilerFlag("-D_FORTIFY_SOURCE=[013-9]" "-D_FORTIFY_SOURCE=x" "${CMAKE_C_FLAGS_MINSIZEREL}" "MinSizeRel" CMAKE_C_FLAGS_MINSIZEREL) + MT_addCompilerFlag("-D_FORTIFY_SOURCE=2" "-D_FORTIFY_SOURCE=2" "${CMAKE_C_FLAGS_RELEASE}" "Release" CMAKE_C_FLAGS_RELEASE) + MT_addCompilerFlag("-D_FORTIFY_SOURCE=2" "-D_FORTIFY_SOURCE=2" "${CMAKE_C_FLAGS_RELWITHDEBINFO}" "RelWithDebugInfo" CMAKE_C_FLAGS_RELWITHDEBINFO) + MT_addCompilerFlag("-D_FORTIFY_SOURCE=2" "-D_FORTIFY_SOURCE=2" "${CMAKE_C_FLAGS_MINSIZEREL}" "MinSizeRel" CMAKE_C_FLAGS_MINSIZEREL) + # Add -fomit-frame-pointer for non debug builds MT_addCompilerFlag("-fomit-frame-pointer" "-fomit-frame-pointer" "${CMAKE_C_FLAGS_RELEASE}" "Release" CMAKE_C_FLAGS_RELEASE) MT_addCompilerFlag("-fomit-frame-pointer" "-fomit-frame-pointer" "${CMAKE_C_FLAGS_MINSIZEREL}" "MinSizeRel" CMAKE_C_FLAGS_MINSIZEREL) @@ -636,16 +637,17 @@ function(MT_checkCompilerFlag Flag) # WA cmake_pop_check_state() if(COMPILER_${FLAG_TEST}) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${Flag}" PARENT_SCOPE) + message(STATUS "Added ${Flag} flag for all build(s)") endif() endif() endfunction() if(${ENABLE_STRICT} STREQUAL "YES") if(${CMAKE_C_COMPILER_ID} MATCHES "^GNU|Clang|AppleClang$") - MT_checkCompilerFlag("-W") - MT_checkCompilerFlag("-Werror") - MT_checkCompilerFlag("-Wall") - MT_checkCompilerFlag("-Wextra") + MT_addCompilerFlag("-W" "-W" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) + MT_addCompilerFlag("-Werror" "-Werror" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) + MT_addCompilerFlag("-Wall" "-Wall" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) + MT_addCompilerFlag("-Wextra" "-Wextra" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) MT_checkCompilerFlag("-Werror-implicit-function-declaration") MT_checkCompilerFlag("-Wpointer-arith") MT_checkCompilerFlag("-Wundef") @@ -676,26 +678,30 @@ if(${ENABLE_STRICT} STREQUAL "YES") MT_checkCompilerFlag("-Wunreachable-code") elseif(${CMAKE_C_COMPILER_ID} STREQUAL "Intel") if(NOT WIN32) - MT_checkCompilerFlag("${COMPILER_OPTION}shared-intel") + MT_addCompilerFlag("${COMPILER_OPTION}shared-intel" "${COMPILER_OPTION}shared-intel" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) endif() - MT_checkCompilerFlag("${COMPILER_OPTION}Wall") - MT_checkCompilerFlag("${COMPILER_OPTION}Wcheck") - MT_checkCompilerFlag("${COMPILER_OPTION}Werror-all") - MT_checkCompilerFlag("${COMPILER_OPTION}${INTEL_OPTION_EXTRA}we140,147,181,266,271,593,810") - MT_checkCompilerFlag("${COMPILER_OPTION}${INTEL_OPTION_EXTRA}wd193,279,981,1357,1418,1419,2259") + MT_addCompilerFlag("${COMPILER_OPTION}Wall" "${COMPILER_OPTION}Wall" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) + MT_addCompilerFlag("${COMPILER_OPTION}Wcheck" "${COMPILER_OPTION}Wcheck" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) + MT_addCompilerFlag("${COMPILER_OPTION}Werror-all" "${COMPILER_OPTION}Werror-all" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) + MT_addCompilerFlag("${COMPILER_OPTION}${INTEL_OPTION_EXTRA}we140,147,181,266,271,593,810" "${COMPILER_OPTION}${INTEL_OPTION_EXTRA}we140,147,181,266,271,593,810" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) + MT_addCompilerFlag("${COMPILER_OPTION}${INTEL_OPTION_EXTRA}wd193,279,981,1357,1418,1419,2259" "${COMPILER_OPTION}${INTEL_OPTION_EXTRA}wd193,279,981,1357,1418,1419,2259" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) elseif(MSVC) MT_addCompilerFlag("/WX" "/WX" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) endif() endif() -if(NOT ${ENABLE_SANITIZER} STREQUAL "NO") +if(${ENABLE_SANITIZER} STREQUAL "YES") if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU") - MT_checkCompilerFlag("-fsanitize=address") - MT_checkCompilerFlag("-fno-omit-frame-pointer") + MT_addCompilerFlag("-fsanitize=address" "-fsanitize=address" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) + MT_addCompilerFlag("-fno-omit-frame-pointer" "-fsanitize=address" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) add_definitions(-DNO_ATOMIC_INSTRUCTIONS) else() message(FATAL_ERROR "Sanitizer only supported with GCC") endif() +elseif(${CMAKE_C_COMPILER_ID} STREQUAL "GNU") + MT_removeCompilerFlag("-fsanitize=address" "-fsanitize=address" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) + MT_removeCompilerFlag("-fno-omit-frame-pointer" "-fsanitize=address" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) + remove_definitions(-DNO_ATOMIC_INSTRUCTIONS) endif() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "Compilation flags for all builds" FORCE) _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list