CMake получить список исходных файлов в родительском каталоге - PullRequest
0 голосов
/ 04 июня 2018

У меня есть проект, который организован следующим образом:

<path_to_project>
  |_ build
  |_ exe1
  | |_ src
  | |_ includes
  |_ exe2
  | |_ src
  | |_ includes
  |_ libs
    |_ src
    |_ includes

Я хочу управлять всеми его частями с помощью CMake (я новичок в этом).

Дляэто я создал CMakeLists.txt в корневом каталоге, в него я добавил строку:add_executable(exe1 ${EXE1_SOURCES})

Где определено EXE1_SOURCES в CMakeLists.txt в каталоге exe1/src со всеми exe1 исходными файлами.

Когда я иду в buildкаталог, и я делаю cmake .., он говорит add_executable called with incorrect number of arguments, что означает, что он не может найти переменную EXE1_SOURCES.

Я пробовал две вещи:

  • Добавить CACHE INTERNALв конце команды set
  • Добавьте PARENT_SCOPE в конце команды set, добавьте exe1/MakeLists.txt и напишите set(EXE1_SOURCES ${EXE1_SOURCES} PARENT_SCOPE)

Но оба не удаются.

Какой самый простой способ достичь того, что я хочу сделать?

1 Ответ

0 голосов
/ 05 июня 2018

Чтобы все переменные были определены в подкаталоге CMakeLists.txt, мне пришлось добавить add_subdirectory(${PROJECT_SOURCE_DIR}/exe1/src) в основной CMakeLists.txt.

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