Articles

I cmake, hva er et «prosjekt»?

et prosjekt grupperer logisk en rekke mål (det vil si biblioteker, kjørbare filer og tilpassede byggetrinn) i en selvstendig samling som kan bygges på egen hånd.

i praksis betyr det at hvis du har enproject kommando i en CMakeLists.txt, bør Du kunne kjøre CMake fra den filen og generatoren skal produsere noe som er buildable. I de fleste kodebaser vil du bare ha et enkelt prosjekt per bygg.

Merk imidlertid at du kan neste flere prosjekter. Et toppnivå prosjekt kan inneholde en underkatalog som igjen er et annet selvstendig prosjekt. I dette tilfellet introduserer kommandoen project ekstra omfang for bestemte verdier. For eksempel vil variabelen PROJECT_BINARY_DIR alltid peke til rot binærkatalogen for det gjeldende prosjektet. Sammenlign dette med CMAKE_BINARY_DIR, som alltid peker på binærkatalogen på toppnivåprosjektet. Vær også oppmerksom på at enkelte generatorer kan generere flere filer for prosjekter. Visual Studio-generatorer vil for eksempel opprette en.sln løsningsfil for hvert delprosjekt.

Bruk delprosjekter hvis kodebasen er svært kompleks, og du trenger at brukerne skal kunne bygge visse komponenter isolert. Dette gir deg en meget kraftig mekanisme for strukturering av byggesystemet. På grunn av økt koding og vedlikehold overhead som kreves for å gjøre flere delprosjekter virkelig selvstendig, vil jeg råde til å bare gå ned den veien hvis du har en reell brukstilfelle for det. Deling av kodebasen i forskjellige mål bør alltid være den foretrukne mekanismen for strukturering av bygningen, mens delprosjekter bør reserveres for de sjeldne tilfellene der du virkelig trenger å lage en delmengde av mål selvstendig.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.