CMP0177
Добавлена в версии 3.31.
install() DESTINATION пути нормализуются.
Команда install() имеет несколько различных форм, и большинство из них принимает ключевое слово DESTINATION, некоторые в более чем одном месте. CMake 3.30 и более ранние версии использовали значение, указанное после ключевого слова DESTINATION, без преобразований. Форма install(EXPORT) предполагает, что путь не содержит компонентов .. или . при вычислении пути относительно DESTINATION, и если проект предоставил путь, нарушающий это предположение, вычисленный путь будет неверным.
CMake 3.31 нормализует все значения DESTINATION, заданные в любой форме команды install(), за исключением INCLUDES DESTINATION формы install(TARGETS). Выполняемая нормализация аналогична нормализации для команды cmake_path() (см. Нормализация).
Поведение OLD этой политики не выполняет преобразования значений DESTINATION любой команды install(). Они используются точно так, как предоставлены. Если путь назначения содержит компоненты .. или ., install(EXPORT) будет использовать те же неправильные пути, что и CMake 3.30 и более ранние версии.
Поведение NEW будет нормализовать все значения DESTINATION за исключением INCLUDES DESTINATION. Если путь назначения содержит выражение генератора, оно будет заключено в выражение генератора $<PATH:CMAKE_PATH,NORMALIZE,...>.
Эта политика была введена в версии CMake 3.31. Она может быть установлена с помощью 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.31/policy/CMP0177.html