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

问题描述 投票:0回答:1

对于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
1个回答
3
投票

尝试使用CMAKE_CURRENT_LIST_DIR

include("${CMAKE_CURRENT_LIST_DIR}/base.cmake")
© www.soinside.com 2019 - 2024. All rights reserved.