cmake一个模块包括另一个模块

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cmake一个模块包括另一个模块相关的知识,希望对你有一定的参考价值。

对于cmake工具链文件,A.toolchain.cmake,我想包含B.cmake,它只设置了一些变量。两个cmake文件位于同一个文件夹中。但是cmake输出错误,找不到B.cmake。

/Users/robert/workspace/cpp/CLIon/rSock/xbuild/cmake/Darwin_x86_64.toolchain.cmake:12(include)中的CMake错误:包括找不到加载文件:/ Users / robert / workspace / cpp / CLIon / rSock /xbuild/build/Darwin_x86_64/CMakeFiles/CMakeTmp/xbuild/cmake/base.cmake

我尝试了很多方法,相对或绝对路径,或设置为模块。他们只是不工作。但是如果我在CMakelists.txt中添加include,它就可以了。为什么?只有cmakelists.txt可以包含其他cmake文件?

#include("./base.cmake")

#set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/xbuild/cmake")
#include(base)

include(${PROJECT_SOURCE_DIR}/xbuild/cmake/base.cmake)
答案

尝试使用CMAKE_CURRENT_LIST_DIR

include("${CMAKE_CURRENT_LIST_DIR}/base.cmake")

以上是关于cmake一个模块包括另一个模块的主要内容,如果未能解决你的问题,请参考以下文章

当尝试将变量传递给另一个模块时,将代码拆分到Nodejs中的自定义模块时,它将被定义为未定义

如何使用 fetch 从一个模块导出从 GET API 获得的响应数据到另一个模块

如何使用Git子模块和CMake处理传递依赖冲突?

如何使用模块化代码片段中的LeakCanary检测内存泄漏?

如何有条件地将 C 代码片段编译到我的 Perl 模块?

opencv第二课,使用cmake编译OpenCV,并添加opencv_contrib模块