6.3. KDE projects and source code organization#
6.3.1. The Project#
KDE groups its software into "modules" of various size. This was initially a loose grouping of a few large projects, but with the introduction of the git-based source code repositories, these large projects were further split into many smaller projects.
kde-builder uses this project concept as well. In essence, a "project" is a grouping of code that can be downloaded, built, tested, and installed.
6.3.1.1. Individual projects#
It is easy to set kde-builder to build a single project. The following listing is an example of what a declaration for a project would look like in the configuration file.
project kdefoo:
cmake-options: -DCMAKE_BUILD_TYPE=Debug
Tip
This is a git-based project since it doesn't use a
repository option. Also, the cmake-options
option
is listed as an example only, it is not required.
6.3.1.3. Project "branch groups"#
Taking the concept of a group of projects further, the KDE developers eventually found that synchronizing the names of the git branches across a large number of repositories was getting difficult, especially during the development push for the new KDE Frameworks for Qt 5.
So the concept of "branch groups" was developed, to allow users and developers to select one of only a few groups, and allow the kde-builder to automatically select the appropriate git branch.
branch-group can be used in the configuration file as follows:
global:
# Select KDE Frameworks 5 and other Qt5-based apps
branch-group: kf5-qt5
# Other global options here ...
group name:
# branch-group only works for kde-projects
repository: kde-projects
# branch-group is inherited from the one set globally, but could
# specified here.
use-projects:
- kdelibs
- kde-workspace
# kdelibs's branch will be "frameworks"
# kde-workspace's branch will be "master" (as of August 2013)
In this case the same branch-group
gives different branch names for
each module.
This feature requires some data maintained by the KDE developers in a
git repository named kde-build-metadata
, however this project will be
included automatically by kde-builder (though you may see it appear in
the script output).
Tip
KDE projects that do not have a set branch name for the branch group you
choose will default to an appropriate branch name, as if you had not
specified branch-group
at all.