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
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()