假设我有一些与 protobuf 相关的 cmake 代码作为驻留在CMakeLists.pro文件中的库,我需要将此库作为外部文件配置包含在内。怎么做 ?
问问题
30 次
1 回答
0
我认为这个问题是在询问如何制作 cmake 模块。IE 你有帮助代码并希望它易于使用。
一个普通的顶级项目有一个顶级的 cmake 文件夹。这是一个看起来像的例子。
- 制作
- 测试
- 源代码
- .gitignore
- CMakeLists.txt
- 自述文件.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 文件的方式
于 2020-11-10T11:26:33.850 回答