kdesrc-build features include:
You can “pretend” to do the operations. If you pass
-pon the command line, the script will give a verbose description of the commands it is about to execute, without actually executing it. However if you've never run kdesrc-build, you would want to run the kdesrc-build
--metadata-onlycommand first in order for
For an even more verbose description of what kdesrc-build is doing, try using the
kdesrc-build can (with the assistance of the KDE FTP server) allow for speedy checkouts of some Subversion modules. If the module you are checking out has already been packaged at the website, then kdesrc-build will download the snapshot and prepare it for use on your computer.
There is generally no need for any special preparation to perform the initial checkout of a Git module, as the entire Git repository must be downloaded anyways, so it is easy for the server to determine what to send.
This is faster for you, and helps to ease the load on the kde.org anonymous Subversion servers.
Another speedup is provided by starting the build process for a module as soon as the source code for that module has been downloaded. (Available since version 1.6)
Excellent support for building the Qt™ library (in case the KDE software you are trying to build depends on a recent Qt™ not available in your distribution).
kdesrc-build does not require a GUI present to operate. So, you can build KDE software without needing a graphical environment.
Supports setting default options for all modules (such as the compilation settings or the configuration options). Such options can normally be changed for specific modules as well.
Also, kdesrc-build will add standard flags as appropriate to save you the trouble and possible errors from typing them yourself. Nota Bene: this does not apply when a (custom) toolchain is configured through e.g.: cmake-toolchain
kdesrc-build can automatically switch a source directory to checkout from a different repository, branch, or tag. This happens automatically when you change an option that changes what the repository URL should be, but you must use the --src-only option to let kdesrc-build know that it is acceptable to perform the switch.
kdesrc-build can checkout only portions of a module, for those situations where you only need one program from a large module.
For developers: kdesrc-build will remind you if you use svn+ssh:// but ssh-agent is not running, as this will lead to repeated password requests from SSH.
Can delete the build directory of a module after its installation to save space at the expense of future compilation time.
The locations for the directories used by kdesrc-build are configurable (even per module).
Can use Sudo, or a different user-specified command to install modules so that kdesrc-build does not need to be run as the super user.
kdesrc-build runs with reduced priority by default to allow you to still use your computer while kdesrc-build is working.
Has support for using KDE's tags and branches.
kdesrc-build will show the progress of your build when using CMake, and will always time the build process so you know after the fact how long it took.
Comes built-in with a sane set of default options appropriate for building a base KDE single-user installation from the anonymous source repositories.
Tilde-expansion for your configuration options. For example, you can specify:
Automatically sets up a build system, with the source directory not the same as the build directory, in order to keep the source directory pristine.
You can specify global options to apply to every module to check out, and you can specify options to apply to individual modules as well.
Forced full rebuilds, by running kdesrc-build with the
You can specify various environment values to be used during the build, including
Command logging. Logs are dated and numbered so that you always have a log of a script run. Also, a special symlink called latest is created to always point to the most recent log entry in the log directory.
You can check out only a portion of a KDE Subversion module. For example, you could check out only the taglib from kdesupport.