cmake-policies(7)
Введение
Политики в CMake используются для сохранения обратной совместимости между различными версиями. При добавлении новой политики, более новые версии CMake начнут выдавать предупреждения о сохранении обратной совместимости. Можно отключить предупреждение, явно запросив старое, или обратную совместимость, используя команду cmake_policy(). Также можно запросить NEW, или необратную совместимость для политики, также избежав предупреждения. Каждая политика также может быть установлена в NEW или OLD поведение явно в командной строке с помощью переменной CMAKE_POLICY_DEFAULT_CMP<NNNN>.
Политика — это механизм устаревания, а не надёжный переключатель функций. Политика почти никогда не должна быть установлена в OLD, за исключением случаев подавления предупреждений в стабильной или замороженной кодовой базе, или временно как часть более крупного пути миграции. OLD поведение каждой политики нежелательно и будет заменено условием ошибки в будущей версии.
Команда cmake_minimum_required() делает больше, чем просто сообщает об ошибке, если используется слишком старая версия CMake для сборки проекта. Она также устанавливает все политики, добавленные в этой или более ранней версии CMake, в NEW поведение. Для управления политиками без повышения минимально требуемой версии CMake можно использовать команду if(POLICY):
if(POLICY CMP0990) cmake_policy(SET CMP0990 NEW) endif()
Это позволяет использовать NEW поведение с новыми версиями CMake, которые могут использоваться пользователями, и не выдает предупреждения о совместимости.
В некоторых случаях установка политики ограничена и не распространяется на родительский контекст. Например, если файлы, прочитанные командой include() или командой find_package(), содержат использование cmake_policy(), то по умолчанию эта установка политики не повлияет на вызывающую программу. Обе команды принимают необязательное ключевое слово NO_POLICY_SCOPE для управления этим поведением.
Переменная CMAKE_MINIMUM_REQUIRED_VERSION также может использоваться для определения того, нужно ли сообщать об ошибке при использовании устаревших макросов или функций.
Все политики
- CMP0000
- CMP0001
- CMP0002
- CMP0003
- CMP0004
- CMP0005
- CMP0006
- CMP0007
- CMP0008
- CMP0009
- CMP0010
- CMP0011
- CMP0012
- CMP0013
- CMP0014
- CMP0015
- CMP0016
- CMP0017
- CMP0018
- CMP0019
- CMP0020
- CMP0021
- CMP0022
- CMP0023
- CMP0024
- CMP0025
- CMP0026
- CMP0027
- CMP0028
- CMP0029
- CMP0030
- CMP0031
- CMP0032
- CMP0033
- CMP0034
- CMP0035
- CMP0036
- CMP0037
- CMP0038
- CMP0039
- CMP0040
- CMP0041
- CMP0042
- CMP0043
- CMP0044
- CMP0045
- CMP0046
- CMP0047
- CMP0048
- CMP0049
- CMP0050
- CMP0051
- CMP0052
- CMP0053
- CMP0054
- CMP0055
- CMP0056
- CMP0057
- CMP0058
- CMP0059
- CMP0060
- CMP0061
- CMP0062
- CMP0063
- CMP0064
- CMP0065
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.5/manual/cmake-policies.7.html