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