CMP0117
Добавлен в версии 3.20.
Флаг RTTI MSVC /GR по умолчанию не добавляется в CMAKE_CXX_FLAGS.
При использовании компиляторов, похожих на MSVC, в CMake 3.19 и ниже, флаг RTTI /GR по умолчанию добавляется в CMAKE_CXX_FLAGS. Это поведение сохранилось с поддержки версий MSVC из Visual Studio 2003 и ниже, которые по умолчанию не включали RTTI. Это больше не требуется. Кроме того, это проблематично для проектов, которые хотят изменить значение /GR- программно. В частности, это требует редактирования строки переменной CMAKE_CXX_FLAGS с знанием значения по умолчанию CMake, чтобы оно могло быть заменено.
CMake 3.20 и выше предпочитают по умолчанию исключать /GR из значения CMAKE_CXX_FLAGS.
Данный политический параметр обеспечивает совместимость с проектами, которые не были обновлены для ожидания отсутствия флага /GR. Настройка политики вступает в силу с первого project() или enable_language() команды, инициализирующей CMAKE_CXX_FLAGS.
Примечание
После того как политика вступила в силу в верхней части проекта для данного языка, этот выбор должен использоваться на протяжении всего дерева для данного языка. В проектах, имеющих вложенные проекты в подкаталогах, убедитесь, что всё преобразовано вместе.
Поведение OLD для этой политики заключается в размещении флага MSVC /GR в стандартной записи кэша CMAKE_CXX_FLAGS. Поведение NEW для этой политики заключается в том, чтобы не размещать флаг MSVC /GR в стандартной записи кэша.
Данный политический параметр был введён в CMake версии 3.20. Он может быть установлен с помощью cmake_policy() или cmake_minimum_required(). Если он не установлен, CMake не выводит предупреждение и использует поведение OLD.
Примечание
Поведение OLD политики — deprecated by definition и может быть удалено в будущих версиях CMake.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/policy/CMP0117.html