diff options
author | Roland Schulz <roland.schulz@intel.com> | 2018-04-13 00:49:05 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2018-04-16 18:11:12 (GMT) |
commit | 0c7433e874d5f28b15009dbfb1f19ecb34cd71ee (patch) | |
tree | 989eca6c6bc724de1dac771ff96ada0c846a9bc2 /Modules | |
parent | 61fd4c742013a7f9139db190f936703b656540ff (diff) | |
download | CMake-0c7433e874d5f28b15009dbfb1f19ecb34cd71ee.zip CMake-0c7433e874d5f28b15009dbfb1f19ecb34cd71ee.tar.gz CMake-0c7433e874d5f28b15009dbfb1f19ecb34cd71ee.tar.bz2 |
FindOpenMP: Fix support for Intel on Windows
The change in commit v3.11.0-rc1~334^2 (FindOpenMP: Use NO_DEFAULT_PATH
where appropriate, 2017-11-15) broke partial support for Intel on Windows.
Since `OpenMP_${LANG}_IMPLICIT_LINK_DIRS` is empty for this compiler
the `find_library` call without `NO_DEFAULT_PATH` worked accidentally
in environments with the needed libraries in the search path already.
Fix support for Intel on Windows by simply removing our explicit search
for the `libiomp5md` library. In cases that it is needed, the compiler
already inserts metadata in `.obj` files to tell the MSVC linker to use
the library.
Suggested-by: Christian Pfeiffer <cpfeiffer@live.de>
Fixes: #17910
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/FindOpenMP.cmake | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/Modules/FindOpenMP.cmake b/Modules/FindOpenMP.cmake index ced092e..1bf589d 100644 --- a/Modules/FindOpenMP.cmake +++ b/Modules/FindOpenMP.cmake @@ -240,19 +240,10 @@ function(_OPENMP_GET_FLAGS LANG FLAG_MODE OPENMP_FLAG_VAR OPENMP_LIB_NAMES_VAR) endforeach() set("${OPENMP_LIB_NAMES_VAR}" "${_OPENMP_LIB_NAMES}" PARENT_SCOPE) else() - # The Intel compiler on windows has no verbose mode, so we need to treat it explicitly - if("${CMAKE_${LANG}_COMPILER_ID}" STREQUAL "Intel" AND "${CMAKE_SYSTEM_NAME}" STREQUAL "Windows") - set("${OPENMP_LIB_NAMES_VAR}" "libiomp5md" PARENT_SCOPE) - find_library(OpenMP_libiomp5md_LIBRARY - NAMES "libiomp5md" - HINTS ${CMAKE_${LANG}_IMPLICIT_LINK_DIRECTORIES} - CMAKE_FIND_ROOT_PATH_BOTH - NO_DEFAULT_PATH - ) - mark_as_advanced(OpenMP_libiomp5md_LIBRARY) - else() - set("${OPENMP_LIB_NAMES_VAR}" "" PARENT_SCOPE) - endif() + # We do not know how to extract implicit OpenMP libraries for this compiler. + # Assume that it handles them automatically, e.g. the Intel Compiler on + # Windows should put the dependency in its object files. + set("${OPENMP_LIB_NAMES_VAR}" "" PARENT_SCOPE) endif() break() endif() |