From 09319f688e10d47f9fc9be2b6feb831fb132660a Mon Sep 17 00:00:00 2001 From: Patrick Storz Date: Sat, 12 Oct 2019 15:56:14 +0200 Subject: CMake: Avoid reordering CMAKE_CXX_FLAGS Order matters; the reordering caused the _FORTIFY_SOURCE flag to be always undefined (as we flipped a "-U" and "-D") Also skip removing duplicates to avoid similar pitfalls (we kept only the first occurrence but should've kept the last) It did not work properly anyway (we still had duplicates in the end) and was only required as we wrote the final CMAKE_CXX_FLAGS back to cache and consequently appended new flags with every run of CMAKE. --- CMakeScripts/CanonicalizeFlagsVar.cmake | 11 ----------- CMakeScripts/DefineDependsandFlags.cmake | 28 +++++++++++++++++----------- 2 files changed, 17 insertions(+), 22 deletions(-) delete mode 100644 CMakeScripts/CanonicalizeFlagsVar.cmake (limited to 'CMakeScripts') diff --git a/CMakeScripts/CanonicalizeFlagsVar.cmake b/CMakeScripts/CanonicalizeFlagsVar.cmake deleted file mode 100644 index ddc5b7b5d..000000000 --- a/CMakeScripts/CanonicalizeFlagsVar.cmake +++ /dev/null @@ -1,11 +0,0 @@ -# This file is copyright by Shlomi Fish, 2016. -# -# This file is licensed under the MIT/X11 license: -# https://opensource.org/licenses/mit-license.php - -macro (canonicalize_flags_var in_val out_var) - string(REPLACE " " ";" _c "${in_val}") - list(REMOVE_DUPLICATES _c) - list(SORT _c) - string(REPLACE ";" " " "${out_var}" "${_c}") -endmacro() diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 996100b4d..9dd7f7785 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -2,6 +2,7 @@ set(INKSCAPE_LIBS "") set(INKSCAPE_INCS "") set(INKSCAPE_INCS_SYS "") set(INKSCAPE_CXX_FLAGS "") +set(INKSCAPE_CXX_FLAGS_DEBUG "") list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/src @@ -98,7 +99,7 @@ list(APPEND INKSCAPE_INCS_SYS ${INKSCAPE_DEP_INCLUDE_DIRS}) add_definitions(${INKSCAPE_DEP_CFLAGS_OTHER}) find_package(DoubleConversion REQUIRED) # lib2geom dependency - + if(WITH_JEMALLOC) find_package(JeMalloc) if (JEMALLOC_FOUND) @@ -369,14 +370,6 @@ sanitize_ldflags_for_libs(SIGC++_LDFLAGS) list(APPEND INKSCAPE_LIBS ${SIGC++_LDFLAGS}) list(APPEND INKSCAPE_CXX_FLAGS ${SIGC++_CFLAGS_OTHER}) -list(REMOVE_DUPLICATES INKSCAPE_CXX_FLAGS) -foreach(flag ${INKSCAPE_CXX_FLAGS}) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}" CACHE STRING "" FORCE) -endforeach() -foreach(flag ${INKSCAPE_CXX_FLAGS_DEBUG}) - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${flag}" CACHE STRING "" FORCE) -endforeach() - # Some linkers, like gold, don't find symbols recursively. So we have to link against X11 explicitly find_package(X11) if(X11_FOUND) @@ -386,14 +379,27 @@ endif(X11_FOUND) # end Dependencies + + +# Set include directories and CXX flags +# (INKSCAPE_LIBS are set as target_link_libraries for inkscape_base in src/CMakeLists.txt) + +foreach(flag ${INKSCAPE_CXX_FLAGS}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${flag}") +endforeach() +foreach(flag ${INKSCAPE_CXX_FLAGS_DEBUG}) + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${flag}") +endforeach() + list(REMOVE_DUPLICATES INKSCAPE_LIBS) list(REMOVE_DUPLICATES INKSCAPE_INCS_SYS) -# C/C++ Flags include_directories(${INKSCAPE_INCS}) include_directories(SYSTEM ${INKSCAPE_INCS_SYS}) -include(${CMAKE_CURRENT_LIST_DIR}/ConfigChecks.cmake) +include(${CMAKE_CURRENT_LIST_DIR}/ConfigChecks.cmake) # TODO: Check if this needs to be "hidden" here unset(INKSCAPE_INCS) unset(INKSCAPE_INCS_SYS) +unset(INKSCAPE_CXX_FLAGS) +unset(INKSCAPE_CXX_FLAGS_DEBUG) -- cgit v1.2.3