CMAKE_<LANG>_USING_LINKER_<TYPE>ΒΆ
Added in version 3.29.
This variable defines how to specify the <TYPE>
linker for the link step,
as controlled by the CMAKE_LINKER_TYPE
variable or the
LINKER_TYPE
target property. Depending on the value of the
CMAKE_<LANG>_LINK_MODE
variable,
CMAKE_<LANG>_USING_LINKER_<TYPE>
can hold compiler flags for the link step,
or the path to the linker tool.
Changed in version 4.0.
The type of information stored in this variable is now determined by the
CMAKE_<LANG>_LINK_MODE
variable instead of the
CMAKE_<LANG>_USING_LINKER_MODE
variable.
Note
The specified linker tool is generally expected to be accessible through
the PATH
environment variable.
For example, the LLD
linker for GNU
compilers is defined like so:
# CMAKE_C_LINK_MODE holds value "DRIVER"
set(CMAKE_C_USING_LINKER_LLD "-fuse-ld=lld")
On the Windows
platform with Clang
compilers simulating MSVC
with
GNU
front-end:
# CMAKE_C_LINK_MODE holds value "DRIVER"
set(CMAKE_C_USING_LINKER_LLD "-fuse-ld=lld-link")
And for the MSVC
compiler or Clang
compilers simulating MSVC
with
MSVC
front-end, the linker is invoked directly, not via the compiler
front-end:
# CMAKE_C_LINK_MODE holds value "LINKER"
set(CMAKE_C_USING_LINKER_LLD "/path/to/lld-link.exe")
A custom linker type can also be defined, usually in a toolchain file:
set(CMAKE_LINKER_TYPE lld_launcher)
set(CMAKE_C_USING_LINKER_lld_launcher "-fuse-ld=/path/to/lld-launcher.sh")