Да, у вас есть два варианта. Предположим, у вас структура папок примерно такая.
├── autopilot
│ ├── _AutoPilot.cpp
│ ├── _AutoPilot.h
│ └── action
│ ├── ActionBase.cpp
│ ├── ActionBase.h
│ ├── APcopter
│ │ ├── APcopter_avoid.cpp
│ │ ├── APcopter_avoid.h
Если вы хотите использовать AUX_SOURCE_DIRECTORY
, вам нужно добавить CMakeLists.txt каждый из подкаталогов. Затем вы должны включить и связать все эти подкаталоги. Это довольно сложная задача. Таким образом, вы можете GLOB и делать работу очень легко. Вот как это делается.
file(GLOB autopilot_sources ./*.cpp ./*/*.cpp ./*/*/*.cpp ./*/*/*/*.cpp ./*.c ./*/*.c ./*/*/*.c ./*/*/*/*.c)
SET( autopilot ${autopilot_sources})
Если вы хотите создать библиотеку, используя приведенный выше исходный код, это команда:
ADD_LIBRARY ( autopilot ${autopilot})
TARGET_LINK_LIBRARIES ( autopilot)
Если вы хотите создать исполняемый файл, используя приведенный выше исходный код, это команда:
ADD_EXECUTABLE(autopilot ${autopilot})