如何解决我们如何从主CMakeLists.txt文件引用外部cmake文件?
比方说,我有一些与protobuf相关的cmake代码,它是一个驻留在 CMakeLists.pro 文件中的库,我需要将此库包含为外部文件配置。该怎么做?
解决方法
我认为这个问题在问如何制作cmake模块。 IE,您有帮助程序代码,并希望使其易于使用。
一个普通的顶层项目有一个顶层cmake文件夹。这是一个示例。
- cmake
- 测试
- src
- .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()
现在在您的主要cmakelist中,您如何称呼此函数?很简单。
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文件的方式
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。