Spec-Zone.ru › CMake

CMAKE_MSVC_RUNTIME_CHECKS

Добавлено в версии 4.0.

Выбирает список включённых проверок времени выполнения при использовании ABI MSVC. Эта переменная используется для инициализации свойства MSVC_RUNTIME_CHECKS для всех создаваемых целей. Она также передаётся вызовами команды try_compile() в тестовый проект.

Допустимые значения:

PossibleDataLoss

Компилировать с флагом -RTCc или эквивалентными флагами для включения проверок возможной потери данных.

StackFrameErrorCheck

Компилировать с флагом -RTCs или эквивалентными флагами для включения проверок ошибок в кадре стека.

UninitializedVariable

Компилировать с флагом -RTCu или эквивалентными флагами для включения проверок неинициализированных переменных.

Значение игнорируется компиляторами, не использующими ABI MSVC, однако неподдерживаемое значение будет отклонено с ошибкой при использовании компилятора, использующего ABI MSVC.

Значением также может быть пустая строка (""); в этом случае CMake явно не добавляет флаги проверки ошибок времени выполнения.

Используйте generator expressions для поддержки задания значений для отдельных конфигураций. Например, следующий код:

set(CMAKE_MSVC_RUNTIME_CHECKS "$<$<CONFIG:Debug,RelWithDebInfo>:PossibleDataLoss;UninitializedVariable>")

включает для цели foo проверки возможной потери данных и неинициализированных переменных для конфигураций Debug и RelWithDebInfo.

Если эта переменная не задана, свойству цели MSVC_RUNTIME_CHECKS не будет автоматически присвоено значение. Если это свойство не задано, CMake выбирает проверки времени выполнения, используя значение по умолчанию $<$<CONFIG:Debug>:StackFrameErrorCheck;UninitializedVariable>, если оно поддерживается компилятором, или пустое значение в противном случае.

Примечание

Эта переменная действует только в том случае, если политика CMP0184 установлена в значение NEW до первого вызова команды project() или enable_language(), включающей язык с помощью компилятора, использующего ABI MSVC.

© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/variable/CMAKE_MSVC_RUNTIME_CHECKS.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API