INTERFACE_LINK_OPTIONS
Добавлено в версии 3.13.
Список требований к общедоступным параметрам компоновки библиотеки.
Цели могут заполнять это свойство, чтобы публиковать параметры компоновки, необходимые для компиляции с заголовочными файлами цели. Команда target_link_options() заполняет это свойство значениями, переданными ключевым словам PUBLIC и INTERFACE. Проекты также могут получать и задавать это свойство напрямую.
Если зависимости целей указаны с помощью target_link_libraries(), CMake считывает это свойство у всех зависимостей цели, чтобы определить свойства сборки потребителя.
Содержимое INTERFACE_LINK_OPTIONS может использовать «генераторные выражения» с синтаксисом $<...>. Доступные выражения описаны в руководстве cmake-generator-expressions(7). Дополнительные сведения об определении свойств системы сборки см. в руководстве cmake-buildsystem(7).
Параметры компоновки, зависящие от хоста и устройства
Добавлено в версии 3.18: Если выполняется этап компоновки устройства, управляемый свойствами CUDA_SEPARABLE_COMPILATION и CUDA_RESOLVE_DEVICE_SYMBOLS и политикой CMP0105, необработанные параметры передаются на этапы компоновки хоста и устройства (для компоновки устройства они заключаются в -Xcompiler или эквивалентную конструкцию). Параметры, заключённые в генераторное выражение $<DEVICE_LINK:...>, используются только на этапе компоновки устройства. Параметры, заключённые в генераторное выражение $<HOST_LINK:...>, используются только на этапе компоновки хоста.
Удаление дубликатов параметров
Итоговый набор параметров для цели формируется путём объединения параметров текущей цели и требований к использованию её зависимостей. Из набора параметров удаляются дубликаты.
Добавлено в версии 3.12: Хотя удаление дубликатов полезно для отдельных параметров, этот этап может нарушить группировку параметров. Например, -option A -option B превращается в -option A B. Группу параметров можно задать с помощью кавычек, как в командной оболочке, и префикса SHELL:. Префикс SHELL: удаляется, а оставшаяся строка параметров разбирается в режиме UNIX_COMMAND команды separate_arguments(). Например, "SHELL:-option A" "SHELL:-option B" превращается в -option A -option 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–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/prop_tgt/INTERFACE_LINK_OPTIONS.html