Какое место для файлов FindXXX.cmake для локально скомпилированных библиотек? - PullRequest
17 голосов
/ 03 апреля 2011

У меня есть библиотека, которую я установил вручную (в / usr / local) в системе Linux (кстати, Eigen3).Существует библиотека FindEigen3.cmake, связанная с библиотекой lib, но по умолчанию она нигде не установлена.

Существует / usr / share / cmake-xy / Modules, где CMake ищет дополнительные модули, но размещение этих файлов тамне похоже на способ делать вещи.Есть ли в каталоге / usr / local эквивалентное место, которое также сканируется по умолчанию?Или каков стандартный способ создания пользовательских библиотечных модулей?

(Хотя вопрос не связан строго с программированием, я думаю, что авторы библиотек могут также столкнуться с тем же вопросом с другой стороны: куда поместить эти файлыпри установке вручную.)

Ответы [ 3 ]

6 голосов
/ 04 апреля 2011

См. Комментарии в документации CMake для команды "find_package":

http://cmake.org/cmake/help/v2.8.8/cmake.html#command:find_package

Это говорит о написании файла "project-config" и о том, где его установить,такой, что find_package (Eigen3) будет работать без модуля поиска FindEigen3.cmake ... Это многословно, но информация там есть.

См. также предоставленные пользователем вики-страницы, такие как эта:

https://gitlab.kitware.com/cmake/community/wikis/doc/tutorials/How-to-create-a-ProjectConfig.cmake-file

5 голосов
/ 17 апреля 2011

В нашем проекте мы помещаем модули FIndXXX.cmake в папку root проекта dir / cmake / modules . Чтобы это работало, вы должны указать в корневой каталог проекта / CMakeLists.txt (аналогично тому, что DLRdave уже сказал):

set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)  
3 голосов
/ 04 апреля 2011

Вам нужно установить CMAKE_MODULE_PATH, чтобы включить каталог, в котором находится файл FindEigen3.cmake, перед вызовом find_package. Я считаю, что:

set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} <your path> )

справится с задачей, но у меня нет настройки для проверки того, что доступно в данный момент, поэтому вам, возможно, придется немного помассировать эту технику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...