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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list