Innehållsförteckning
KDE grupperar programvaran i ”moduler” av olika storlek. Det var från början en lös gruppering av några få stora moduler, men vid introduktionen av Git-baserade källkodsarkiv, delades dessa stora moduler ytterligare i många mindre moduler.
kdesrc-build använder också modulkonceptet. I stort sett är en ”modul” en gruppering av kod som kan laddas ner, byggas, testas och installeras.
Det är enkelt att ställa in kdesrc-build att bygga en enstaka modul. Följande listning är ett exempel på hur en deklaration för en modul baserad på Git skulle se ut i inställningsfilen.
modulekdexxx
end module
cmake-options -DCMAKE_BUILD_TYPE=Debug
Tips
Det är en modul baserad på Git eftersom den inte använder alternativet repository. Dessutom listas alternativet cmake-options
bara som ett exempel, det krävs inte.
Nu är de flesta KDE-moduler baserade på Git, och kombineras normalt i modulgrupper.
Därför stöder kdesrc-build också modulgrupper, med module sets. Ett exempel:
module-setbase-modules
repository
kde-projectsuse-modules
kde-runtime kde-workspace kde-baseapps
end module-set
Tips
Du kan lämna moduluppsättningens namn tomt om du vill (base-modules
i detta fall). Inställningen repository
talar om för kdesrc-build varifrån källkoden ska laddas ner, men du kan också använda en webbadress som börjar med git://.
En särskild funktion med ”repository
kde-projects
” är att kdesrc-build automatiskt inkluderar alla Git-moduler som är grupperade under modulerna du listar (i KDE:s projekdatabas).
När konceptet med en grupp av moduler fördes vidare, fann KDE-utvecklarna till slut att synkronisering av namnen på Git-grenarna över ett stort antal arkiv började bli svårt, särskilt under utvecklingsoffensiven av det nya KDE-ramverket för Qt™ 5.
Alltså utvecklades konceptet ”branch groups” (grengrupper) för att låta användare bara välja en eller några få grupper och låta skriptet automatiskt välja lämplig Git-gren.
kdesrc-build stöder funktionen från version 1.16-pre2, via alternativet branch-group.
Exempel A.1. Exempel på användning av branch-group
branch-group kan användas på följande sätt i inställningsfilen:
global # Välj KDE Frameworks 5 och andra Qt5-baserade programbranch-group
kf5-qt5
# Andra globala alternativ här ... end global module-set # branch-group fungerar bara för kde-projectsrepository
kde-projects # branch-group ärvs från den som ställs in globalt, men skulle kunna # specificeras här.use-modules
kdelibs kde-workspace
end module-set # Gren för kdelibs kommer att vara "frameworks" # Gren för kde-workspace kommer att vara "master" (från augusti 2013)
I detta fall ger samma branch-group
som ger olika namn på grenar för varje Git-modul.
Funktionen kräver att en del data underhålls av KDE-utvecklarna i Git-arkivet vid namn kde-build-metadata
. Dock inkluderas modulen automatiskt av kdesrc-build (även om du kan se den visas i skriptets utdata).
Tips
För KDE-moduler som inte har ett inställt namn på grenen för grengruppen du väljer, får normalt ett lämpligt grennamn, som om du inte hade angivit branch-group
alls.