Поскольку вы используете CMake, я бы предложил использовать сборки вне исходного кода (либо полностью вне, либо в подкаталоге build
корневого каталога проекта). При использовании более чем одной конфигурации и / или компилятора одновременно вы можете создатьотдельный каталог для каждой сборки.
В CMakeLists.txt
в корневом каталоге проекта я установил материал, который будет использоваться всеми файлами CMakeLists.txt
в подкаталоге src
.Я помещаю все исходные файлы для исполняемых файлов и библиотек в подкаталог src
и обычно группирую источники, которые образуют единую библиотеку или исполняемый файл, внутри их собственного подкаталога в src
вместе с сопровождающим CMakeLists.txt
, который описывает, как его создать.,Я обычно не отделяю включаемые файлы от источников.
У меня также есть подкаталог cmake
в корневом каталоге проекта, куда я помещаю файлы, специфичные для CMake, такие как модули поиска, и в моем случае специальный модуль cmake, который исправляет пути, которые автоматически открывает Eclipse IDE.
|--cmake
| |
| |--FindXXX.cmake
|
|--src
| |
| |--projectABC
| | |
| | |--CMakeLists.txt
| |
| |--library1
| | |
| | |--CMakeLists.txt
| |
| |--library2
| |
| |--CMakeLists.txt
|
|--CMakeLists.txt
|
|--build-release
|--build-debug
|--build-msvc-release
|--[...]