CMP0117
Новое в версии 3.20.
Флаг MSVC RTTI /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(), чтобы явно установить ее в OLD или NEW. В отличие от многих политик, CMake версии 3.20.0-rc3 не предупреждает, если эта политика не установлена, а просто использует поведение OLD.
Примечание
Поведение OLD политики deprecated by definition и может быть удалено в будущих версиях CMake.
© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.20/policy/CMP0117.html