summaryrefslogtreecommitdiffstats
path: root/Modules/FindOpenMP.cmake
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-06-01 19:18:33 (GMT)
committerBrad King <brad.king@kitware.com>2023-06-01 19:18:33 (GMT)
commit56ff12501f908220953d7d80408732144ffa17d6 (patch)
treee92750d29dccd871b61e0e61eee371a68500c9ba /Modules/FindOpenMP.cmake
parent9a63aa8d57394fbddf913ce35c2d32bbf523f0e6 (diff)
downloadCMake-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/FindOpenMP.cmake')
-rw-r--r--Modules/FindOpenMP.cmake6
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