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

Reply via email to