O KDE agrupa os seus programas em “módulos” de diversos tamanhos. Isto era apenas um agrupamento lógico de alguns módulos grandes, mas com a introdução dos repositórios de código-fonte baseados no Git, estes grandes módulos foram por sua vez divididos em muitos módulos mais pequenos.
O kdesrc-build também usa este conceito de módulos. Em resumo, um “módulo” é um agrupamento de código que poderá ser transferido, compilado, testado e instalado.
É fácil indicar ao kdesrc-build para compilar um único módulo. Na lista a seguir está um exemplo de como deveria ser uma declaração de um módulo baseado em Subversion no arquivo de configuração.
modulekdefoo
end module
cmake-options -DCMAKE_BUILD_TYPE=Debug
Dica
Este é um módulo baseado no Subversion, uma vez que não usa uma opção repository. Do mesmo modo, a opção cmake-options
aparece apenas como exemplo, não sendo obrigatória.
Agora, a maioria dos módulos de código do KDE são baseados no Git do KDE, estando normalmente reunidos em grupos de módulos.
Deste modo, o kdesrc-build também suporta grupos de módulos, usando os conjuntos de módulos. Por exemplo:
module-setbase-modules
repository
kde-projectsuse-modules
kde-runtime kde-workspace kde-baseapps
end module-set
Dica
Você poderá deixar o nome do conjunto de módulos (módulos-base
neste caso) vazio se o desejar. Esta opção repository
indica ao kdesrc-build de onde transferir o código, mas poderá também usar uma URL git://.
Uma funcionalidade especial do “repository
kde-projects
” é que o kdesrc-build irá incluir automaticamente todos os módulos do Git que estiverem agrupados sob os módulos que apresentar (na base de dados do Projeto KDE).
Levando adiante o conceito de grupo de módulos, os desenvolvedores do KDE descobriram eventualmente que a sincronização dos nomes das ramificações Git por uma grande quantidade de repositórios estava ficando mais difícil, especialmente durante o esforço de desenvolvimento das novo KDE Frameworks para a Qt™ 5.
Assim, o conceito de “grupos de ramificações” foi desenvolvido de modo a permitir aos usuários e desenvolvedores selecionar um de alguns grupos, permitindo ao script selecionar automaticamente a ramificação Git apropriada.
O kdesrc-build tem suporte a essa funcionalidade desde a versão 1.16-pre2, através da opção branch-group.
Exemplo A.1. Exemplo de uso do branch-group
O branch-group pode ser usado no arquivo de configuração da seguinte forma:
global # Selecionar o KDE Frameworks 5 e outros aplicativos baseados na Qt5branch-group
kf5-qt5
# Outras opções globais aqui... end global module-set # O branch-group só funciona para o kde-projectsrepository
kde-projects # O branch-group herda da definição global, mas pode ser definido aqui.use-modules
kdelibs kde-workspace
end module-set # A ramificação kdelibs será a "frameworks" # A ramificação kde-workspace será a "master" (em agosto de 2013)
Nesse caso, o mesmo branch-group
devolve diferentes nomes de ramificações para cada módulo Git.
Esta funcionalidade requer a manutenção de alguns dados por parte dos desenvolvedores do KDE em um repositório Git chamado kde-build-metadata
. Contudo, esse módulo será incluído automaticamente pelo kdesrc-build (ainda que você possa vê-lo aparecer no resultado do script).
Dica
Os módulos do KDE que não têm um nome de ramificação definido para o grupo de ramificações que você escolher terão, por padrão, um nome de ramificação apropriado, como se não tivesse indicado o branch-group
em tudo.