Spec-Zone.ru › CMake 3.5

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

Spec-Zone.ru

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