[QGHG-it-dev-list] CMake
Marko Vojinovic
vmarko at ipb.ac.rs
Mon Nov 28 16:40:01 CET 2022
Pozdrav Dusane,
Slazem se, moze svaki test da ima svoj .cpp fajl, mozemo tako da ih pravimo.
Takodje se slazem za reorganizaciju koda po folderima (vec neko vreme razmisljam da to treba da se uradi). Samo obrati paznju na sledece detalje:
(1) Organizuj putanje inteligentno --- svi implementation fajlovi include-uju "triangulator.hpp", koji zatim rekurzivno include-uje sve ostale .hpp fajlove. Namesti to sve tako da kompajler moze bez problema da nadje sve fajlove koji mu trebaju. Imaj u vidu da ce kasnije i QtCreator i VS da traze te iste fajlove za kompajliranje gui-ja.
(2) Mozes unutar "library" da dodas i cetvrti direktorijum "obj", u koji ce kompajler da stavlja binary fajlove --- object-fajlove (.o), staticku biblioteku (.a), i sve izvrsne fajlove. To je uvek pametno odvojiti od source-a (headers, implementatation, tests). Git naravno treba da ignorise taj direktorijum.
(3) Nemoj da pravis nikakvu hijerarhiju unutar gui direktorijuma --- i QtCreator i VS vole neke svoje hijerarhije, i meni je najlakse da tu unutra prosto copy-paste-ujem ono sto mi posalje Jaroslav. A njemu je izgleda najlakse da mu svi source fajlovi za gui stoje u jednom direktorijumu. Namesticemo neku hijerarhiju ako Jaroslav bude trazio, zasad neka stoje svi gui-fajlovi ovako.
(4) Direktorijum 3rd_party isto neka ostane --- hocu da imam u repository-ju staticku kopiju kompletnog koda koji je potreban za projekt, i kompajler treba da gleda samo u taj kod, nigde napolje. Ako kasnije odlucimo da 3rd-party softver update-ujemo novijim verzijama ili slicno, to mozemo da uradimo rucno (nikakva automatska azuriranja i download tudjeg koda). Filozofija je da kompletan kod za projekt (i nas i tudj kod) bude uvek na *jednom* mestu --- u nasem repository-ju, i pod nasom kontrolom, ne zelim da postupak kompajliranja na bilo koji nacin zavisi od tudjih repository-ja ili sl.
To su otprilike neke sugestije. Ostalo sve namesti kako mislis da je pametno, pa ako bude potrebe kasnije mozemo da stelujemo i doterujemo celu strukturu dodatno.
:-)
Marko
Dr. Marko Vojinovic
Group for Gravitation, Particles and Fields
Institute of Physics
University of Belgrade
======================
home page: www.markovojinovic.com
e-mail: vmarko at ipb.ac.rs
On Mon, 28 Nov 2022, Dušan Cvijetić wrote:
>
> Pozdrav,
>
> Otvaram novu temu za diskusiju o cmake funkcionalnostima. Danas ću započeti sa time, pa će mi trebati verovatno par dana.
>
> Što se tiče
>
> > Imalo bi smisla da implementiramo raznorazne f-je unutar test.cpp, koje bi testirale raznorazne funkcionalnosti
>
> mislim da je bolji način za organizaciju testova takav da svaki test ima svoj ime_testa.cpp fajl, pa da ih onda pozivamo pomoću ctest funkcionalnosti. Tako je preglednije, imamo veću
> fleksibilnost sa proverama, i ne moramo da brinemo o štampanju rezultata u konzolu u samom testu (ne moramo da pišemo "Prošao test" ili slično u .cpp fajlovima).
>
> Što se tiče samog cmake-a, želeo sam da uz CMakeLists napravim reorganizaciju koda po folderima, koja bi izgledala ovako:
>
> triangulator
> | library
> | | headers
> | | implementation
> | | tests
> | gui
> | | headers
> | | implementation
> | | tests
> | 3rd_party (proveriću da li je neophodno da zadržimo ovo, možda cmake može sam da klonuje to)
>
> Kako vam se to čini?
>
> Pozdravi,
> Dušan
>
>
>
More information about the QGHG-it-dev-list
mailing list