【问题标题】:How can we refer external cmake file from main CMakeLists.txt file?我们如何从主 CMakeLists.txt 文件中引用外部 cmake 文件?
【发布时间】:2020-11-10 07:46:29
【问题描述】:

假设我有一些与 protobuf 相关的 cmake 代码作为驻留在 CMakeLists.pro 文件中的库,我需要将此库作为外部文件配置包含在内。该怎么做?

【问题讨论】:

  • 使用include 命令你可以包含任何CMake脚本。

标签: cmake cmakelists-options


【解决方案1】:

我认为这个问题是在问如何制作 cmake 模块。 IE 你有帮助代码并希望它易于使用。

一个普通的顶级项目有一个顶级的 cmake 文件夹。这是一个示例。

  • cmake
  • 测试
  • 源代码
  • .gitignore
  • CMakeLists.txt
  • README.md

在 cmake 文件夹中说你有一个名为 foo.cmake 的 cmake 模块 (重要的是使文件以 .cmake 文件扩展名结尾)

无论如何,这就是你的 foo.cmake 的样子

# Include guards need at least cmake 3.10
include_guard() # Good practice to use an include_guard()

function(bar)
...
endfunction()

现在在您的主要 cmakelists 中,您如何调用此函数?很简单。

cmake_minimum_required(VERSION 3.18)

# Add the cmake folder to the cmake module path, this makes it easier to include files
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")
# Include foo.cmake
include(foo)

# Call the bar function you defined in foo.cmake
bar()

这就是您可以从主 CMakeLists.txt 中引用外部 cmake 文件的方式

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多