Articles

I cmake, vad är ett ”projekt”?

ett projekt grupperar logiskt ett antal mål (det vill säga bibliotek, körbara filer och anpassade byggsteg) i en fristående samling som kan byggas på egen hand.

i praktiken betyder det att om du har ett project – kommando i ett CMakeLists.txt, bör du kunna köra CMake från den filen och generatorn ska producera något som är byggbart. I de flesta kodbaser har du bara ett enda projekt per byggnad.

Observera dock att du kan häcka flera projekt. Ett toppnivåprojekt kan innehålla en underkatalog som i sin tur är ett annat fristående projekt. I det här fallet introducerar kommandot project ytterligare scoping för vissa värden. Till exempel kommer variabeln PROJECT_BINARY_DIR alltid att peka på den binära rotkatalogen för det aktuella projektet. Jämför detta med CMAKE_BINARY_DIR, som alltid pekar på den binära katalogen för toppnivåprojektet. Observera också att vissa generatorer kan generera ytterligare filer för projekt. Till exempel skapar Visual Studio-generatorerna en .sln lösningsfil för varje delprojekt.

använd delprojekt om din kodbas är mycket komplex och du behöver användare för att kunna bygga vissa komponenter isolerat. Detta ger dig en mycket kraftfull mekanism för att strukturera byggsystemet. På grund av den ökade kodning och underhåll overhead som krävs för att göra flera delprojekt verkligen fristående, jag skulle råda att bara gå den vägen om du har en verklig användningsfall för det. Att dela kodbasen i olika mål bör alltid vara den föredragna mekanismen för att strukturera byggnaden, medan delprojekt bör reserveras för de sällsynta fall där du verkligen behöver göra en delmängd av mål fristående.

Lämna ett svar

Din e-postadress kommer inte publiceras.