cmake: avoid de-duplication of user's CXXFLAGS master
authorMike Gilbert <floppym@gentoo.org>
Sat, 8 Jan 2022 18:26:05 +0000 (13:26 -0500)
committerManuel Nickschas <sputnick@quassel-irc.org>
Sun, 13 Feb 2022 23:48:12 +0000 (00:48 +0100)
Use the "SHELL:" prefix behavior introduced in cmake 3.12 to avoid the
option de-duplication behavior of add_compile_options().

Bug: https://bugs.gentoo.org/830738

cmake/QuasselMacros.cmake

index 3f9f092..9ba0003 100644 (file)
@@ -410,8 +410,12 @@ endfunction()
 function(process_cmake_cxx_flags)
     string(TOUPPER ${CMAKE_BUILD_TYPE} upper_build_type)
     set(cxx_flags "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${upper_build_type}}")
-    separate_arguments(sep_cxx_flags UNIX_COMMAND ${cxx_flags})
-    add_compile_options(${sep_cxx_flags})
+    if(CMAKE_VERSION VERSION_LESS 3.12)
+        separate_arguments(sep_cxx_flags UNIX_COMMAND ${cxx_flags})
+        add_compile_options(${sep_cxx_flags})
+    else()
+        add_compile_options("SHELL:${cxx_flags}")
+    endif()
     set(CMAKE_CXX_FLAGS "" PARENT_SCOPE)
     set(CMAKE_CXX_FLAGS_${upper_build_type} "" PARENT_SCOPE)
 endfunction()