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