Ik heb hier enkele klasses die ik in meerdere projecten gebruik, maar die zelf ook enkele dependencies hebben naar andere klasses die in die projecten ook worden gebruikt. Wat is de beste manier om deze op 1 plek te hebben?
Op dit moment heb ik deze klasse gewoon gekopieerd en in de projecten zelf gezet, maar ik word gek van het updaten hiervan. Het voordeel is wel dat iedereen het project op GitHub kan klonen en maar één ding hoeft te doen om dit te kunnen bouwen.
Zelf denk ik dat ik de volgende opties heb, maar kan het misschien handiger? Momenteel ben ik 1 aan het doen.
1. Gooi de bestanden losjes in een map op hetzelfde niveau als de mappen van de projecten. De projecten die deze klasse gebruiken hebben dan referenties hier naar, zodat ze ook de .cpp compileren. In de project file is dan de ../../ClassMap/ als extra include map gezet.
Voordeel:
- 1 set bestanden die voor alle projecten hetzelfde zijn.
- Na 1x instellen van relatieve paden werkt alles soort van vanzelf
Nadeel:
- Bestanden hangen er losjes bij
- Moet een extra repo klonen
2. Gooi ze weer los in diezelfde map, maar dit is dan een git submodule die andere projecten refereren
Voordeel:
- Hoef niks extra te klonen als recursive clone aan staat
- Alle projectbestanden in de huidige map en geen gok op kloppende relative paden
Nadeel:
- Git submodule moet extra maintenance
- Als ik in een project iets aan de shared klasse aan pas, moet de rest ook geüpdatet/gesynct worden
Is (1) een redelijk goed idee? Het zijn gewoon kleine projectjes, dus extra bouwen maakt weinig uit.
Op dit moment heb ik deze klasse gewoon gekopieerd en in de projecten zelf gezet, maar ik word gek van het updaten hiervan. Het voordeel is wel dat iedereen het project op GitHub kan klonen en maar één ding hoeft te doen om dit te kunnen bouwen.
Zelf denk ik dat ik de volgende opties heb, maar kan het misschien handiger? Momenteel ben ik 1 aan het doen.
1. Gooi de bestanden losjes in een map op hetzelfde niveau als de mappen van de projecten. De projecten die deze klasse gebruiken hebben dan referenties hier naar, zodat ze ook de .cpp compileren. In de project file is dan de ../../ClassMap/ als extra include map gezet.
Voordeel:
- 1 set bestanden die voor alle projecten hetzelfde zijn.
- Na 1x instellen van relatieve paden werkt alles soort van vanzelf
Nadeel:
- Bestanden hangen er losjes bij
- Moet een extra repo klonen
2. Gooi ze weer los in diezelfde map, maar dit is dan een git submodule die andere projecten refereren
Voordeel:
- Hoef niks extra te klonen als recursive clone aan staat
- Alle projectbestanden in de huidige map en geen gok op kloppende relative paden
Nadeel:
- Git submodule moet extra maintenance
- Als ik in een project iets aan de shared klasse aan pas, moet de rest ook geüpdatet/gesynct worden
Is (1) een redelijk goed idee? Het zijn gewoon kleine projectjes, dus extra bouwen maakt weinig uit.