【问题标题】:What is the location to install .cmake extension files in Ubuntu?在 Ubuntu 中安装 .cmake 扩展文件的位置在哪里?
【发布时间】:2015-07-23 23:27:52
【问题描述】:

我正在处理各种项目,其中一些提供了一个 .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?

【问题讨论】:

    标签: ubuntu installation cmake


    【解决方案1】:

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

    想象一下你有以下 CMake 文件:

    SomeProjectConfig.cmake
    SomeProjectConfigVersion.cmake
    SomeProjectExtensions.cmake
    

    SomeProjectConfig.cmakeSomeProjectConfigVersion.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 使用您的 CMake 脚本:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      • 2013-05-26
      • 1970-01-01
      • 2021-12-10
      相关资源
      最近更新 更多