add_link_options
Новое в версии 3.13.
Добавляет параметры к шагу линковки для исполняемых файлов, динамических библиотек или библиотек модулей в текущем каталоге и ниже, которые добавляются после вызова этой команды.
add_link_options(<option> ...)
Эту команду можно использовать для добавления любых параметров линковки, но существуют альтернативные команды для добавления библиотек (target_link_libraries() или link_libraries()). Смотрите документацию свойств directory и target LINK_OPTIONS.
Примечание
Эта команда не может быть использована для добавления параметров для статических библиотек, так как они не используют компоновщик. Для добавления флагов архиватора или компоновщика MSVC см. свойство целевого объекта STATIC_LIBRARY_OPTIONS.
Аргументы для add_link_options могут использовать «генераторные выражения» с синтаксисом $<...>. Смотрите руководство cmake-generator-expressions(7) для доступных выражений. Смотрите руководство cmake-buildsystem(7) для получения дополнительной информации о определении свойств системы сборки.
Если задействован шаг линковки устройства, который управляется свойствами CUDA_SEPARABLE_COMPILATION и CUDA_RESOLVE_DEVICE_SYMBOLS и политикой CMP0105, исходные параметры будут переданы шагам линковки хоста и устройства (в формате -Xcompiler или эквивалентном для линковки устройства). Параметры, заключенные в $<DEVICE_LINK:...> generator expression, будут использоваться только для шага линковки устройства. Параметры, заключенные в $<HOST_LINK:...> generator expression, будут использоваться только для шага линковки хоста.
Конечный набор параметров компиляции или линковки, используемых для цели, строится путем накопления параметров из текущей цели и требований к её зависимостям. Набор параметров дублируется для избежания повторений. Хотя это полезно для отдельных параметров, шаг дублирования может разбить группы параметров. Например, -D A -D B становится -D A B. Можно указать группу параметров с использованием оболочечного цитирования вместе с префиксом SHELL:. Префикс SHELL: удаляется, а остальная часть строки параметров анализируется в режиме separate_arguments() UNIX_COMMAND. Например, "SHELL:-D A" "SHELL:-D B" становится -D A -D B.
Для передачи параметров в инструмент компоновки, у каждого драйвера компилятора есть свой собственный синтаксис. Префикс LINKER: и разделитель , могут быть использованы для указания, портативным способом, параметров, передаваемых инструменту компоновки. LINKER: заменяется соответствующим параметром драйвера, а , — соответствующим разделителем драйвера. Префикс и разделитель драйвера задаются значениями переменных CMAKE_<LANG>_LINKER_WRAPPER_FLAG и CMAKE_<LANG>_LINKER_WRAPPER_FLAG_SEP.
Например, "LINKER:-z,defs" становится -Xlinker -z -Xlinker defs для Clang и -Wl,-z,defs для GNU GCC.
Префикс LINKER: может быть указан как часть выражения префикса SHELL:.
Префикс LINKER: поддерживает, как альтернативный синтаксис, указание аргументов с использованием префикса SHELL: и пробела в качестве разделителя. Тогда предыдущий пример становится "LINKER:SHELL:-z defs".
Примечание
Указание префикса SHELL: в любом месте, кроме начала префикса LINKER: не поддерживается.
© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.19/command/add_link_options.html