Я работаю над проектом, который включает в себя игровой каркас на основе SDL, редактор и игру.Структура каталогов выглядит примерно так (отредактировано для краткости)
├── CMake
├── Libraries
├── Resources
└── Source
├── Editor
├── Framework
│ └── Source
│ ├── AI
│ │ ├── Private
│ │ └── Public
│ ├── Game
│ │ ├── Private
│ │ └── Public
│ ├── Graphics
│ │ ├── Private
│ │ └── Public
│ └── Networking
├── Game
│ └── Source
│ └── Runtime
│ └── Launch
│ ├── Private
│ └── Public
└── Server
Моя команда add_executable
выполняется в Game / Source / Runtime / Launch / Private и зависит от файлов издругие модули.
Согласно некоторым инструкциям CMake и принятому ответу на следующий вопрос, заголовки для данной цели должны быть включены в вызов add_executable
, чтобы они были перечислены как зависимости.в make-файле.
Как правильно добавить включаемые каталоги с помощью CMake
Мой вопрос заключается в том, каков самый чистый способ сделать это, учитывая обилие заголовочных файлов икаталоги в моем проекте?Я не могу себе представить, что наилучшей практикой будет поддерживать огромный список файлов непосредственно в вызове add_executable
, но я могу ошибаться.
Я думал, что CMakeLists.txt каждого каталога может быть ответственнымдля добавления к переменной, которая в конечном итоге будет использоваться в add_executable, но распространение этого намерения через множество файлов кажется плохой практикой.Есть ли лучший способ?