Introduce CMAKE_<LANG>_DEVICE_LINK_MODE variable.

This is a complement to commit 00932ea864 (Introduce CMAKE_<LANG>_LINK_MODE variable., 2025-01-09)
This commit is contained in:
Marc Chevrier 2025-01-21 15:12:42 +01:00
parent c381619959
commit 53de9d0125
5 changed files with 19 additions and 1 deletions

View File

@ -78,6 +78,7 @@ Variables that Provide Information
/variable/CMAKE_LANG_COMPILER_LINKER_ID
/variable/CMAKE_LANG_COMPILER_LINKER_VERSION
/variable/CMAKE_LANG_COMPILER_RANLIB
/variable/CMAKE_LANG_DEVICE_LINK_MODE
/variable/CMAKE_LANG_LINK_LIBRARY_SUFFIX
/variable/CMAKE_LANG_LINK_MODE
/variable/CMAKE_LINK_LIBRARY_SUFFIX

View File

@ -1,5 +1,6 @@
CMAKE_LANG_LINK_MODE
--------------------
* The :variable:`CMAKE_<LANG>_LINK_MODE` variable was added to provide
* The :variable:`CMAKE_<LANG>_LINK_MODE` and
:variable:`CMAKE_<LANG>_DEVICE_LINK_MODE` variables were added to provide
information on how the link step is done.

View File

@ -0,0 +1,12 @@
CMAKE_<LANG>_DEVICE_LINK_MODE
-----------------------------
.. versionadded:: 4.0
Defines how the device link step is done. The possible values are:
``DRIVER``
The compiler is used as driver for the device link step.
``LINKER``
The linker is used directly for the device link step.

View File

@ -26,6 +26,8 @@ set(_CMAKE_CUDA_PTX_FLAG "--cuda-device-only -S")
set(CMAKE_CUDA_DEVICE_LINKER_WRAPPER_FLAG ${CMAKE_CUDA_LINKER_WRAPPER_FLAG})
set(CMAKE_CUDA_DEVICE_LINKER_WRAPPER_FLAG_SEP ${CMAKE_CUDA_LINKER_WRAPPER_FLAG_SEP})
set(CMAKE_CUDA_DEVICE_LINK_MODE DRIVER)
# RulePlaceholderExpander expands crosscompile variables like sysroot and target only for CMAKE_<LANG>_COMPILER. Override the default.
set(CMAKE_CUDA_LINK_EXECUTABLE "<CMAKE_CUDA_COMPILER> <FLAGS> <CMAKE_CUDA_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>${__IMPLICIT_LINKS}")
set(CMAKE_CUDA_CREATE_SHARED_LIBRARY "<CMAKE_CUDA_COMPILER> <CMAKE_SHARED_LIBRARY_CUDA_FLAGS> <LANGUAGE_COMPILE_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_LIBRARY_CREATE_CUDA_FLAGS> <SONAME_FLAG><TARGET_SONAME> -o <TARGET> <OBJECTS> <LINK_LIBRARIES>${__IMPLICIT_LINKS}")

View File

@ -21,3 +21,5 @@ set(CMAKE_CUDA_DEVICE_COMPILER_WRAPPER_FLAG "-Xcompiler=")
set(CMAKE_CUDA_DEVICE_COMPILER_WRAPPER_FLAG_SEP ",")
set(CMAKE_CUDA_DEVICE_LINKER_WRAPPER_FLAG "-Xlinker=")
set(CMAKE_CUDA_DEVICE_LINKER_WRAPPER_FLAG_SEP ",")
set(CMAKE_CUDA_DEVICE_LINK_MODE DRIVER)