Spec-Zone.ru › CMake 3.11

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.11.4 предупреждает, когда параметр не задан, и использует старое поведение. Используйте команду 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.11/policy/CMP0008.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API