我正在开发各种项目,其中一些项目提供了一个.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?
答案 0 :(得分:4)
您可以使用您在问题中提到的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()
现在,您的用户可以通过find_package
# User CMakeLists.txt
find_package(SomeProject REQUIRED)
message(STATUS "SOME_PROJECT_SOME_VAR = ${SOME_PROJECT_SOME_VAR}")
some_project_func()
include(SomeProjectExtensions)