2015-05-12 5 views
2

Я работаю над различными проектами, некоторые из которых предлагают расширение .cmake, которое я хочу установить, когда пакет разработки проекта установлен в вашей системе Ubuntu.Какое место для установки файлов расширения .cmake в Ubuntu?

Модули CMake 2.8 сохраняются в

/usr/share/cmake-2.8/Modules/... 

, и я подумал, что это был я хотел бы установить свои собственные расширения (зная, что это нарушило бы один раз мы идем в CMake-3.0).

Однако, кажется, есть другое место, где пакеты устанавливать свои собственные расширения:

/usr/share/cmake/<project-name>/... 

Есть место, где я могу найти документацию по этому поводу? До сих пор мои поиски на Google не указал мне в правильном направлении ...

Я нашел следующий ответ, но это, кажется, специфичные для CMake, а не Ubuntu:

CMake: Where to install FooBarConfig.cmake and FooBarConfigVersion.cmake?

ответ

3

Вы может использовать механизм конфигурации пакета CMake, о котором вы упомянули в своем вопросе.

Воображение вы следующие файлы CMake:

SomeProjectConfig.cmake 
SomeProjectConfigVersion.cmake 
SomeProjectExtensions.cmake 

SomeProjectConfig.cmake и SomeProjectConfigVersion.cmake могут быть сгенерированы CMakePackageConfigHelpers module.

Вы можете установить их в папку /usr/share/cmake/SomeProject/, например. Полный список путей по умолчанию, используемых CMake, см. В разделе find_package documentation.

В вашей SomeProjectConfig.cmake вы можете включить файл SomeProjectExtensions.cmake или расширить CMAKE_MODULE_PATH переменную, чтобы позволить пользователю включить сценарий CMake:

# SomeProjectConfig.cmake 
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) 
set(SOME_PROJECT_SOME_VAR "...") 
function(some_project_func) 
    ... 
endfunction() 

Теперь ваши пользователи могут использовать свои сценарии CMake через find_package:

# User CMakeLists.txt 
find_package(SomeProject REQUIRED) 
message(STATUS "SOME_PROJECT_SOME_VAR = ${SOME_PROJECT_SOME_VAR}") 
some_project_func() 
include(SomeProjectExtensions) 
Смежные вопросы