Appendix A. KDE-moduler och organisation av källkoden

Modulen

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.

Enskilda moduler

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.

module kdexxx
    cmake-options -DCMAKE_BUILD_TYPE=Debug
end module

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.

Grupper av relaterade moduler

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-set base-modules
    repository kde-projects
    use-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).

Modulen branch groups

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 program
    branch-group kf5-qt5

    # Andra globala alternativ här ...
end global

module-set
    # branch-group fungerar bara för kde-projects
    repository 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.