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). Несмотря на неудачу с Makefiles, некоторые проекты имеют такой код и собираются только с Visual Studio и/или Xcode. Эта версия CMake предпочитает передавать полный путь напрямую в инструмент нативной сборки, что в этом случае приведет к ошибке, так как имя файла библиотеки не является корректным.
Данная политика определяет, что делать с полными путями, которые, похоже, не указывают на корректный файл библиотеки. Поведение OLD для этой политики заключается в разделении имени библиотеки от пути и просьбе к компоновщику найти её по имени. Поведение NEW для этой политики заключается в доверии указанному пути и передаче его напрямую в инструмент нативной сборки без изменений.
Эта политика была введена в версии CMake 2.6.1. CMake версии 3.27.9 предупреждает, когда политика не установлена, и использует OLD поведение. Используйте команду cmake_policy(), чтобы явно установить её в OLD или NEW.
Примечание
Поведение OLD политики deprecated by definition и может быть удалено в будущих версиях CMake.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.27/policy/CMP0008.html