2015-02-07 4 views
1

На CMake (версия 3.1.1 на OS X Yosemite) переменные, заданные различными пакетами с использованием find_package, похоже, следуют различным соглашениям.CMake имя переменных пакета

С find_package(OpenGL) переменные OPENGL_LIBRARY и OPENGL_INCLUDE_DIR получить набор (с учетом регистра).

Но с find_package(OpenCV) переменные с этими именами остаются пустыми, но OpenCV_LIBS установить.

Что такое правильное соглашение, и есть ли способ заставить CMake использовать его на любой платформе?

ответ

2

Правовые соглашения документированы here. Например, пакет с именем Foo должен сделать свои библиотеки доступными в не кэшированной переменной Foo_LIBRARIES, а ее каталоги включать в не кэшированную переменную Foo_INCLUDE_DIRS.

Поскольку для поддержки этих соглашений существует только поддерживающий модуль поиска CMake, нет никакого способа их принудительного применения.

Смежные вопросы