cmake_minimum_required
Требуется минимальная версия cmake.
cmake_minimum_required(VERSION <min>[...<policy_max>] [FATAL_ERROR])
Добавлена в версии 3.12: Необязательная <policy_max> версия.
Устанавливает минимально необходимую версию cmake для проекта. Также обновляет настройки политик, как объяснено ниже.
<min> и необязательная <policy_max> являются версиями CMake, имеющими вид major.minor[.patch[.tweak]], а ... — это литеральная запись.
Если текущая версия CMake меньше требуемой версии <min>, процесс обработки проекта будет остановлен и будет сообщено об ошибке. Необязательная <policy_max> версия, если указана, должна быть не менее <min> версии и влияет на настройки политик, как описано в Настройках политик. Если текущая версия CMake старше 3.12, дополнительные ... точки будут восприниматься как разделители компонентов версии, в результате чего часть ...<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) неявно вызывает команду cmake_policy(VERSION) для указания того, что текущий код проекта написан для указанного диапазона версий CMake. Все политики, известные текущей версии CMake и введенные в версии <min> (или <max>, если указана) или ранее, будут установлены для использования NEW поведения. Все политики, введенные в более поздних версиях, будут сброшены. Это эффективно запрашивает поведение, предпочтительное для данной версии CMake, и сообщает более новым версиям CMake о предупреждениях об их новых политиках.
Когда <min> версия выше 2.4, команда неявно вызывает
cmake_policy(VERSION <min>[...<max>])
что устанавливает политики CMake на основе заданного диапазона версий. Когда <min> версия 2.4 или ниже, команда неявно вызывает
cmake_policy(VERSION 2.4[...<max>])
что включает функции совместимости для CMake 2.4 и ниже.
Изменено в версии 3.31: Совместимость с версиями CMake, более старыми, чем 3.10 устарела. Вызовы cmake_minimum_required(VERSION) или cmake_policy(VERSION), которые не указывают как минимум 3.10 в качестве версии политики (необязательно через ...<max>) будут генерировать предупреждение об устаревании в CMake 3.31 и выше.
Изменено в версии 3.27: Совместимость с версиями CMake, более старыми, чем 3.5 устарела. Вызовы cmake_minimum_required(VERSION) или cmake_policy(VERSION), которые не указывают как минимум 3.5 в качестве версии политики (необязательно через ...<max>) будут генерировать предупреждение об устаревании в CMake 3.27 и выше.
Изменено в версии 3.19: Совместимость с версиями CMake, более старыми, чем 2.8.12 устарела. Вызовы cmake_minimum_required(VERSION) или cmake_policy(VERSION), которые не указывают как минимум 2.8.12 в качестве версии политики (необязательно через ...<max>) будут генерировать предупреждение об устаревании в CMake 3.19 и выше.
См. также
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/command/cmake_minimum_required.html