Guidelines and HOWTOs/Build from source/edk
edk is a Python script that can be used to easily build KDE projects. Once edk is properly installed and configured, building any KDE project is as easy as invoking edk
from the git root of the project.
Motivations
You may be interested in edk if:
- You are a new contributor looking for a simple development environment
- You are a new contributor and you want to build just one application
- You want to build KDE projects on top of an existing Plasma environment
- You want to build KDE projects on top of a third party environment (e.g. Gnome or Unity)
- You are tired to manually call
cmake
,make
,make test
, ...
How does it work?
edk is designed to just build, install and (optionally) "run" your project (as edk is primarily designed for applications with a single executable). You don't need to worry about setting up a development environment (besides installing edk itself).
edk is not a replacement of kdesrc-build. It doesn't download source code and it doesn't resolve dependencies (in fact, edk assumes that all build-dependencies are already satisfied). If you want to build the whole KDE stack, kdesrc-build is still the way to go.
Installation
git clone git://anongit.kde.org/scratch/elvisangelaccio/edk.git
# assuming that $HOME/bin is in your $PATH
ln -s $PWD/edk/edk.py $HOME/bin/edk
mkdir ~/.config/edk
cp edk/config.ini.example ~/.config/edk/config.ini
cp edk/env.sh.example ~/config/edk/env.sh
Usage
Build a project
From the git root of the project:
edk
The script will perform the following operations:
- Source whatever environment variables are exported in
$XDG_CONFIG_HOME/edk/env.sh
- Build the CMake-based project found in
$(pwd)
in a build subdirectory - Install the project in
$EDK
. This variable must be defined inenv.sh
so that edk can automatically pass the-DCMAKE_INSTALL_PREFIX
argument to cmake. - Run the project tests (if available)
Run the project
Once the project is built, you can run it with:
edk -r
This assumes that you have configured the project
key in the [global]
section of the config file. The value of this key is used as the name of the executable to run, unless you define an executable
key in the [project]
section.
If you don't have the project key (or if you want to override it), you can use as alternative:
edk -p foo -r
If you want to pass arguments to the project:
edk -r --foo --bar=XXX
Debug the project
Similarly to the -r option, it's also possible to run the project with a debugger (only gdb for now):
edk -d
This will execute gdb <executable>
.
Clean build
edk -c
This will delete the build directory before performing a new build.
Configuration
Build with Ninja
Add -GNinja
in the cmake-options
of your config.ini file (either in the [global]
section on in a project-specific section).