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/latest/policy/CMP0177.html