kdesrc-build
Build KDE software from source code
TLDR
Initialize kdesrc-build
Compile a KDE component and its dependencies from source
Compile a component without updating its local code and without compiling its dependencies
Refresh the build directories before compiling
Resume compilation from a specific dependency
Run a component with a specified executable name
Build all configured components
Use system libraries in place of a component if it fails to build
SYNOPSIS
kdesrc-build [options] [module ...]
PARAMETERS
--help
Display a brief help message and exit.
--version
Show the program's version number and exit.
--dry-run
Simulate the build process without performing any actual actions (e.g., cloning, compiling).
--no-confirm
Proceed with actions without asking for user confirmation.
--rebuild [
Force a complete rebuild of the specified module or all configured modules, ignoring previous build states.
--install [
Install the specified module or all modules after they have been successfully built.
--resume-from
Continue the build process starting from a specific module, useful after an interruption or failure.
--stop-on-failure
Halt the entire build process immediately if any module fails to compile or configure.
--list-modules
Display a list of all recognized KDE modules that can be built by the command.
--build-type
Specify the CMake build type for all modules (e.g., 'debug', 'release', 'relwithdebinfo').
--prefix
Set the base installation directory for all built KDE software components.
--source-dir
Define the root directory where all KDE source code repositories will be cloned.
--build-dir
Specify the base directory where all build artifacts (compiled files, intermediate objects) will be stored.
--log-dir
Set the directory where detailed build logs for each module will be saved.
--branch
Specify the Git branch to checkout for modules (e.g., 'master', 'kf5').
--git-protocol
Choose the Git protocol to use for cloning repositories (e.g., 'https', 'ssh', 'git').
--no-src-sync
Skip the step of synchronizing (pulling updates for) source repositories, only building existing ones.
--rc-file
Specify an alternative configuration file to use instead of the default ~/.config/kdesrc-buildrc.
--generate-config
Generate a sample kdesrc-buildrc configuration file in the current directory.
DESCRIPTION
kdesrc-build is a powerful command-line utility designed to automate the process of building and installing KDE software from its source code. It simplifies common developer tasks by managing source repository fetching (primarily Git), handling build directory configurations, invoking CMake for project setup, and compiling with tools like Make or Ninja.
The tool effectively manages module dependencies, allows for selective building of individual components or entire groups, and integrates seamlessly with a user-defined configuration file (kdesrc-buildrc) for persistent settings. It's an indispensable utility for KDE developers, contributors, and users who wish to run the latest development versions of KDE applications, frameworks, or the Plasma desktop environment directly from source.
CAVEATS
Building the entire KDE stack from source requires substantial disk space (tens of gigabytes) and can consume significant time and computational resources.
A stable and fast internet connection is crucial for cloning large repositories and fetching dependencies.
Initial configuration via the kdesrc-buildrc file, especially for specific development setups, can be complex for new users.
CONFIGURATION FILE (KDESRC-BUILDRC)
The command heavily relies on a user-specific configuration file, typically located at ~/.config/kdesrc-buildrc.
This file is highly flexible, allowing users to define global settings like source, build, and installation directories, preferred Git protocols, and default build types.
It also supports module-specific overrides, allowing fine-grained control over how individual KDE projects are built, along with environment variable settings and module grouping.
MODULE SYSTEM
kdesrc-build organizes KDE software into 'modules', which generally correspond to individual Git repositories (e.g., 'kio', 'dolphin', 'plasma-workspace').
The tool intelligently recognizes dependencies between these modules and attempts to build them in the correct topological order.
Users can either specify individual modules to build on the command line or define module groups within their kdesrc-buildrc file to build larger sets of KDE components efficiently.
HISTORY
kdesrc-build emerged as an essential tool within the KDE community to streamline the developer workflow, particularly during the transition from KDE 3 to KDE 4 and then to the modular KDE Frameworks 5 (KF5) architecture. It was developed to abstract the complexities of managing numerous Git repositories, CMake configurations, and Make/Ninja commands for individual KDE components.
Over the years, it has continuously evolved to support new build systems, Git features, and KDE's changing module structure, solidifying its role as the primary method for developers to build and test the latest KDE software.