KDE groepeert de software in “modules” van verschillende grootte. Oorspronkelijk was dit losjes gegroepeerd in een paar grote modules, maar met de introductie van de op Git-gebaseerde broncoderepositories, zijn deze grote modules verder opgesplitst in vele kleinere modules.
Ook kdesrc-build gebruikt dit concept van modules. In essentie, is een “module” een groepering van code die kan worden gedownload, gebouwd, getest, en geïnstalleerd.
Het is makkelijk om het zo in te stellen dat kdesrc-build een enkele module bouwt. De volgende lijst is een voorbeeld van hoe een declaratie voor een op Git-gebaseerde module er uit zou zien in het configuratiebestand.
modulekdefoo
end module
cmake-options -DCMAKE_BUILD_TYPE=Debug
Tip
Dit is een op Git-gebaseerde module omdat het geen repository-optie gebruikt. Ook is de cmake-options
-optie alleen als voorbeeld gegeven, het is niet vereist.
Op dit moment zijn de meeste KDE broncodemodules gebaseerd op Git en worden gewoonlijk gecombineerd in groepen van modules.
kdesrc-build ondersteunt daarom ook groepen modules, met module sets. Een voorbeeld:
module-setbasis-modules
repository
kde-projectsuse-modules
kde-runtime kde-workspace kde-baseapps
end module-set
Tip
U kunt de module set naam (base-modules
in dit geval) leeg laten als u dat wilt. Deze instelling repository
geeft aan waar kdesrc-build de broncode kan downloaden, maar u kunt ook een git:// URL gebruiken.
Een speciale functionaliteit van de “repository
kde-projects
” is dat kdesrc-build automatisch alle Git modules die in de door u opgegeven modules (in the KDE Project database) zijn gegroepeerd, zal downloaden.
Het concept van een groep van modules verder uitbouwent, merkten de KDE-ontwikkelaars uiteindelijk dat het synchroniseren van namen van de Git branches over een groot aantal repositories steeds moeilijker werd, met name tijdens de ontwikkeling van de nieuwe KDE Frameworks voor Qt™ 5.
Daarom is het concept “branch groups” ontwikkeld, om gebruikers en ontwikkelaars in staat te stellen een of alleen een paar groepen te selecteren en het script toestaan om automatisch de juiste Git-branch te selecteren.
kdesrc-build ondersteunt deze functie vanaf versie 1.16-pre2, via de optie branch-group.
Voorbeeld A.1. Voorbeeld van gebruikt van een branch-group
branch-group kunt u in het configuratiebestand als volgt gebruiken:
global # Selecteert KDE Frameworks 5 aen andere Qt5-gebaseerde appsbranch-group
kf5-qt5
# Andere global opties hier ... end global module-set # branch-groep werkt alleen voor kde-projectsrepository
kde-projects # branch-groep is doorgegeven van de set globally, maar kan ook # hier gespecificeerd.use-modules
kdelibs kde-workspace
end module-set # kdelibs's branch zal zijn "frameworks" # kde-workspace's branch zal zijn "master" (vanaf Augustus 2013)
In dit geval geeft dezelfde branch-group
voor elke Git-module verschillende branch-namen.
Voor deze functionaliteit moeten de KDE-ontwikkelaars in een Git repository genaamd kde-build-metadata
wat data bijhouden, maar deze module zal automatisch door kdesrc-build (u kunt het zien verschijnen in de uitvoer van het script) worden meegeleverd.
Tip
KDE modules die nog geen naam hebben voor de branch group die u heeft gekozen, zullen standaard een toepasselijke naam voor de branch krijgen, als u nog geen branch-group
heeft opgegeven.