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