我有一个项目的结构如下
project:
-- CMakeLists.txt
-- toolchain.cmake
-- source
-- includes
-- tools
-- arm-toolchain
-- arm-gnueabihf-gcc
-- ...
-- libraries
-- lib1
-- ...
-- CMakeLists.txt
-- lib2
-- ...
-- CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)
我想为另一个架构设置编译器,如下所示toolchain.cmake:
...
set (CMAKE_C_COMPILER "${CMAKE_SOURCE_DIR}/tools/arm-toolchain/arm-gnueabihf-gcc")
...
Run Code Online (Sandbox Code Playgroud)
不幸的是,在编译项目时变量${CMAKE_SOURCE_DIR}确实发生了变化,起初它是:
CMAKE_SOURCE_DIR=/home/username/project
Run Code Online (Sandbox Code Playgroud)
这正是我所期望的。不幸的是,它随后更改为
CMAKE_SOURCE_DIR=/home/username/project/build/CMakeFiles/CMakeTmp
Run Code Online (Sandbox Code Playgroud)
因此我不能用作${CMAKE_SOURCE_DIR}我的文件夹的根目录project,是否还有另一个不会改变的变量?或者,我可以以某种方式存储第一个值吗?问题是工具链被多次调用,因此我存储初始值的变量${CMAKE_SOURCE_DIR}在第二次运行时被覆盖。