Hoofdstuk 4. De kdesrc-build configureren

Overzicht van de kdesrc-build configuratie

Om het script te gebruiken, moet u een bestand in uw thuismap hebben genaamd .kdesrc-buildrc, welke beschrijft welke modules u wilt downloaden en bouwen, en welke opties of configuratiegegevens u voor deze modules wilt gebruiken.

Indeling van het configuratiebestand

Globale configuratie

Het configuratiebestand start met de globale optie, die als volgt is gespecificeerd:

global
option-name option-value
[...]
end global

Module configuratie

Het wordt dan gevolgd door een of meer module secties, gespecificeerd in een van de volgende twee vormen:

  • module module-name
    option-name option-value
    [...]
    end module
    
  • module-set module-set-name
      repository kde-projects or git://host.org/path/to/repo.git
      use-modules module-names
    
    # Andere opties zijn ook instelbaar als
    option-name option-value
    [...]
    end module-set
    

Belangrijk

Merk op dat de tweede vorm, module sets, alleen werkt bij Git-gebaseerde modules.

Bij Subversion modules, moet module-name een module zijn uit de KDE Subversion repository (bijvoorbeeld, kdeartwork of kde-wallpapers), ofschoon het mogelijk is om dit te omzeilen als u handmatig de Subversion URL specificeert.

Bij Git modules, kunt u de module naam naar wens kiezen, zolang het geen duplicaat is van een andere module naam in de configuratie. Vergeet niet dat de layout van de broncode-map en de bouwmap gebaseerd zijn op de modulenaam als u de optie dest-dir niet gebruikt.

Echter, bij Git module sets moeten de module-names overeenkomen met de daadwerkelijke git modules in de gekozen repository. Zie git-repository-base of use-modules voor meer informatie.

Verwerken van optiewaarden

In het algemeen wordt de gehele inhoud van de regel na de optienaam gebruikt als de optiewaarde.

Eén wijziging die kdesrc-build uitvoert is dat een reeks ${naam-van-optie} vervangen wordt door de waarde van die optie uit de globale configuratie. Dit biedt u om naar de waarde van bestaande opties te refereren, inclusief opties die al ingesteld zijn door kdesrc-build.

Om een voorbeeld van dit gebruik te zien, zie Voorbeeld 2.1, “Make configureren om alle beschikbare CPU's te gebruiken, met uitzonderingen”.

options modules

Er is tenslotte een laatste type entry in een configuratiebestand, options groups, welke u kunt gebruiken waar een module of module-set kan worden gebruikt.

options module-name
option-name option-value
[...]
end options

In een options group kunt u opties ingesteld hebben net zoals bij een module declaratie, en hoort bij een bestaande module. De hierin ingestelde opties overschrijven de in de bijbehorende module ingestelde opties.

Belangrijk

De bijbehorende module naam moet overeenkomen met de opgegeven naam in de options declaratie. Let op het mistypen van de naam.

Dit is handig bij het declareren van een complete module-set van modules, die allemaal dezelfde opties gebruiken, om daarna options groups te gebruiken voor individuele wijzigingen.

options groups kunt u ook toepassen op benoemde module sets. Hierdoor kunnen expert gebruikers een algemene configuratiebestand (waarin module-set declaraties voorkomen) als startpunt gebruiken, en vervolgens wijzigingen op de opties toepassen die door die module-sets in configuratiebestanden worden gebruikt die het commando include gebruiken om naar het basisconfiguratie te refereren.

Voorbeeld 4.1. Voorbeeld van het gebruik van options

In dit voorbeeld kiezen we ervoor om alle modules uit de KDE multimedia software groepen te bouwen. Maar we willen verschillende versies van het programma KMix (misschien voor het testen van een bug fix) gebruiken. Dat gaat dan als volgt:

module-set kde-multimedia-set
  repository kde-projects
  use-modules kde/kdemultimedia
  branch master
end module-set

# kmix is een onderdeel van kde/kdemultimedia groep, ook als we 
# kmix nooit eerder in dit bestand hebben genoemd, zal kdesrc-build de wijziging ontdekken.
options kmix
  branch KDE/4.12
end options

Wanneer u nu kdesrc-build wilt uitvoeren, dan zullen alle KDE multimedia programma's worden gebouwd vanuit de master branch van de broncoderepository, maar KMix zal worden gebouwd van de oudere KDE/4.12 branch. Door options te gebruiken, hoeft u niet individueel alle andere KDE multimedia programma's op te noemen om ze de juiste branch optie te geven.


Opmerking

Merk op dat deze mogelijkheid pas beschikbaar is in kdesrc-build vanaf versie 1.16, of als u de development versie van kdesrc-build gebruikt van na 2014-01-12.

Naar andere configuratiebestanden verwijzen

In een configuratiebestand, mag u verwijzen naar andere bestanden door het keyword include met een bestand te gebruiken, zodat het zal reageren alsof het bestand waarnaar is verwezen, vanaf dat punt in het configuratiebestand is geplakt.

Bijvoorbeeld, u kunt zoiets als het volgende hebben gedaan:

global
    include ~/common-kdesrc-build-options

    # Voeg specifieke opties hier toe.

end global

Opmerking

Als u niet het volledige pad opgeeft naar het bestand waarvan u een verwijzing wilt opnemen, dan zal naar het bestand worden gezocht vanuit de map waarin het bestand met de broncode staat. Dit werkt ook recursief.

De belangrijkste configuratieopties

Hier volgt een lijst met de belangrijkste opties. klik op de optie om meer erover te lezen. Voor de volledige lijst met opties, zie de paragraaf met de naam “Tabel met beschikbare configuratieopties”.

  • cmake-options voor het definiëren welke flags te gebruiken bij het configureren van een module bij het gebruik van CMake.

  • branch, voor het uitchecken van een branch in plaats van /trunk (bij Subversion) of master (bij Git).

  • configure-flags voor het definiëren welke flags te gebruiken bij het configureren van Qt™.

  • kdedir, voor het instellen naar welke map KDE wordt geïnstalleerd.

  • make-options, voor het instellen welke opties naar het Make programma (zoals hoeveel te gebruiken CPU's) worden doorgegeven.

  • qtdir, voor het instellen van het pad naar Qt™.

  • source-dir, voor het wijzigen van waar de broncode naar toe moet worden gedownload.