Hoofdstuk 4. 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 Git-modules, moet module-name een module zijn uit de KDE Git repository (bijvoorbeeld, kdeartwork of kde-wallpapers).

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.

Een 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 hiervan een voorbeeld in gebruik te zien, zie Voorbeeld 2.1, “Make configureren om alle beschikbare CPU's te gebruiken, met uitzonderingen”.

U kunt ook uw eigen niet-standaard globale variabelen introduceren om naar te refereren verderop in de configuratie. Om dat te doen, moet uw optienaam vooraf worden gegaan door een underscore-symbool. Voorbeeld:

Voorbeeld 4.1. Uw eigen globale optie introduceren om later in de configuratie naar te refereren

global
  _ver 6  # ← uw eigen variabele (begint met underscore)
  _kde ~/kde${_ver}  # ← eigen variabele kan een andere gedefinieerde variabele bevatten
  source-dir ${_kde}/src  # ← merk op dat geneste variabele (_kde → _ver) ook wordt opgelost
end global

options kdepim
  log-dir /custom/path/logs${_ver} # ← u kunt eigen variabele gebruiken net als een standaard
end options


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.2. 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.

U kunt variabelen in de waarde van instructies voor include gebruiken:

global
  _ver 6
  source-dir ~/kde${_ver}/src
  ...
  persistent-data-file ~/kde${_ver}/persistent-options.json
end global

include ~/kde6/src/kdesrc-build/data/build-include/kf${_ver}-qt${_ver}.ksb

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 master.

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

  • install-dir, 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.

  • qt-install-dir, voor het instellen in welke map Qt™ wordt geïnstalleerd.

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