CMP0008
Библиотеки, связанные полным путем, должны иметь действительное имя файла библиотеки.
В CMake 2.4 и ниже можно написать код, подобный
target_link_libraries(myexe /full/path/to/somelib)
где somelib должно быть действительным именем файла библиотеки, таким как libsomelib.a или somelib.lib. Для генераторов Makefile это приводит к ошибке во время сборки, так как зависимость по полному пути не может быть найдена. Для генераторов IDE Visual Studio и генераторов Visual Studio и генераторов Xcode это раньше работало случайно, так как CMake всегда отделял директорию библиотеки и просил компоновщик искать библиотеку по имени (-lsomelib или somelib.lib). Несмотря на ошибку с Makefiles, в некоторых проектах есть код подобного вида, и они собираются только с Visual Studio и/или Xcode. Эта версия CMake предпочитает передавать полный путь напрямую инструменту native сборки, что в этом случае завершится ошибкой, так как не указан действительный файл библиотеки.
Данная политика определяет, что делать с полными путями, которые, по-видимому, не указывают на действительный файл библиотеки. OLD поведение этой политики заключается в разделении имени библиотеки от пути и запросе к компоновщику поиска по имени. NEW поведение этой политики заключается в доверии указанному пути и передаче его напрямую инструменту native сборки без изменений.
Данная политика была введена в CMake версии 2.6.1. CMake версии 3.25.1 предупреждает, если политика не установлена, и использует OLD поведение. Используйте команду cmake_policy(), чтобы установить её явно в OLD или NEW.
Примечание
OLD поведение политики является deprecated by definition и может быть удалено в будущих версиях CMake.
© 2000–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.25/policy/CMP0008.html