CMAKE_GENERATOR_TOOLSET
Спецификация набора инструментов собственной системы сборки, заданная пользователем.
Некоторые генераторы CMake поддерживают спецификацию набора инструментов, которая указывает собственной системе сборки, как выбрать компилятор. Если пользователь указывает набор инструментов (например, с помощью параметра cmake -T или переменной среды CMAKE_GENERATOR_TOOLSET), его значение будет доступно в этой переменной.
Код проекта ни в коем случае не должен изменять значение этой переменной. Файл toolchain, указанный переменной CMAKE_TOOLCHAIN_FILE, может инициализировать CMAKE_GENERATOR_TOOLSET. После инициализации дерева сборки с определённым значением этой переменной изменение её значения приводит к неопределённому поведению.
Спецификация набора инструментов поддерживается только некоторыми генераторами:
- Генераторы Visual Studio для VS 2010 и более поздних версий
- Генератор
Xcodeдля Xcode 3.0 и более поздних версий - Генератор
Green Hills MULTI
Допустимые имена наборов инструментов см. в документации собственной системы сборки.
Выбор набора инструментов 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. -
fortran=<compiler> -
Добавлено в версии 3.29.
Указывает компилятор Fortran из числа тех, для которых установлена необходимая функция интеграции с Visual Studio. Значением может быть одно из следующих:
-
ifort -
Классический компилятор Fortran от Intel.
-
ifx -
Компилятор Fortran Intel oneAPI.
См. переменную
CMAKE_VS_PLATFORM_TOOLSET_FORTRAN. -
-
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–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/variable/CMAKE_GENERATOR_TOOLSET.html