Anhang A. KDE-Module und Organisation des Quelltexts

Die Module

KDE-Software ist in Module unterschiedlicher Größe zusammengefasst. Ursprünglich war das nur eine lockere Gruppe weniger großer Module, aber mit der Einführung Git-basierter Quelltextarchive wurden diese großen Module in viele kleinere Module aufgeteilt.

kdesrc-build benutzt gleichfalls dies Modulkonzept. Im Wesentlichen ist ein module eine Zusammenfassung von Quelltexten, die heruntergeladen, erstellt, getestet und installiert werden kann.

Einzelne Module

Es ist einfach möglich, mit kdesrc-build nur ein einzelnes Modul zu erstellen. Die folgenden Befehle sind ein Beispiel dafür, wie ein einzelnes Modul aus einem Subversion-Versionsverwaltungssystemen in der Einrichtungsdatei einzutragen ist.

module kdefoo
    cmake-options -DCMAKE_BUILD_TYPE=Debug
end module

Tipp

Da die Option repository nicht verwendet wird, handelt es sich um ein Modul aus einem Subversion-Versionsverwaltungssystem. Die Option cmake-options ist nur als Beispiel aufgeführt, aber nicht erforderlich.

Gruppen zusammengehöriger Module

Zurzeit sind die meisten KDE-Quelltextmodule in Git-Versionsverwaltungssystemen. Sie sind normalerweise in Super-Modulen zusammengefasst.

Daher unterstützt kdesrc-build ebenfalls Super-Module mit Modulgruppen. Ein Beispiel:

module-set base-modules
    repository kde-projects
    use-modules kde-runtime kde-workspace kde-baseapps
end module-set

Tipp

Der Name der Modulgruppe (hier base-modules) darf auch leer sein. Die Einstellung repository gibt an, von wo der Quelltext heruntergeladen werden soll, aber es kann auch eine git://-URL benutzt werden.

Die besondere Eigenschaft der Option repository kde-projects liegt darin, dass kdesrc-build automatisch alle Git-Module einschließt, die in diesem Modul in der KDE-Projektdatenbank enthalten sind.

Zweiggruppen-Module

Bei der Weiterentwicklung des Konzepts der Modul-Gruppen stellte sich heraus, dass es für KDE-Entwickler immer schwieriger wird, die Namen von Git-Zweigen in einer Vielzahl von Quelltextarchiven abzugleichen, besonders beim Entwicklungssprung für das neue KDE Frameworks für Qt™ 5.

Dazu wurde das Konzept von Zweiggruppen entwickelt. Es ermöglicht Benutzern und Entwicklern, nur eine von wenigen Gruppen zu wählen. Das Skript kann dann automatisch den passenden Git-Zweig ermitteln.

kdesrc-build unterstützt diese Funktion seit Version 1.16-pre2 mit der Option branch-group.

Beispiel A.1. Beispiel für die Anwendung von „branch-group“

„branch-group“ kann in der Einrichtungsdatei wie folgt benutzt werden:

global
    # Wählt KDE Frameworks 5 und andere Qt5-basierte Programme
    branch-group kf5-qt5

    # Weitere globale Optionen hier ...
end global

module-set
    # branch-group funktioniert nur für KDE-Projekte
    repository kde-projects

    # branch-group wird von der global definierten Einstellung benutzt, 
    # aber kann hier angegeben werden.

    use-modules kdelibs kde-workspace
end module-set

# Der Zweig für kdelibs ist "frameworks"
# Der Zweig für kde-workspace ist "master" (Stand August 2013)

In diesem Fall ergibt dieselbe Option branch-group unterschiedliche Zweignamen für jedes Git-Modul.


Diese Funktion erfordert einige Daten, die von KDE-Entwicklern in einem Git-Archiv mit dem Namen kde-build-metadata verwaltet werden. Dieses Modul wird automatisch durch kdesrc-build mit heruntergeladen, wie Sie in der Ausgabe des Skripts lesen können.

Tipp

Bei KDE-Modulen, für die kein Zweignamen für die von Ihnen ausgewählte Zweiggruppe festgelegt ist, haben als Voreinstellung einen passenden Zweignamen, so als wenn Sie die Option branch-group nicht angegeben hätten.