diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 5e20196093..7539cd4ee0 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -79,6 +79,7 @@ Variables that Provide Information /variable/CMAKE_LANG_COMPILER_LINKER_VERSION /variable/CMAKE_LANG_COMPILER_RANLIB /variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX + /variable/CMAKE_LANG_LINK_MODE /variable/CMAKE_LINK_LIBRARY_SUFFIX /variable/CMAKE_LINK_SEARCH_END_STATIC /variable/CMAKE_LINK_SEARCH_START_STATIC diff --git a/Help/release/dev/CMAKE_LANG_LINK_MODE.rst b/Help/release/dev/CMAKE_LANG_LINK_MODE.rst new file mode 100644 index 0000000000..3a0e38c97c --- /dev/null +++ b/Help/release/dev/CMAKE_LANG_LINK_MODE.rst @@ -0,0 +1,5 @@ +CMAKE_LANG_LINK_MODE +-------------------- + +* The :variable:`CMAKE__LINK_MODE` variable was added to provide + information on how the link step is done. diff --git a/Help/variable/CMAKE_LANG_LINK_MODE.rst b/Help/variable/CMAKE_LANG_LINK_MODE.rst new file mode 100644 index 0000000000..1dbb538ff2 --- /dev/null +++ b/Help/variable/CMAKE_LANG_LINK_MODE.rst @@ -0,0 +1,12 @@ +CMAKE__LINK_MODE +---------------------- + +.. versionadded:: 3.32 + +Defines how the link step is done. The possible values are: + +``DRIVER`` + The compiler is used as driver for the link step. + +``LINKER`` + The linker is used directly for the link step. diff --git a/Modules/Compiler/ADSP.cmake b/Modules/Compiler/ADSP.cmake index 39dcf39083..6af58d13d7 100644 --- a/Modules/Compiler/ADSP.cmake +++ b/Modules/Compiler/ADSP.cmake @@ -8,6 +8,8 @@ macro(__compiler_adsp lang) set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-flags-link" " ") set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP ",") + set(CMAKE_${lang}_LINK_MODE DRIVER) + set(_CMAKE_${lang}_ADSP_FLAGS "-proc=${CMAKE_ADSP_PROCESSOR}") set(CMAKE_DEPFILE_FLAGS_${lang} "-MD -Mo ") diff --git a/Modules/Compiler/ARMCC.cmake b/Modules/Compiler/ARMCC.cmake index f4f1854a17..ba64c28513 100644 --- a/Modules/Compiler/ARMCC.cmake +++ b/Modules/Compiler/ARMCC.cmake @@ -30,6 +30,8 @@ macro(__compiler_armcc lang) set(CMAKE_${lang}_OUTPUT_EXTENSION_REPLACE 1) set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "--via=") + set(CMAKE_${lang}_LINK_MODE LINKER) + set(CMAKE_${lang}_LINK_EXECUTABLE " -o --list .map") set(CMAKE_${lang}_CREATE_STATIC_LIBRARY " --create -cr ") diff --git a/Modules/Compiler/Absoft-Fortran.cmake b/Modules/Compiler/Absoft-Fortran.cmake index 8724f854a3..57f248a040 100644 --- a/Modules/Compiler/Absoft-Fortran.cmake +++ b/Modules/Compiler/Absoft-Fortran.cmake @@ -11,3 +11,5 @@ set(CMAKE_Fortran_FORMAT_FREE_FLAG "-ffree") set(CMAKE_Fortran_LINKER_WRAPPER_FLAG "-X") set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-cpp") set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-no-cpp") + +set(CMAKE_Fortran_LINK_MODE DRIVER) diff --git a/Modules/Compiler/Bruce-C.cmake b/Modules/Compiler/Bruce-C.cmake index 6b64e58065..a4b89fa500 100644 --- a/Modules/Compiler/Bruce-C.cmake +++ b/Modules/Compiler/Bruce-C.cmake @@ -7,3 +7,5 @@ string(APPEND CMAKE_C_FLAGS_RELEASE_INIT " -DNDEBUG") string(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO_INIT " -g -DNDEBUG") set(CMAKE_C_LINKER_WRAPPER_FLAG "-X") + +set(CMAKE_C_LINK_MODE DRIVER) diff --git a/Modules/Compiler/Clang.cmake b/Modules/Compiler/Clang.cmake index f834f7a783..8cb14d7f0c 100644 --- a/Modules/Compiler/Clang.cmake +++ b/Modules/Compiler/Clang.cmake @@ -20,6 +20,7 @@ if("x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC" OR "x${CMAKE_CUDA_SIMULATE_ID}" STREQUAL "xMSVC" OR "x${CMAKE_Fortran_SIMULATE_ID}" STREQUAL "xMSVC") macro(__compiler_clang lang) + set(CMAKE_${lang}_LINK_MODE LINKER) endmacro() else() include(Compiler/GNU) diff --git a/Modules/Compiler/Cray.cmake b/Modules/Compiler/Cray.cmake index c214afc691..8d56bbb8e7 100644 --- a/Modules/Compiler/Cray.cmake +++ b/Modules/Compiler/Cray.cmake @@ -14,4 +14,6 @@ macro(__compiler_cray lang) set(CMAKE_${lang}_COMPILE_OPTIONS_PIC -h PIC) set(CMAKE_${lang}_COMPILE_OPTIONS_PIE -h PIC) set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "-h PIC") + + set(CMAKE_${lang}_LINK_MODE DRIVER) endmacro() diff --git a/Modules/Compiler/Fujitsu.cmake b/Modules/Compiler/Fujitsu.cmake index 55c2aa48e4..a77b5f02f8 100644 --- a/Modules/Compiler/Fujitsu.cmake +++ b/Modules/Compiler/Fujitsu.cmake @@ -27,6 +27,8 @@ macro(__compiler_fujitsu lang) set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Wl,") set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP ",") + set(CMAKE_${lang}_LINK_MODE DRIVER) + # IPO flag set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES) if ("${lang}" STREQUAL "Fortran") diff --git a/Modules/Compiler/G95-Fortran.cmake b/Modules/Compiler/G95-Fortran.cmake index 5dba04efb6..c46795c646 100644 --- a/Modules/Compiler/G95-Fortran.cmake +++ b/Modules/Compiler/G95-Fortran.cmake @@ -11,3 +11,5 @@ set(CMAKE_Fortran_LINKER_WRAPPER_FLAG "-Wl,") set(CMAKE_Fortran_LINKER_WRAPPER_FLAG_SEP ",") set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-cpp") set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_OFF "-no-cpp") + +set(CMAKE_Fortran_LINK_MODE DRIVER) diff --git a/Modules/Compiler/GNU.cmake b/Modules/Compiler/GNU.cmake index 83c818d49b..e2e6549c82 100644 --- a/Modules/Compiler/GNU.cmake +++ b/Modules/Compiler/GNU.cmake @@ -39,6 +39,8 @@ macro(__compiler_gnu lang) set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Wl,") set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP ",") + set(CMAKE_${lang}_LINK_MODE DRIVER) + # Older versions of gcc (< 4.5) contain a bug causing them to report a missing # header file as a warning if depfiles are enabled, causing check_header_file # tests to always succeed. Work around this by disabling dependency tracking diff --git a/Modules/Compiler/HP-C.cmake b/Modules/Compiler/HP-C.cmake index 8fa4c08e2b..2571d8f287 100644 --- a/Modules/Compiler/HP-C.cmake +++ b/Modules/Compiler/HP-C.cmake @@ -5,3 +5,5 @@ set(CMAKE_C_CREATE_PREPROCESSED_SOURCE " set(CMAKE_C_LINKER_WRAPPER_FLAG "-Wl,") set(CMAKE_C_LINKER_WRAPPER_FLAG_SEP ",") + +set(CMAKE_C_LINK_MODE DRIVER) diff --git a/Modules/Compiler/HP-CXX.cmake b/Modules/Compiler/HP-CXX.cmake index 5726b64948..b7503e975c 100644 --- a/Modules/Compiler/HP-CXX.cmake +++ b/Modules/Compiler/HP-CXX.cmake @@ -6,6 +6,8 @@ set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE " ") set(CMAKE_${lang}_ARCHIVE_APPEND_IPO "\"${CMAKE_${lang}_COMPILER_AR}\" q ") set(CMAKE_${lang}_ARCHIVE_FINISH_IPO "\"${CMAKE_${lang}_COMPILER_RANLIB}\" ") + + set(CMAKE_${lang}_LINK_MODE DRIVER) endmacro() if(CMAKE_HOST_WIN32) @@ -73,6 +75,8 @@ else() set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Wl,") set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP ",") + set(CMAKE_${lang}_LINK_MODE DRIVER) + # distcc does not transform -o to -MT when invoking the preprocessor # internally, as it ought to. Work around this bug by setting -MT here # even though it isn't strictly necessary. diff --git a/Modules/Compiler/LCC.cmake b/Modules/Compiler/LCC.cmake index 2892ec6ff1..24396cef07 100644 --- a/Modules/Compiler/LCC.cmake +++ b/Modules/Compiler/LCC.cmake @@ -35,6 +35,8 @@ macro(__compiler_lcc lang) set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Wl,") set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP ",") + set(CMAKE_${lang}_LINK_MODE DRIVER) + # Older versions of gcc (< 4.5) contain a bug causing them to report a missing # header file as a warning if depfiles are enabled, causing check_header_file # tests to always succeed. Work around this by disabling dependency tracking diff --git a/Modules/Compiler/LFortran-Fortran.cmake b/Modules/Compiler/LFortran-Fortran.cmake index 9090e1d570..05e1a7dcc3 100644 --- a/Modules/Compiler/LFortran-Fortran.cmake +++ b/Modules/Compiler/LFortran-Fortran.cmake @@ -12,3 +12,5 @@ set(CMAKE_Fortran_PREPROCESS_SOURCE " --cpp --cpp-infer --generate-object-code -c -o ") set(CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS "--shared") set(CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS "-Wl,-export-dynamic") + +set(CMAKE_Fortran_LINK_MODE DRIVER) diff --git a/Modules/Compiler/LLVMFlang-Fortran.cmake b/Modules/Compiler/LLVMFlang-Fortran.cmake index 0a432a9922..5b7aee45c3 100644 --- a/Modules/Compiler/LLVMFlang-Fortran.cmake +++ b/Modules/Compiler/LLVMFlang-Fortran.cmake @@ -18,9 +18,13 @@ set(CMAKE_Fortran_COMPILE_OPTIONS_TARGET "--target=") set(CMAKE_Fortran_LINKER_WRAPPER_FLAG "-Wl,") set(CMAKE_Fortran_LINKER_WRAPPER_FLAG_SEP ",") -if(NOT "x${CMAKE_Fortran_SIMULATE_ID}" STREQUAL "xMSVC") +if("x${CMAKE_Fortran_SIMULATE_ID}" STREQUAL "xMSVC") + set(CMAKE_Fortran_LINK_MODE LINKER) +else() set(CMAKE_Fortran_VERBOSE_FLAG "-v") + set(CMAKE_Fortran_LINK_MODE DRIVER) + string(APPEND CMAKE_Fortran_FLAGS_DEBUG_INIT " -O0 -g") string(APPEND CMAKE_Fortran_FLAGS_RELWITHDEBINFO_INIT " -O2 -g") string(APPEND CMAKE_Fortran_FLAGS_RELEASE_INIT " -O3") diff --git a/Modules/Compiler/MSVC.cmake b/Modules/Compiler/MSVC.cmake index 9c09af12d9..6cd2dc93cd 100644 --- a/Modules/Compiler/MSVC.cmake +++ b/Modules/Compiler/MSVC.cmake @@ -22,4 +22,6 @@ macro(__compiler_msvc lang) set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-external:I") set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang}_WARNING "-external:W0 ") endif () + + set(CMAKE_${lang}_LINK_MODE LINKER) endmacro() diff --git a/Modules/Compiler/NAG-Fortran.cmake b/Modules/Compiler/NAG-Fortran.cmake index a6636c4d16..50b2991daf 100644 --- a/Modules/Compiler/NAG-Fortran.cmake +++ b/Modules/Compiler/NAG-Fortran.cmake @@ -47,5 +47,7 @@ set(CMAKE_Fortran_COMPILE_OPTIONS_PIE "-PIC") set(CMAKE_Fortran_RESPONSE_FILE_LINK_FLAG "-Wl,@") set(CMAKE_Fortran_COMPILE_OPTIONS_PREPROCESS_ON "-fpp") +set(CMAKE_Fortran_LINK_MODE DRIVER) + set(CMAKE_Fortran_PREPROCESS_SOURCE " -fpp -F -o ") diff --git a/Modules/Compiler/NVHPC.cmake b/Modules/Compiler/NVHPC.cmake index 6ebc2fb183..32ba5aca89 100644 --- a/Modules/Compiler/NVHPC.cmake +++ b/Modules/Compiler/NVHPC.cmake @@ -15,4 +15,6 @@ macro(__compiler_nvhpc lang) set(CMAKE_INCLUDE_SYSTEM_FLAG_${lang} "-isystem ") set(CMAKE_${lang}_COMPILE_OPTIONS_EXTERNAL_TOOLCHAIN "--gcc-toolchain=") set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-Werror") + + set(CMAKE_${lang}_LINK_MODE DRIVER) endmacro() diff --git a/Modules/Compiler/NVIDIA.cmake b/Modules/Compiler/NVIDIA.cmake index 21e71cc21b..0d0f03ad00 100644 --- a/Modules/Compiler/NVIDIA.cmake +++ b/Modules/Compiler/NVIDIA.cmake @@ -155,6 +155,12 @@ macro(__compiler_nvidia_cuda_flags lang) set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP) endif() + if (CMAKE_${lang}_SIMULATE_ID STREQUAL "MSVC") + set(CMAKE_${lang}_LINK_MODE LINKER) + else() + set(CMAKE_${lang}_LINK_MODE DRIVER) + endif() + set(CMAKE_${lang}_RUNTIME_LIBRARY_LINK_OPTIONS_STATIC "cudadevrt;cudart_static") set(CMAKE_${lang}_RUNTIME_LIBRARY_LINK_OPTIONS_SHARED "cudadevrt;cudart") set(CMAKE_${lang}_RUNTIME_LIBRARY_LINK_OPTIONS_NONE "") diff --git a/Modules/Compiler/OpenWatcom.cmake b/Modules/Compiler/OpenWatcom.cmake index 8cfe6838dd..1cc00683e6 100644 --- a/Modules/Compiler/OpenWatcom.cmake +++ b/Modules/Compiler/OpenWatcom.cmake @@ -40,6 +40,8 @@ foreach(lang C CXX) string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -s -os -d0 -dNDEBUG") string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -s -ot -d0 -dNDEBUG") string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -s -ot -d1 -dNDEBUG") + + set(CMAKE_${lang}_LINK_MODE LINKER) endforeach() # C create import library diff --git a/Modules/Compiler/OrangeC.cmake b/Modules/Compiler/OrangeC.cmake index fbb245b748..71ed04cd57 100644 --- a/Modules/Compiler/OrangeC.cmake +++ b/Modules/Compiler/OrangeC.cmake @@ -12,6 +12,8 @@ macro(__compiler_orangec lang) set(CMAKE_${lang}_DEPFILE_FORMAT gcc) set(CMAKE_${lang}_DEPENDS_USE_COMPILER TRUE) + set(CMAKE_${lang}_LINK_MODE DRIVER) + string(APPEND CMAKE_${lang}_FLAGS_INIT " ") string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g") string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O2 -DNDEBUG") diff --git a/Modules/Compiler/PGI.cmake b/Modules/Compiler/PGI.cmake index b037fbcbcc..a3f8706896 100644 --- a/Modules/Compiler/PGI.cmake +++ b/Modules/Compiler/PGI.cmake @@ -28,6 +28,8 @@ macro(__compiler_pgi lang) set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Wl,") set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP ",") + set(CMAKE_${lang}_LINK_MODE DRIVER) + set(_CMAKE_${lang}_IPO_SUPPORTED_BY_CMAKE YES) if(NOT CMAKE_SYSTEM_PROCESSOR STREQUAL ppc64le AND (NOT CMAKE_HOST_WIN32 OR CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 16.3) AND CMAKE_${lang}_COMPILER_VERSION VERSION_LESS 23.3) set(_CMAKE_${lang}_IPO_MAY_BE_SUPPORTED_BY_COMPILER YES) diff --git a/Modules/Compiler/PathScale.cmake b/Modules/Compiler/PathScale.cmake index d5f8cb12b8..d1a6de213e 100644 --- a/Modules/Compiler/PathScale.cmake +++ b/Modules/Compiler/PathScale.cmake @@ -12,6 +12,8 @@ macro(__compiler_pathscale lang) # Feature flags. set(CMAKE_${lang}_VERBOSE_FLAG "-v") + set(CMAKE_${lang}_LINK_MODE DRIVER) + # Initial configuration flags. string(APPEND CMAKE_${lang}_FLAGS_INIT " ") string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g -O0") diff --git a/Modules/Compiler/SCO.cmake b/Modules/Compiler/SCO.cmake index 7f643d920f..7143d5ae53 100644 --- a/Modules/Compiler/SCO.cmake +++ b/Modules/Compiler/SCO.cmake @@ -18,4 +18,6 @@ macro(__compiler_sco lang) set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Wl,") set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP ",") + + set(CMAKE_${lang}_LINK_MODE DRIVER) endmacro() diff --git a/Modules/Compiler/SunPro.cmake b/Modules/Compiler/SunPro.cmake index 331cdfc00b..649c0de2b1 100644 --- a/Modules/Compiler/SunPro.cmake +++ b/Modules/Compiler/SunPro.cmake @@ -11,4 +11,6 @@ include(Compiler/CMakeCommonCompilerMacros) macro(__compiler_sunpro lang) set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "-errwarn=%all") + + set(CMAKE_${lang}_LINK_MODE DRIVER) endmacro() diff --git a/Modules/Compiler/TI.cmake b/Modules/Compiler/TI.cmake index 6cb115bafc..96047381e9 100644 --- a/Modules/Compiler/TI.cmake +++ b/Modules/Compiler/TI.cmake @@ -25,6 +25,8 @@ macro(__compiler_ti lang) set(CMAKE_INCLUDE_FLAG_${lang} "--include_path=") set(CMAKE_DEPFILE_FLAGS_${lang} "--preproc_with_compile --preproc_dependency=") + set(CMAKE_${lang}_LINK_MODE DRIVER) + set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE " --preproc_only ${__COMPILER_TI_SOURCE_FLAG_${lang}}= --output_file=") set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE " --compile_only --skip_assembler ${__COMPILER_TI_SOURCE_FLAG_${lang}}= --output_file=") diff --git a/Modules/Compiler/TIClang.cmake b/Modules/Compiler/TIClang.cmake index 4965e62712..d069e946c0 100644 --- a/Modules/Compiler/TIClang.cmake +++ b/Modules/Compiler/TIClang.cmake @@ -23,6 +23,8 @@ macro(__compiler_ticlang lang) set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Xlinker" " ") set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP) + + set(CMAKE_${lang}_LINK_MODE DRIVER) endmacro() set(CMAKE_EXECUTABLE_SUFFIX ".out") diff --git a/Modules/Compiler/Tasking.cmake b/Modules/Compiler/Tasking.cmake index 82622fa204..6731e287f9 100644 --- a/Modules/Compiler/Tasking.cmake +++ b/Modules/Compiler/Tasking.cmake @@ -30,6 +30,8 @@ macro(__compiler_tasking lang) set(CMAKE_DEPFILE_FLAGS_${lang} "--dep-file=") set(CMAKE_${lang}_COMPILE_OPTIONS_WARNING_AS_ERROR "--warning-as-errors") + set(CMAKE_${lang}_LINK_MODE DRIVER) + string(APPEND CMAKE_${lang}_FLAGS_INIT " ") string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -O0 -g") string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -O2 -t4 -DNDEBUG") diff --git a/Modules/Compiler/TinyCC-C.cmake b/Modules/Compiler/TinyCC-C.cmake index 6367695b9c..b2f733ac0f 100644 --- a/Modules/Compiler/TinyCC-C.cmake +++ b/Modules/Compiler/TinyCC-C.cmake @@ -9,3 +9,5 @@ string(APPEND CMAKE_C_FLAGS_RELWITHDEBINFO_INIT " -g -DNDEBUG") set(CMAKE_C_LINKER_WRAPPER_FLAG "-Wl,") set(CMAKE_C_LINKER_WRAPPER_FLAG_SEP ",") + +set(CMAKE_C_LINK_MODE DRIVER) diff --git a/Modules/Compiler/XL.cmake b/Modules/Compiler/XL.cmake index 844fcfd899..09cf6017d6 100644 --- a/Modules/Compiler/XL.cmake +++ b/Modules/Compiler/XL.cmake @@ -24,6 +24,8 @@ macro(__compiler_xl lang) set(CMAKE_${lang}_LINKER_WRAPPER_FLAG "-Wl,") set(CMAKE_${lang}_LINKER_WRAPPER_FLAG_SEP ",") + set(CMAKE_${lang}_LINK_MODE DRIVER) + string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -g") string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -O") string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -O") diff --git a/Modules/Platform/Windows-IntelLLVM.cmake b/Modules/Platform/Windows-IntelLLVM.cmake index 2fc909a44a..363735acb2 100644 --- a/Modules/Platform/Windows-IntelLLVM.cmake +++ b/Modules/Platform/Windows-IntelLLVM.cmake @@ -12,6 +12,8 @@ if(CMAKE_GENERATOR MATCHES "Visual Studio") # MSBuild invokes the "link" tool directly. set(_IntelLLVM_LINKER_WRAPPER_FLAG "") set(_IntelLLVM_LINKER_WRAPPER_FLAG_SEP "") + + set(CMAKE_${lang}_LINK_MODE LINKER) else() # Our rules below drive linking through the compiler front-end. # Wrap flags meant for the linker.