CMake: Как мне получить каталог проекта из файла цепочки инструментов? - PullRequest
0 голосов
/ 17 января 2019

У меня есть проект, который имеет такую ​​структуру

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}, перезаписывается при втором запуске.

1 Ответ

0 голосов
/ 17 января 2019

Я нашел ответ здесь: https://gitlab.kitware.com/cmake/cmake/issues/16744

CMAKE_CURRENT_LIST_DIR действительно работает в этом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...