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