1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
pkg-kde-tools for Debian
------------------------
These snippets (/usr/share/pkg-kde-tools/makefiles/1) should be universally
usable:
- If your package uses CDBS, you should be able to just include the
cdbs/kde.mk file.
- If you use other tools, include the variables.mk file and run cmake with
$(DEB_CMAKE_KDE4_FLAGS) to get the kde4 default variables.
- If you want to use Debhelper dh(1) command sequencer, you will find section
"Using with Debhelper Command Sequencer `dh`" below interesting. Please
note that /usr/share/pkg-kde-tools/makefiles/1/debhelper/kde.mk has been
dropped in pkg-kde-tools 0.7.0.
In order to link with --as-needed (disabled by default), you could set
DEB_KDE_LINK_WITH_AS_NEEDED to 'yes' before the include. However, please note
that enabling DEB_KDE_LINK_WITH_AS_NEEDED implicitly links with --no-undefined
as well unless DEB_KDE_LINK_WITH_NO_UNDEFINED is set to `no`.
Using with Debhelper Command Sequencer `dh`
------------------------------------------
pkg-kde-tools provides a couple of additions to dh(1) and its toolset.
* Debhelper build system 'kde'. It is based on the debhelper build system
'cmake'. The only difference is that in addition it passes KDE 4 specific
flags to cmake by default. In order to use it, pass --buildsystem=kde when
running dh_auto_*. Debhelper 7.3.0 or later is required to use this build
system.
* dh sequence addon 'kde'. It will tweak default dh sequences to be best
suitable for building KDE applications. For example, that includes passing of
--buildsystem=kde to all dh_auto_* commands by default and other
enhancements. Debhelper 7.3.16 or later is required to use this addon.
In order to build a simple KDE package, all you need to do is to pass `--with
kde` option to dh(1). More advanced usage (e.g. to pass additional flags to
cmake) may require overriding of some debhelper commands (e.g.
dh_auto_configure). See examples below for more details.
In order to kde dh sequence addon, you must depend on debhelper (>= 7.3.16) and
pkg-kde-tools (>= 0.5). What's more, pkg-kde-tools (>= 0.6.2) has more
interesting changes like dh_movelibkdeinit and docbook exclusion from
dh_compress.
Examples
--------
* A CDBS using package.
-------> debian/rules <-------
#!/usr/bin/make -f
include /usr/share/pkg-kde-tools/makefiles/1/cdbs/kde.mk
include /usr/share/cdbs/1/rules/debhelper.mk
------------------------------
* A non CDBS using package could start with something like the following
and end up like any other cmake using package.
-------> debian/rules <-------
#!/usr/bin/make -f
include /usr/share/pkg-kde-tools/makefiles/1/variables.mk
builddir/Makefile:
dh_testdir
mkdir -p builddir
cd builddir && cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_C_FLAGS="$(CPPFLAGS) $(CFLAGS)" \
-DCMAKE_LD_FLAGS="$(LDFLAGS) -Wl,-z,defs" \
-DCMAKE_CXX_FLAGS="$(CPPFLAGS) $(CXXFLAGS)" \
-DCMAKE_SKIP_RPATH=ON \
-DCMAKE_VERBOSE_MAKEFILE=ON \
$(DEB_CMAKE_KDE4_FLAGS)
build: build-stamp
build-stamp: builddir/Makefile
dh_testdir
$(MAKE) -C builddir
touch $@
------------------------------
* A very simple KDE package using dh.
-------> debian/rules <-------
#!/usr/bin/make -f
%:
dh $@ --with kde
------------------------------
* A more complicated KDE package using dh. Additional -DSOME_FLAG is passed to
cmake and quilt addon is used for managing patches.
-------> debian/rules <-------
#!/usr/bin/make -f
override_dh_auto_configure:
dh_auto_configure --buildsystem=kde -- -DSOME_FLAG=some_value
%:
dh $@ --with quilt,kde
------------------------------
|