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 и более поздних версиях приведут к предупреждению об устаревании.
См. также
© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/command/cmake_minimum_required.html