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