CMAKE_GENERATOR_TOOLSET
Указание набора инструментов для системной сборки, предоставленное пользователем.
Некоторые генераторы CMake поддерживают указание набора инструментов, чтобы указать системе native сборки, как выбрать компилятор. Если пользователь указывает набор инструментов (например, через опцию cmake(1) -T или через переменную среды CMAKE_GENERATOR_TOOLSET), значение будет доступно в этой переменной.
Значение этой переменной не должно изменяться кодом проекта. Файл цепочки инструментов, указанный переменной CMAKE_TOOLCHAIN_FILE, может инициализировать CMAKE_GENERATOR_TOOLSET. После инициализации дерева сборки с определенным значением этой переменной, изменение значения имеет неопределенное поведение.
Указание набора инструментов поддерживается только некоторыми генераторами:
- Генераторы Visual Studio для VS 2010 и выше
- Генератор
Xcodeдля Xcode 3.0 и выше - Генератор
Green Hills MULTI
См. документацию системы native сборки для разрешенных имен наборов инструментов.
Выбор набора инструментов Visual Studio
Генераторы Visual Studio поддерживают указание набора инструментов в одном из следующих форматов:
toolsettoolset[,key=value]*key=value[,key=value]*
toolset задаёт имя набора инструментов. Выбранное имя набора инструментов предоставляется в переменной CMAKE_VS_PLATFORM_TOOLSET.
key=value пары образуют список опций, разделенных запятыми, для указания деталей выбора набора инструментов, специфичных для генератора. Поддерживаемые пары:
-
cuda=<version>|<path> -
Указывает версию CUDA toolkit или путь к каталогу самостоятельного CUDA toolkit. Поддерживается VS 2010 и выше. Версия может использоваться только с глобально установленной интеграцией CUDA toolkit в VS. См. переменные
CMAKE_VS_PLATFORM_TOOLSET_CUDAиCMAKE_VS_PLATFORM_TOOLSET_CUDA_CUSTOM_DIR. -
host=<arch> -
Указывает архитектуру инструментов хоста как
x64илиx86. Поддерживается VS 2013 и выше. См. переменнуюCMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE. -
version=<version> -
Указывает используемую версию набора инструментов. Поддерживается VS 2017 и выше при установленной версии набора инструментов. См. переменную
CMAKE_VS_PLATFORM_TOOLSET_VERSION. -
VCTargetsPath=<path> -
Указывает альтернативное значение
VCTargetsPathдля файлов проекта Visual Studio. Это позволяет использовать конфигурационные файлы расширений платформы VS (.propsи.targets), которые не установлены с VS.
Настройка набора инструментов Visual Studio
Эти интерфейсы нестабильны и не гарантируют совместимость, так как они подключаются к недокументированным внутренним деталям реализации CMake. Организации могут использовать их для внутренней поддержки непубличных платформ и наборов инструментов Visual Studio, но должны взять на себя ответственность за обновления по мере внесения изменений в CMake.
Доступны дополнительные key=value пары:
-
customFlagTableDir=<path> -
Новое в версии 3.21.
Указывает абсолютный путь к каталогу, из которого загружать таблицы пользовательских флагов, хранящиеся в JSON-документах с именами файлов вида
<platform>_<toolset>_<tool>.jsonили<platform>_<tool>.json, где<platform>—CMAKE_VS_PLATFORM_NAME,<toolset>—CMAKE_VS_PLATFORM_TOOLSET, и<tool>— инструмент, для которого предназначена таблица флагов. Эта структура именования — внутренняя деталь реализации CMake. Имена<tool>не документированы. Формат файлов таблиц флагов.jsonне документирован.
© 2000–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.23/variable/CMAKE_GENERATOR_TOOLSET.html