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
.