Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

cmake one module include another one

Tags:

cmake

For a cmake toolchain file, A.toolchain.cmake, I want to include B.cmake, which only has some variables set. Two cmake file lay in the same folder. But cmake output error, cannot find B.cmake.

CMake Error at /Users/robert/workspace/cpp/CLIon/rSock/xbuild/cmake/Darwin_x86_64.toolchain.cmake:12 (include): include could not find load file: /Users/robert/workspace/cpp/CLIon/rSock/xbuild/build/Darwin_x86_64/CMakeFiles/CMakeTmp/xbuild/cmake/base.cmake

I tried many ways, relative or absolute path, or set as module. They just don't work. But if I put include in CMakelists.txt, it works. Why? Only cmakelists.txt can include other cmake files?

#include("./base.cmake")

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

include(${PROJECT_SOURCE_DIR}/xbuild/cmake/base.cmake)
like image 729
robert Avatar asked Apr 27 '26 06:04

robert


1 Answers

Try using CMAKE_CURRENT_LIST_DIR:

include("${CMAKE_CURRENT_LIST_DIR}/base.cmake")
like image 110
sakra Avatar answered Apr 30 '26 13:04

sakra



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!