kdesrc-build
is an amazing tool that makes building KDE projects a breeze.
Now, I like having several build profiles for the projects I’m working on. The main build done by kdesrc-build
is done with gcc
, but I keep also a parallel build with clang
, and some builds that incorporate static analysis tools and such.
At first, a long time ago, I was doing all this with shell scripts. But that approach was not really scalable.
Then I wrote a small tool that builds on kdesrc-build
, but allows you to define different build profiles.
This tool has now been updated and moved to KDE’s brand new GitLab instance at https://invent.kde.org/ivan/kdesrc-build-profiles.
It allows you to create a few profiles, and specify which projects you want built with each of them. So, for example, you can keep parallel builds of plasma-workspace
with gcc
and the latest clang
, while having a static analysis tool being run on plasma-framework
and plasma-vault
.
The example configuration file comes with the program. The format is the same as the one used by kdesrc-buildrc
, just with a few custom fields.
Compilation database
In recent times, quite a few C++ IDEs or editors use clang
behind the scenes to give you code completion, quick fixes, etc. It is often needed to create the so called compilation database which contains the compiler flags used to compile your project in order for the clang
integration with your editor/IDE to work properly.
I found it quite tedious to always have to set this database for all the projects that I work on.
Because of this, kdesrc-build-profiles
has got a new feature – it can now symlink the compilation database generated by cmake
to the root of your project’s sources where the editor/IDE will find it easily. You just need to add symlink-compilation-database yes
to the kdesrc-build-profilesrc
file, and run the tool.
Installation
The program is written in Haskell. In order to install it, just install the stack
package manager and do this:
stack update
stack install kdesrc-build-profiles
If you are old-school and use cabal
instead of stack, the installation is similar:
cabal update
cabal install kdesrc-build-profiles
If you want to compile it yourself, the steps are also easy:
git clone https://invent.kde.org/ivan/kdesrc-build-profiles.git
cd kdesrc-build-profiles
stack build
stack install
Usage
To use it, copy the kdesrc-build-profilesrc-example
(remove the -example
suffix while doing so) file into the KF5 sources directory (where you keep kdesrc-buildrc
file), edit it to fit your setup, and run it.
The commands are quite simple. For example, if you want to build all projects you configured under clang
profile, do:
kdesrc-build-profiles clang
If you want to build only plasma-desktop
and plasma-workspace
with clang
, do this:
kdesrc-build-profiles clang plasma-desktop plasma-workspace
For more commands, use the --help
.