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

5
我正在进行不同的项目,其中一些项目提供了 .cmake 扩展。只要在您的 Ubuntu 系统上安装了项目的开发包,我就想安装这些扩展。
cmake 2.8 的模块保存在:
/usr/share/cmake-2.8/Modules/...

我认为这是我想安装自己的扩展程序的地方(知道一旦我们转到cmake-3.0,它将被破坏)。

然而,似乎还有另一个位置,包可以在其中安装自己的扩展:

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

有没有地方可以找到关于这个的文档?到目前为止,我在谷歌上的搜索并没有指向正确的方向...

我找到了下面的答案,但那似乎只适用于cmake而不是Ubuntu:

CMake:在哪里安装FooBarConfig.cmake和FooBarConfigVersion.cmake?

1个回答

4
你可以使用你在问题中提到的CMake软件包配置机制。假设你有以下CMake文件:
SomeProjectConfig.cmake
SomeProjectConfigVersion.cmake
SomeProjectExtensions.cmake
SomeProjectConfig.cmakeSomeProjectConfigVersion.cmake可以通过CMakePackageConfigHelpers模块生成。
例如,您可以将它们安装到/usr/share/cmake/SomeProject/文件夹中。有关CMake使用的默认路径的完整列表,请参见find_package文档
在您的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使用您的CMake脚本:
# User CMakeLists.txt
find_package(SomeProject REQUIRED)
message(STATUS "SOME_PROJECT_SOME_VAR = ${SOME_PROJECT_SOME_VAR}")
some_project_func()
include(SomeProjectExtensions)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接