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 и ниже.
© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.22/command/cmake_minimum_required.html