Changeset: 0721fc5e60fd for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0721fc5e60fd Modified Files: CMakeLists.txt CMakeReadme.txt Branch: cmake-fun Log Message:
Fixed compilation and linking flags listening. diffs (93 lines): diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -502,10 +502,10 @@ endfunction() if(${ENABLE_STRICT} STREQUAL "YES") if(${CMAKE_C_COMPILER_ID} MATCHES "^GNU|Clang|AppleClang$") + checkCompilerFlag("-W") checkCompilerFlag("-Werror") checkCompilerFlag("-Wall") checkCompilerFlag("-Wextra") - checkCompilerFlag("-W") checkCompilerFlag("-Werror-implicit-function-declaration") checkCompilerFlag("-Wpointer-arith") checkCompilerFlag("-Wundef") @@ -539,20 +539,15 @@ if(${ENABLE_STRICT} STREQUAL "YES") checkCompilerFlag("-Wrestrict") checkCompilerFlag("-Wnested-externs") checkCompilerFlag("-Wno-char-subscripts") - if(${CMAKE_C_COMPILER_ID} STREQUAL "Clang") - checkCompilerFlag("-Wunreachable-code") - endif() + checkCompilerFlag("-Wunreachable-code") elseif(${CMAKE_C_COMPILER_ID} STREQUAL "Intel") if(CMAKE_C_COMPILER_VERSION VERSION_LESS 10) addLinkerFlag("-i_dynamic" "-i_dynamic" "${LINK_OPTIONS}" LINK_OPTIONS) - addLinkerFlag("-i_dynamic" "-i_dynamic" "${STATIC_LIBRARY_OPTIONS}" STATIC_LIBRARY_OPTIONS) else() addLinkerFlag("-shared-intel" "-shared-intel" "${LINK_OPTIONS}" LINK_OPTIONS) - addLinkerFlag("-shared-intel" "-shared-intel" "${STATIC_LIBRARY_OPTIONS}" STATIC_LIBRARY_OPTIONS) endif() if(CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 8.1 AND CMAKE_C_COMPILER_VERSION VERSION_LESS_EQUAL 11) addLinkerFlag("-wd1418" "-wd1418" "${LINK_OPTIONS}" LINK_OPTIONS) - addLinkerFlag("-wd1418" "-wd1418" "${STATIC_LIBRARY_OPTIONS}" STATIC_LIBRARY_OPTIONS) endif() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -we140 -we147") if(CMAKE_C_COMPILER_VERSION VERSION_LESS 8 OR CMAKE_C_COMPILER_VERSION VERSION_GREATER 17) @@ -594,9 +589,7 @@ if(NOT "${LINK_OPTIONS}" MATCHES "-Wl,-B set(PREV_LINK_OPTIONS "${LINK_OPTIONS}") set(LINK_OPTIONS "${LINK_OPTIONS} -Wl,-Bsymbolic-functions") check_c_compiler_flag("" HAVE_WL_BSYMBOLIC_FUNCTIONS) - if(HAVE_WL_BSYMBOLIC_FUNCTIONS) - set(STATIC_LIBRARY_OPTIONS "${STATIC_LIBRARY_OPTIONS} -Wl,-Bsymbolic-functions") - else() + if(NOT HAVE_WL_BSYMBOLIC_FUNCTIONS) set(LINK_OPTIONS "${PREV_LINK_OPTIONS}") endif() endif() @@ -2135,9 +2128,12 @@ if(NOT ${ENABLE_SHP} STREQUAL "NO") set(HAVE_SHP YES) endif() +set(CMAKE_C_LINK_FLAGS "${LINK_OPTIONS}" CACHE STRING "Link flags for all builds" FORCE) set(LINK_OPTIONS "${LINK_OPTIONS}" CACHE STRING "Link options for all builds" FORCE) -set(STATIC_LIBRARY_OPTIONS "${STATIC_LIBRARY_OPTIONS}" CACHE STRING "Link options for static libraries for all builds" FORCE) -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${X_CFLAGS}" CACHE STRING "Compilation flags for all builds" FORCE) +if(NOT "${X_CFLAGS}" STREQUAL "") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${X_CFLAGS}") +endif() +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}" CACHE STRING "Compilation flags for all builds" FORCE) set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}" CACHE STRING "Debug flags" FORCE) set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}" CACHE STRING "Release flags" FORCE) set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}" CACHE STRING "RelWithDebugInfo flags" FORCE) @@ -2145,8 +2141,9 @@ set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_ site_name(BUILD_HOST) set(builtby "$ENV{USER}@${BUILD_HOST}") -set(compilercall "${CMAKE_C_COMPILER}${CMAKE_C_FLAGS}") -set(linkercall "${CMAKE_LINKER}${CMAKE_REQUIRED_FLAGS}") +string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UPPER) +set(compilercall "${CMAKE_C_COMPILER}${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE_UPPER}}") +set(linkercall "${CMAKE_LINKER}${CMAKE_C_LINK_FLAGS}") configure_file(monetdb_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/monetdb_config.h) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/monetdb_config.h DESTINATION ${INCLUDEDIR}/monetdb) diff --git a/CMakeReadme.txt b/CMakeReadme.txt --- a/CMakeReadme.txt +++ b/CMakeReadme.txt @@ -6,7 +6,7 @@ CMAKE_C_FLAGS - C compilation flags used CMAKE_C_FLAGS_DEBUG - C compilation flags used for Debug build CMAKE_C_FLAGS_RELEASE - C compilation flags used for Release build CMAKE_INSTALL_PREFIX - Installation directory -LINK_OPTIONS - Linker options for all builds +CMAKE_C_LINK_FLAGS - Linker options for all builds - Compilation options ENABLE_ASSERT @@ -69,5 +69,4 @@ WITH_VALGRIND WITH_ZLIB Linux notes: - - Make install doesn't run ldconfig, use LD_LIBRARY_PATH https://cmake.org/pipermail/cmake/2016-June/063721.html - libtools files are not generated yet. _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list