Как сохранить каталог сборки проекта CMake в репозитории git? - PullRequest
0 голосов
/ 14 апреля 2020

Я работаю над проектом с другом и использую GitHub для одновременной работы. Я новичок в git и когда один из нас pu sh переходит на GitHub, он меняет папку сборки и изменяет настройки в файлах CMake. Как мы можем работать с git, не затрагивая файлы сборки друг друга?

Ответы [ 2 ]

1 голос
/ 14 апреля 2020

Каталог сборки 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 может заново сгенерировать любые файлы проекта / системы сборки, которые необходимо обновить.

0 голосов
/ 15 апреля 2020

Добавьте файл .gitignore (в каталоге root) со списком каталогов / файлов, для которых вы не хотите создавать версии, т.е. каталог для вашей сборки ...

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