У меня есть проект, который имеет такую структуру
project:
-- CMakeLists.txt
-- toolchain.cmake
-- source
-- includes
-- tools
-- arm-toolchain
-- arm-gnueabihf-gcc
-- ...
-- libraries
-- lib1
-- ...
-- CMakeLists.txt
-- lib2
-- ...
-- CMakeLists.txt
Я хотел бы установить компилятор для другой архитектуры внутри toolchain.cmake
, например:
...
set (CMAKE_C_COMPILER "${CMAKE_SOURCE_DIR}/tools/arm-toolchain/arm-gnueabihf-gcc")
...
К сожалению,переменная ${CMAKE_SOURCE_DIR}
изменяется во время компиляции проекта, сначала это:
CMAKE_SOURCE_DIR=/home/username/project
Это именно то, что я ожидал.К сожалению, тогда он меняется на
CMAKE_SOURCE_DIR=/home/username/project/build/CMakeFiles/CMakeTmp
Поэтому я не могу использовать ${CMAKE_SOURCE_DIR}
в качестве корня моей project
-папки, есть ли другая переменная, которая не изменяется?Или я могу как-то сохранить первое значение?Проблема в том, что цепочка инструментов вызывается более одного раза, поэтому переменная, в которой я сохраняю начальное значение ${CMAKE_SOURCE_DIR}
, перезаписывается при втором запуске.