CMP0008
Библиотеки, связанные полным путем, должны иметь допустимое имя файла библиотеки.
В CMake 2.4 и ниже можно написать код, подобный
target_link_libraries(myexe /full/path/to/somelib)
где somelib должно быть допустимым именем файла библиотеки, например, libsomelib.a или somelib.lib. Для генераторов Makefile это приводит к ошибке во время сборки, поскольку зависимость по полному пути не может быть найдена. Для IDE генераторов Visual Studio и Xcode генераторов это работало случайно, поскольку CMake всегда отделял директорию библиотеки и просил компоновщик искать библиотеку по имени (-lsomelib или somelib.lib). Несмотря на ошибку с Makefiles, некоторые проекты имеют подобный код и собираются только с Visual Studio и/или Xcode. Эта версия CMake предпочитает передавать полный путь напрямую инструменту нативной сборки, что в этом случае завершится ошибкой, так как не указано имя допустимого файла библиотеки.
Данная политика определяет, что делать с полными путями, которые не кажутся именами допустимого файла библиотеки. OLD поведение для этой политики заключается в разделении имени библиотеки от пути и запросе к компоновщику поиска по имени. NEW поведение для этой политики заключается в доверие указанному пути и передаче его напрямую инструменту нативной сборки без изменений.
Данная политика была введена в версии CMake 2.6.1. Она может быть установлена с помощью 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.30/policy/CMP0008.html