Appendice A. Moduli di KDE e organizzazione del codice sorgente

Il «modulo»

KDE raggruppa i suoi programmi in «moduli» di varie dimensioni. Questi erano inizialmente un vago raggruppamento di alcuni grandi moduli, ma con l'introduzione dei depositi di codice sorgente basati su Git questi grandi moduli sono stati divisi in molti moduli più piccoli.

Anche kdesrc-build usa questo concetto di modulo. Essenzialmente, un «modulo» è un raggruppamento di codice che può essere scaricato, generato, testato e installato.

Moduli singoli

È facile far generare un singolo modulo a kdesrc-build. L'elenco seguente è un esempio di come può essere scritta una dichiarazione per un modulo basato su Git nel file di configurazione.

module kdepippo
    cmake-options -DCMAKE_BUILD_TYPE=Debug
end module

Suggerimento

Questo è un modulo basato su Git perché non usa un'opzione repository. Inoltre, l'opzione cmake-options è elencata solo come esempio e non è necessaria.

Gruppi di moduli collegati

La maggior parte dei moduli di KDE sono oggi basati su Git, e sono normalmente combinati in gruppi di moduli.

kdesrc-build supporta pertanto anche i gruppi di moduli, con gli insiemi di moduli. Per esempio:

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

Suggerimento

Se preferisci, puoi lasciare il nome dell'insieme di moduli (moduli-base). L'impostazione di repository dice a kdesrc-build da dove scaricare il codice sorgente, ma puoi anche usare un URL git://.

Una funzionalità speciale di «repository kde-projects» è che kdesrc-build includerà automaticamente tutti i moduli Git raggruppati sotto i moduli da te elencati (nella banca dati dei progetti di KDE).

«Gruppi di rami» dei moduli

Estendendo il concetto di gruppo di moduli, gli sviluppatori di KDE hanno notato che sincronizzare il nome dei rami di Git in molti depositi stava diventando difficile, soprattutto durante il lavoro per le nuove infrastrutture di KDE per Qt™ 5.

È stato quindi sviluppato il concetto di «gruppi di rami», per permettere a utenti e sviluppatori di selezionare uno tra pochi gruppi, e permettere allo script di selezionare automaticamente il ramo di Git appropriato.

kdesrc-build supporta questa funzionalità dalla versione 1.16-pre2, attraverso l'opzione branch-group.

Esempio A.1. Esempio dell'uso dei gruppi di rami

I gruppi di rami si possono usare nel file di configurazione come segue:

global
    # Seleziona KDE Frameworks 5 e altre applicazioni basate su Qt5
    branch-group kf5-qt5

    # Altre opzioni globali vanno qui...
end global

module-set
    # branch-group funziona solo per kde-projects
    repository kde-projects

    # branch-group viene ereditato da quello impostato globalmente,
    # ma potrebbe essere specificato qui.

    use-modules kdelibs kde-workspace
end module-set

# Il ramo di kdelibs sarà «frameworks»
# Il ramo di kde-workspace sarà «master» (nell'agosto 2013)

In questo caso lo stesso branch-group produce diversi nomi di rami per ogni modulo di Git.


Questa funzionalità richiede alcuni dati gestiti dagli sviluppatori di KDE in un deposito Git chiamato kde-build-metadata, però questo modulo verrà incluso automaticamente da kdesrc-build (anche se lo potresti veder apparire nell'output dello script).

Suggerimento

I moduli di KDE che non hanno il nome di un ramo impostato per il gruppo di rami che scegli saranno predefiniti al nome di un ramo appropriato, come se non avessi specificato branch-group.