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() или 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/v3.29/policy/CMP0117.html