Каталог сборки CMake должен содержать файлы и каталоги , сгенерированные через CMake, и не должен храниться в системе контроля версий.
Я работал с несколькими основанными на CMake проектами на Github. По моему опыту, это никогда не было стандартной практикой, чтобы проверять папку сборки в вашем git хранилище (или любом контроле исходного кода).
Одним огромным преимуществом проекта CMake перед проектами, не относящимися к CMake, является то, что артефакты сборки (такие как файлы проекта Visual Studio и файлы IDE с пользовательскими настройками c) выполняют , а не должны быть проверены в вашем хранилище; CMake генерирует это для вас!
Простая структура проекта на основе CMake будет выглядеть следующим образом. Вы должны проверить свои файлы CMakeLists.txt и исходный код в git (или другом) исходном элементе управления. Но я очень рекомендую вам структурировать ваш проект таким образом, чтобы ничего в вашем двоичном каталоге CMake не нужно было отслеживать с помощью контроля версий:
projectRoot
├───.git/
├───build/ <---- Do NOT check in anything from 'build'.
│ CMakeLists.txt <---- Check in your top-level CMake source file.
├───src/ <---- Check in all your code and other CMake files.
│ CMakeLists.txt
│ MyClass.cpp
│ main.cpp
Таким образом, каждый человек, работающий с репозиторием, имеет их собственный каталог сборки CMake. Если необходимо внести изменения в сборку, эти изменения должны быть отражены в файлах CMakeLists.txt. Затем, когда изменения в файлах CMakeLists.txt загружаются в локальный репозиторий, CMake может заново сгенерировать любые файлы проекта / системы сборки, которые необходимо обновить.