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

时间:2018-03-04 13:07:21

标签: 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)

1 个答案:

答案 0 :(得分:3)

尝试使用CMAKE_CURRENT_LIST_DIR

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