在Ubuntu中安装.cmake扩展文件的位置是什么?

在Ubuntu中安装.cmake扩展文件的位置是什么?,ubuntu,installation,cmake,Ubuntu,Installation,Cmake,我正在做各种各样的项目,其中一些提供了.cmake扩展,每当项目的开发包安装在你的Ubuntu系统上时,我都想安装它 cmake 2.8的模块保存在 /usr/share/cmake-2.8/Modules/... 我想这就是我想要安装自己的扩展(知道一旦我们进入cmake-3.0,它就会崩溃) 但是,软件包似乎在另一个位置安装自己的扩展: /usr/share/cmake/<project-name>/... /usr/share/cmake/。。。 有没有一个地方可以找到关

我正在做各种各样的项目,其中一些提供了.cmake扩展,每当项目的开发包安装在你的Ubuntu系统上时,我都想安装它

cmake 2.8的模块保存在

/usr/share/cmake-2.8/Modules/...
我想这就是我想要安装自己的扩展(知道一旦我们进入cmake-3.0,它就会崩溃)

但是,软件包似乎在另一个位置安装自己的扩展:

/usr/share/cmake/<project-name>/...
/usr/share/cmake/。。。
有没有一个地方可以找到关于这个的文档?到目前为止,我在谷歌上的搜索并没有给我指明正确的方向

我找到了以下答案,但这似乎是针对cmake而非Ubuntu的:


您可以使用您在问题中提到的CMake包配置机制

您拥有以下CMake文件:

SomeProjectConfig.cmake
SomeProjectConfigVersion.cmake
SomeProjectExtensions.cmake
可以通过生成
SomeProjectConfig.cmake
SomeProjectConfigVersion.cmake

例如,您可以将它们安装到
/usr/share/cmake/SomeProject/
文件夹中。有关CMake使用的默认路径的完整列表,请参见

SomeProjectConfig.cmake
中,您可以包含
SomeProjectExtensions.cmake
文件或展开
cmake\u模块路径
变量,使用户可以包含cmake脚本:

# SomeProjectConfig.cmake
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
set(SOME_PROJECT_SOME_VAR "...")
function(some_project_func)
    ...
endfunction()
现在,您的用户可以通过
find_-package
使用您的CMake脚本:

# User CMakeLists.txt
find_package(SomeProject REQUIRED)
message(STATUS "SOME_PROJECT_SOME_VAR = ${SOME_PROJECT_SOME_VAR}")
some_project_func()
include(SomeProjectExtensions)