diff options
author | Brad King <brad.king@kitware.com> | 2023-06-01 19:18:33 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-06-01 19:18:33 (GMT) |
commit | 56ff12501f908220953d7d80408732144ffa17d6 (patch) | |
tree | e92750d29dccd871b61e0e61eee371a68500c9ba /Modules | |
parent | 9a63aa8d57394fbddf913ce35c2d32bbf523f0e6 (diff) | |
download | CMake-56ff12501f908220953d7d80408732144ffa17d6.zip CMake-56ff12501f908220953d7d80408732144ffa17d6.tar.gz CMake-56ff12501f908220953d7d80408732144ffa17d6.tar.bz2 |
FindOpenMP: Keep flags together in imported target usage requirements
If `OpenMP_C_FLAGS` contains `-Xclang -fopenmp`, the flag pair needs to
be preserved as a shell command fragment, and must not be split by
de-duplication with other `target_compile_options`.
Fixes: #24966
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/FindOpenMP.cmake | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/Modules/FindOpenMP.cmake b/Modules/FindOpenMP.cmake index 68be2d6..cd912c3 100644 --- a/Modules/FindOpenMP.cmake +++ b/Modules/FindOpenMP.cmake @@ -600,15 +600,13 @@ foreach(LANG IN LISTS OpenMP_FINDLIST) add_library(OpenMP::OpenMP_${LANG} INTERFACE IMPORTED) endif() if(OpenMP_${LANG}_FLAGS) - separate_arguments(_OpenMP_${LANG}_OPTIONS NATIVE_COMMAND "${OpenMP_${LANG}_FLAGS}") set_property(TARGET OpenMP::OpenMP_${LANG} PROPERTY - INTERFACE_COMPILE_OPTIONS "$<$<COMPILE_LANGUAGE:${LANG}>:${_OpenMP_${LANG}_OPTIONS}>") + INTERFACE_COMPILE_OPTIONS "$<$<COMPILE_LANGUAGE:${LANG}>:SHELL:${OpenMP_${LANG}_FLAGS}>") if(CMAKE_${LANG}_COMPILER_ID STREQUAL "Fujitsu" OR ${CMAKE_${LANG}_COMPILER_ID} STREQUAL "IntelLLVM") set_property(TARGET OpenMP::OpenMP_${LANG} PROPERTY - INTERFACE_LINK_OPTIONS "${OpenMP_${LANG}_FLAGS}") + INTERFACE_LINK_OPTIONS "SHELL:${OpenMP_${LANG}_FLAGS}") endif() - unset(_OpenMP_${LANG}_OPTIONS) endif() if(OpenMP_${LANG}_INCLUDE_DIRS) set_property(TARGET OpenMP::OpenMP_${LANG} PROPERTY |