Spec-Zone.ru › CMake

cmake_minimum_required

Задает минимальную версию CMake.

cmake_minimum_required(VERSION <min>[...<policy_max>] [FATAL_ERROR])

Добавлено в версии 3.12: Необязательное поведение версии <policy_max>; в более старых версиях CMake игнорируется.

Задает минимальную требуемую версию CMake для проекта. Также обновляет настройки политик, как описано ниже.

<min> и необязательное <policy_max> — это версии CMake в формате major.minor[.patch[.tweak]], а ... — литерал.

Если запущенная версия CMake ниже требуемой версии <min>, обработка проекта будет прекращена и будет выведена ошибка. Если указана необязательная версия <policy_max>, она должна быть не ниже версии <min> и задает версию политик. Если запущенная версия CMake старше 3.12, дополнительные точки ... будут восприниматься как разделители компонентов версии, в результате чего часть ...<policy_max> будет проигнорирована, а сохранится поведение, существовавшее до версии 3.12, при котором политики основываются на <min>.

Эта команда задает переменной CMAKE_MINIMUM_REQUIRED_VERSION значение <min>.

Параметр FATAL_ERROR принимается, но игнорируется CMake 2.6 и более поздними версиями. Его следует указывать, чтобы версии CMake 2.4 и более ранние завершали работу с ошибкой, а не просто выдавали предупреждение.

Примечание

Вызывайте команду cmake_minimum_required() в начале файла CMakeLists.txt верхнего уровня, даже до вызова команды project(). Важно установить версии и параметры политик до вызова других команд, на поведение которых они могут повлиять. См. также политику CMP0000.

Вызов cmake_minimum_required() внутри function() ограничивает некоторые эффекты областью видимости функции при ее вызове. Например, переменная CMAKE_MINIMUM_REQUIRED_VERSION не будет задана в вызывающей области видимости. Однако функции не создают собственную область видимости политик, поэтому настройки политик вызывающего кода будут затронуты (см. ниже). Из-за такого сочетания эффектов, которые влияют и не влияют на вызывающую область видимости, вызов cmake_minimum_required() внутри функции обычно не рекомендуется.

Версия политик

cmake_minimum_required(VERSION <min>[...<policy_max>]) неявно вызывает

cmake_policy(VERSION <min>[...<policy_max>])

Это указывает, что текущий код CMake написан для заданного диапазона версий CMake: <min>[...<policy_max>]. При этом «версия политик» задается следующим образом:

  • версия <policy_max> диапазона, если она указана; иначе
  • версия <min>; либо
  • значение переменной CMAKE_POLICY_VERSION_MINIMUM, если оно выше двух остальных версий.

Версия политик фактически запрашивает поведение, предпочтительное для указанной версии CMake, и сообщает более новым версиям CMake, что о новых политиках следует выдавать предупреждения. Для всех политик, известных запущенной версии CMake и введенных в версии политик или ранее, будет установлено поведение NEW. Для всех политик, введенных в более поздних версиях, состояние останется неопределенным (если только переменная CMAKE_POLICY_DEFAULT_CMP<NNNN> не задает значение по умолчанию).

Примечание

...<policy_max> не означает, что использование более поздних версий CMake запрещено. Она лишь указывает самую новую версию CMake, для которой проект или модуль активно обновлялся и поддерживался.

Изменено в версии 4.0: Поддержка версий CMake старше 3.5 удалена. Вызовы cmake_minimum_required(VERSION) или cmake_policy(VERSION), в которых в качестве версии политик указана версия ниже 3.5 (возможно, через ...<policy_max>), в CMake 4.0 и более поздних версиях приведут к ошибке.

Изменено в версии 3.31: Поддержка версий CMake старше 3.10 объявлена устаревшей. Вызовы cmake_minimum_required(VERSION) или cmake_policy(VERSION), в которых в качестве версии политик указана версия ниже 3.10 (возможно, через ...<policy_max>), в CMake 3.31 и более поздних версиях приведут к предупреждению об устаревании.

Изменено в версии 3.27: Поддержка версий CMake старше 3.5 объявлена устаревшей. Вызовы cmake_minimum_required(VERSION) или cmake_policy(VERSION), в которых в качестве версии политик указана версия ниже 3.5 (возможно, через ...<policy_max>), в CMake 3.27 и более поздних версиях приведут к предупреждению об устаревании.

Изменено в версии 3.19: Поддержка версий CMake старше 2.8.12 объявлена устаревшей. Вызовы cmake_minimum_required(VERSION) или cmake_policy(VERSION), в которых в качестве версии политик указана версия ниже 2.8.12 (возможно, через ...<policy_max>), в CMake 3.19 и более поздних версиях приведут к предупреждению об устаревании.

См. также

  • cmake_policy()

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

Spec-Zone.ru

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