Changeset: a0b77fec6eb2 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=a0b77fec6eb2 Modified Files: CMakeLists.txt Branch: cmake-fun Log Message:
Replace with correct check. diffs (71 lines): diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,26 +149,22 @@ else() set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_FULL_LIBDIR}") endif() -function(MT_checkCompilerFlag Flag) # WARNING this doesn't work with LINK_OPTIONS yet! - if(NOT "${CMAKE_C_FLAGS}" MATCHES "${Flag}") - string(REGEX REPLACE "[-/=,]" "" FLAG_TEST "${Flag}") # cmake will get confused if we don't remove - / = , - cmake_push_check_state() - set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${Flag}") - check_c_source_compiles("int main(int argc,char** argv){(void)argc;(void)argv;return 0;}" COMPILER_${FLAG_TEST}) - cmake_pop_check_state() - if(COMPILER_${FLAG_TEST}) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${Flag}" PARENT_SCOPE) - endif() +function(MT_addCompilerFlag REGEX_EXPRESSION FLAG_TO_ADD OLD_FLAGS BUILD NEW_FLAGS) + if(NOT "${OLD_FLAGS}" MATCHES "${REGEX_EXPRESSION}") + set(${NEW_FLAGS} "${OLD_FLAGS} ${FLAG_TO_ADD}" PARENT_SCOPE) + message(STATUS "Added ${FLAG_TO_ADD} flag for ${BUILD} build(s)") endif() endfunction() -if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") +if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND NOT ${CMAKE_C_COMPILER_ID} STREQUAL "Intel") add_definitions(-D_GNU_SOURCE -D_XOPEN_SOURCE) set(CMAKE_REQUIRED_DEFINITIONS "${CMAKE_REQUIRED_DEFINITIONS} -D_GNU_SOURCE -D_XOPEN_SOURCE") # required for tests endif() if(${CMAKE_C_COMPILER_ID} STREQUAL "Intel") if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - MT_checkCompilerFlag("-no-gcc") + if(NOT ${CMAKE_C_FLAGS} MATCHES "no-gcc") + MT_addCompilerFlag("-no-gcc" "-no-gcc" "${CMAKE_C_FLAGS}" "all" CMAKE_C_FLAGS) + endif() add_definitions(-D_Float32=float -D_Float64="long double" -D_Float32x=double -D_Float64x="long double") endif() if(EXISTS "${ROOT}/usr/include/math.h") # see https://software.intel.com/en-us/forums/intel-c-compiler/topic/760979 @@ -577,12 +573,6 @@ function(MT_removeCompilerFlag REGEX_EXP message(STATUS "Removed ${FLAG_TO_REMOVE} flag for ${BUILD} build(s)") endif() endfunction() -function(MT_addCompilerFlag REGEX_EXPRESSION FLAG_TO_ADD OLD_FLAGS BUILD NEW_FLAGS) - if(NOT "${OLD_FLAGS}" MATCHES "${REGEX_EXPRESSION}") - set(${NEW_FLAGS} "${OLD_FLAGS} ${FLAG_TO_ADD}" PARENT_SCOPE) - message(STATUS "Added ${FLAG_TO_ADD} flag for ${BUILD} build(s)") - endif() -endfunction() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") # Initialize variable if(MSVC) @@ -667,6 +657,19 @@ else() #GCC, clang and Apple clang endif() endif() +function(MT_checkCompilerFlag Flag) # WARNING this doesn't work with LINK_OPTIONS yet! + if(NOT "${CMAKE_C_FLAGS}" MATCHES "${Flag}") + string(REGEX REPLACE "[-/=,]" "" FLAG_TEST "${Flag}") # cmake will get confused if we don't remove - / = , + cmake_push_check_state() + set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} ${Flag}") + check_c_source_compiles("int main(int argc,char** argv){(void)argc;(void)argv;return 0;}" COMPILER_${FLAG_TEST}) + cmake_pop_check_state() + if(COMPILER_${FLAG_TEST}) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${Flag}" PARENT_SCOPE) + endif() + endif() +endfunction() + if(${ENABLE_STRICT} STREQUAL "YES") if(${CMAKE_C_COMPILER_ID} MATCHES "^GNU|Clang|AppleClang$") MT_checkCompilerFlag("-W") _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list