我正在从事各种项目,其中一些项目提供了一个.cmake扩展,只要项目的开发包安装在您的Ubuntu系统上,我就想安装它。
Cmake2.8的模块保存在
/usr/share/cmake-2.8/Modules/...我想,如果我想安装我自己的扩展(知道一旦我们使用cmake-3.0,它就会崩溃)。
但是,似乎还有另一个地方可以安装软件包自己的扩展:
/usr/share/cmake/<project-name>/...有什么地方可以找到这方面的文件吗?到目前为止,我在谷歌上的搜索还没有给我指明正确的方向.
我找到了以下答案,但这似乎是特定于cmake而不是Ubuntu的:
发布于 2015-05-13 18:27:24
您可以使用您在问题中提到的CMake包配置机制。
成像您有以下CMake文件:
SomeProjectConfig.cmake
SomeProjectConfigVersion.cmake
SomeProjectExtensions.cmakeSomeProjectConfig.cmake和SomeProjectConfigVersion.cmake可以由CMakePackageConfigHelpers模块生成。
例如,您可以将它们安装到/usr/share/cmake/SomeProject/文件夹中。有关CMake使用的默认路径的完整列表,请参见包装文件。
在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)https://stackoverflow.com/questions/30201895
复制相似问题