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