1 |
scarabeus |
1.30 |
# Copyright 2007-2009 Gentoo Foundation |
2 |
ingmar |
1.1 |
# Distributed under the terms of the GNU General Public License v2 |
3 |
scarabeus |
1.30 |
# $Header: $ |
4 |
ingmar |
1.1 |
|
5 |
|
|
# @ECLASS: kde4-base.eclass |
6 |
|
|
# @MAINTAINER: |
7 |
|
|
# kde@gentoo.org |
8 |
jmbsvicetto |
1.13 |
# @BLURB: This eclass provides functions for kde 4.X ebuilds |
9 |
ingmar |
1.1 |
# @DESCRIPTION: |
10 |
scarabeus |
1.22 |
# The kde4-base.eclass provides support for building KDE4 based ebuilds |
11 |
ingmar |
1.1 |
# and KDE4 applications. |
12 |
|
|
# |
13 |
scarabeus |
1.22 |
# NOTE: KDE 4 ebuilds by default define EAPI="2", this can be redefined but |
14 |
|
|
# eclass will fail with version older than 2. |
15 |
|
|
|
16 |
scarabeus |
1.31 |
inherit base cmake-utils eutils kde4-functions |
17 |
scarabeus |
1.22 |
|
18 |
|
|
get_build_type |
19 |
scarabeus |
1.30 |
if [[ ${BUILD_TYPE} = live ]]; then |
20 |
scarabeus |
1.22 |
inherit subversion |
21 |
|
|
fi |
22 |
|
|
|
23 |
|
|
EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_test src_install pkg_postinst pkg_postrm |
24 |
ingmar |
1.1 |
|
25 |
scarabeus |
1.22 |
# @FUNCTION: kde4-base_set_qt_dependencies |
26 |
|
|
# @DESCRIPTION: |
27 |
|
|
# Set qt dependencies. And use opengl based on OPENGL_REQUIRED variable. |
28 |
philantrop |
1.7 |
kde4-base_set_qt_dependencies() { |
29 |
scarabeus |
1.22 |
local qtdepend qtopengldepend |
30 |
zlin |
1.4 |
|
31 |
philantrop |
1.7 |
qtdepend=" |
32 |
scarabeus |
1.22 |
x11-libs/qt-core:4[qt3support,ssl] |
33 |
|
|
x11-libs/qt-gui:4[accessibility,dbus] |
34 |
|
|
x11-libs/qt-qt3support:4[accessibility] |
35 |
ingmar |
1.11 |
x11-libs/qt-script:4 |
36 |
scarabeus |
1.22 |
x11-libs/qt-sql:4[qt3support] |
37 |
ingmar |
1.11 |
x11-libs/qt-svg:4 |
38 |
scarabeus |
1.22 |
x11-libs/qt-test:4 |
39 |
scarabeus |
1.31 |
" |
40 |
|
|
qtwebkitdepend=" |
41 |
|
|
x11-libs/qt-webkit:4 |
42 |
|
|
" |
43 |
|
|
qtopengldepend=" |
44 |
|
|
x11-libs/qt-opengl:4 |
45 |
|
|
" |
46 |
philantrop |
1.7 |
|
47 |
scarabeus |
1.31 |
case ${WEBKIT_REQUIRED} in |
48 |
|
|
always) |
49 |
|
|
qtdepend="${qtdepend} |
50 |
|
|
${qtwebkitdepend}" |
51 |
|
|
;; |
52 |
|
|
optional) |
53 |
|
|
IUSE="${IUSE} webkit" |
54 |
|
|
qtdepend="${qtdepend} |
55 |
|
|
webkit? ( ${qtwebkitdepend} ) |
56 |
|
|
" |
57 |
|
|
;; |
58 |
|
|
*) WEBKIT_REQUIRED="never" ;; |
59 |
|
|
esac |
60 |
philantrop |
1.7 |
# opengl dependencies |
61 |
scarabeus |
1.22 |
case ${OPENGL_REQUIRED} in |
62 |
philantrop |
1.7 |
always) |
63 |
scarabeus |
1.22 |
qtdepend="${qtdepend} |
64 |
scarabeus |
1.31 |
${qtopengldepend} |
65 |
|
|
" |
66 |
scarabeus |
1.22 |
;; |
67 |
philantrop |
1.7 |
optional) |
68 |
scarabeus |
1.22 |
IUSE="${IUSE} opengl" |
69 |
|
|
qtdepend="${qtdepend} |
70 |
scarabeus |
1.31 |
opengl? ( ${qtopengldepend} ) |
71 |
|
|
" |
72 |
scarabeus |
1.22 |
;; |
73 |
scarabeus |
1.31 |
*) OPENGL_REQUIRED="never" ;; |
74 |
philantrop |
1.7 |
esac |
75 |
zlin |
1.4 |
|
76 |
yngwin |
1.26 |
COMMONDEPEND="${COMMONDEPEND} ${qtdepend}" |
77 |
philantrop |
1.7 |
} |
78 |
zlin |
1.4 |
|
79 |
scarabeus |
1.31 |
if [[ ${NEED_KDE} != "none" ]] ; then |
80 |
|
|
# Qt |
81 |
|
|
kde4-base_set_qt_dependencies |
82 |
|
|
|
83 |
|
|
# Xorg |
84 |
|
|
COMMONDEPEND="${COMMONDEPEND} |
85 |
|
|
>=x11-base/xorg-server-1.5.2 |
86 |
|
|
" |
87 |
|
|
|
88 |
|
|
# X11 libs |
89 |
|
|
COMMONDEPEND="${COMMONDEPEND} |
90 |
|
|
x11-libs/libXext |
91 |
|
|
x11-libs/libXt |
92 |
|
|
x11-libs/libXxf86vm |
93 |
|
|
" |
94 |
|
|
|
95 |
|
|
# localization deps |
96 |
|
|
# DISABLED UNTIL PMS decide correct approach :( |
97 |
|
|
if [[ -n ${KDE_LINGUAS} ]]; then |
98 |
|
|
LNG_DEP="" |
99 |
|
|
for _lng in ${KDE_LINGUAS}; do |
100 |
|
|
# there must be or due to issue if lingua is not present in kde-l10n so |
101 |
|
|
# it wont die but pick kde-l10n as-is. |
102 |
|
|
LNG_DEP="${LNG_DEP} |
103 |
|
|
|| ( kde-base/kde-l10n[linguas_${_lng},kdeprefix=] kde-base/kde-l10n[kdeprefix=] )" |
104 |
|
|
done |
105 |
|
|
fi |
106 |
jmbsvicetto |
1.13 |
|
107 |
scarabeus |
1.31 |
# Set common dependencies for all ebuilds that inherit this eclass |
108 |
|
|
DEPEND="${DEPEND} ${COMMONDEPEND} |
109 |
|
|
>=dev-util/cmake-2.6.2 |
110 |
|
|
dev-util/pkgconfig |
111 |
|
|
>=sys-apps/sandbox-1.3.2 |
112 |
|
|
" |
113 |
|
|
RDEPEND="${RDEPEND} ${COMMONDEPEND}" |
114 |
|
|
fi # NEED_KDE != NONE block |
115 |
ingmar |
1.1 |
|
116 |
scarabeus |
1.22 |
if [[ $BUILD_TYPE = live ]]; then |
117 |
|
|
# Disable tests for live ebuilds |
118 |
|
|
RESTRICT="${RESTRICT} test" |
119 |
|
|
# Live ebuilds in kde-base default to kdeprefix by default |
120 |
|
|
IUSE="${IUSE} +kdeprefix" |
121 |
|
|
else |
122 |
|
|
# All other ebuild types default to -kdeprefix as before |
123 |
|
|
IUSE="${IUSE} kdeprefix" |
124 |
|
|
fi |
125 |
jmbsvicetto |
1.13 |
|
126 |
philantrop |
1.7 |
# @ECLASS-VARIABLE: OPENGL_REQUIRED |
127 |
|
|
# @DESCRIPTION: |
128 |
|
|
# Is qt-opengl required? Possible values are 'always', 'optional' and 'never'. |
129 |
|
|
# This variable must be set before inheriting any eclasses. Defaults to 'never'. |
130 |
|
|
OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}" |
131 |
|
|
|
132 |
scarabeus |
1.31 |
# @ECLASS-VARIABLE: WEBKIT_REQUIRED |
133 |
|
|
# @DESCRIPTION: |
134 |
|
|
# Is qt-webkit requred? Possible values are 'always', 'optional' and 'never'. |
135 |
|
|
# This variable must be set before inheriting any eclasses. Defaults to 'never'. |
136 |
|
|
WEBKIT_REQUIRED="${WEBKIT_REQUIRED:-never}" |
137 |
|
|
|
138 |
zlin |
1.4 |
# @ECLASS-VARIABLE: CPPUNIT_REQUIRED |
139 |
|
|
# @DESCRIPTION: |
140 |
|
|
# Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'. |
141 |
|
|
# This variable must be set before inheriting any eclasses. Defaults to 'never'. |
142 |
|
|
CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}" |
143 |
|
|
|
144 |
scarabeus |
1.22 |
case ${CPPUNIT_REQUIRED} in |
145 |
zlin |
1.4 |
always) |
146 |
scarabeus |
1.31 |
DEPEND="${DEPEND} |
147 |
|
|
dev-util/cppunit |
148 |
|
|
" |
149 |
scarabeus |
1.22 |
;; |
150 |
zlin |
1.4 |
optional) |
151 |
scarabeus |
1.22 |
IUSE="${IUSE} test" |
152 |
|
|
DEPEND="${DEPEND} |
153 |
scarabeus |
1.31 |
test? ( dev-util/cppunit ) |
154 |
|
|
" |
155 |
scarabeus |
1.22 |
;; |
156 |
zlin |
1.4 |
*) |
157 |
scarabeus |
1.22 |
CPPUNIT_REQUIRED="never" |
158 |
|
|
;; |
159 |
zlin |
1.4 |
esac |
160 |
ingmar |
1.1 |
|
161 |
|
|
# @ECLASS-VARIABLE: NEED_KDE |
162 |
|
|
# @DESCRIPTION: |
163 |
|
|
# This variable sets the version of KDE4 which will be used by the eclass. |
164 |
|
|
# For kde-base packages, if it is not set by the ebuild, |
165 |
scarabeus |
1.22 |
# it's assumed that the required KDE4 version is the latest available. |
166 |
|
|
# For non kde-base packages, it is also set to the latest by default. |
167 |
|
|
# |
168 |
|
|
# For more precise adjustments or for specifying particular kde version, |
169 |
|
|
# KDE_MINIMAL variable can be used. |
170 |
ingmar |
1.1 |
# |
171 |
|
|
# @CODE |
172 |
|
|
# Acceptable values are: |
173 |
|
|
# - latest - Use latest version in the portage tree |
174 |
scarabeus |
1.22 |
# Default for kde-base ebuilds. |
175 |
|
|
# - live - Use live release (live ebuilds) |
176 |
ingmar |
1.1 |
# - none - Let the ebuild handle SLOT, kde dependencies, KDEDIR, ... |
177 |
scarabeus |
1.22 |
# - 4.2, 4.1, kde-4 - respective slots for kde versions |
178 |
|
|
# @CODE |
179 |
|
|
# Note: default NEED_KDE is latest |
180 |
|
|
NEED_KDE="${NEED_KDE:=latest}" |
181 |
|
|
export NEED_KDE |
182 |
|
|
|
183 |
|
|
# @ECLASS-VARIABLE: KDE_MINIMAL |
184 |
|
|
# @DESCRIPTION: |
185 |
|
|
# This wariable is used when NEED_KDE="latest" is set, to specify the |
186 |
|
|
# required KDE minimal version for which apps will work. |
187 |
|
|
# @CODE |
188 |
|
|
# KDE_MINIMAL="-4.1" |
189 |
ingmar |
1.1 |
# @CODE |
190 |
scarabeus |
1.22 |
# Note: default minimal version is kde-4.1, which means that the apps will work |
191 |
|
|
# with any KDE version >=${KDE_MINIMAL} |
192 |
scarabeus |
1.30 |
KDE_MINIMAL="${KDE_MINIMAL:=4.2}" |
193 |
scarabeus |
1.22 |
export KDE_MINIMAL |
194 |
|
|
|
195 |
|
|
# FIXME: the code section, explanation of live. The last sentence needs other |
196 |
|
|
# formulation too. |
197 |
|
|
# |
198 |
|
|
# @ECLASS-VARIABLE: KDE_WANTED |
199 |
|
|
# @DESCRIPTION: |
200 |
|
|
# When NEED_KDE=latest is inherited, KDE_WANTED serves to indicate the prefered kde |
201 |
|
|
# version. It's value is looked for before any other. Useful when having more |
202 |
|
|
# +kdeprefix installs: you can choose which kde version, if present, to link |
203 |
|
|
# against. |
204 |
ingmar |
1.1 |
# |
205 |
scarabeus |
1.22 |
# @CODE |
206 |
|
|
# Acceptable values are: |
207 |
|
|
# stable = whatever is main tree (now 4.1) |
208 |
|
|
# testing = whatever is in testing on main tree |
209 |
|
|
# snapshot = whatever is released under snapshots (4.2 at present) |
210 |
|
|
# live = live svn ebuilds, also default value, do not be scared it goes in this |
211 |
|
|
# |
212 |
|
|
# order: live->snapshot->testing->stable, when searching for kde. This way we |
213 |
|
|
# allow users to use just kde4snapshots and use software from the tree. |
214 |
|
|
KDE_WANTED="${KDE_WANTED:=live}" |
215 |
|
|
export KDE_WANTED |
216 |
ingmar |
1.1 |
|
217 |
|
|
case ${NEED_KDE} in |
218 |
|
|
latest) |
219 |
scarabeus |
1.22 |
if [[ $KDEBASE = kde-base ]]; then |
220 |
ingmar |
1.1 |
case ${PV} in |
221 |
scarabeus |
1.30 |
4.3* | 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*) |
222 |
scarabeus |
1.28 |
_kdedir="4.3" |
223 |
|
|
_pv="-${PV}:4.3" |
224 |
|
|
_pvn="-${PV}" |
225 |
|
|
;; |
226 |
scarabeus |
1.22 |
4.2* | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*) |
227 |
|
|
_kdedir="4.2" |
228 |
|
|
_pv="-${PV}:4.2" |
229 |
|
|
_pvn="-${PV}" |
230 |
|
|
;; |
231 |
jmbsvicetto |
1.13 |
4.1*| 4.0.9* | 4.0.8*) |
232 |
|
|
_kdedir="4.1" |
233 |
scarabeus |
1.22 |
_pv="-${PV}:4.1" |
234 |
|
|
_pvn="-${PV}" |
235 |
|
|
;; |
236 |
jmbsvicetto |
1.13 |
4.0*) |
237 |
|
|
_kdedir="4.0" |
238 |
scarabeus |
1.22 |
_pv="-${PV}:kde-4" |
239 |
|
|
_pvn="-${PV}" |
240 |
|
|
;; |
241 |
jmbsvicetto |
1.13 |
3.9*) |
242 |
|
|
_kdedir="3.9" |
243 |
scarabeus |
1.22 |
_pv="-${PV}:kde-4" |
244 |
|
|
_pvn="-${PV}" |
245 |
|
|
;; |
246 |
|
|
9999*) |
247 |
|
|
_kdedir="live" |
248 |
|
|
_pv="-${PV}:live" |
249 |
|
|
_pvn="-${PV}" |
250 |
|
|
;; |
251 |
jmbsvicetto |
1.13 |
*) |
252 |
|
|
die "NEED_KDE=latest not supported for PV=${PV}" ;; |
253 |
scarabeus |
1.30 |
esac |
254 |
ingmar |
1.1 |
_operator=">=" |
255 |
|
|
else |
256 |
scarabeus |
1.22 |
# this creates dependency on any version of kde4 |
257 |
|
|
_operator=">=" |
258 |
|
|
_pv="-${KDE_MINIMAL}" |
259 |
|
|
_pvn=${_pv} |
260 |
ingmar |
1.1 |
fi |
261 |
|
|
;; |
262 |
jmbsvicetto |
1.13 |
|
263 |
scarabeus |
1.22 |
# NEED_KDE="${PV}" |
264 |
|
|
scm|svn|live|9999*) |
265 |
|
|
_kdedir="live" |
266 |
ingmar |
1.1 |
_operator=">=" |
267 |
scarabeus |
1.22 |
_pv="-${NEED_KDE}:live" |
268 |
|
|
_pvn="-${NEED_KDE}" |
269 |
|
|
export NEED_KDE="live" |
270 |
|
|
;; |
271 |
scarabeus |
1.30 |
4.3 | 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*) |
272 |
scarabeus |
1.28 |
_kdedir="4.3" |
273 |
|
|
_pv="-${NEED_KDE}:4.3" |
274 |
|
|
_pvn="-${NEED_KDE}" |
275 |
|
|
_operator=">=" |
276 |
|
|
;; |
277 |
scarabeus |
1.22 |
4.2 | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*) |
278 |
|
|
_kdedir="4.2" |
279 |
|
|
_pv="-${NEED_KDE}:4.2" |
280 |
|
|
_pvn="-${NEED_KDE}" |
281 |
jmbsvicetto |
1.13 |
_operator=">=" |
282 |
|
|
;; |
283 |
|
|
4.1 | 4.0.9* | 4.0.8*) |
284 |
|
|
_kdedir="4.1" |
285 |
scarabeus |
1.22 |
_pv="-${NEED_KDE}:4.1" |
286 |
|
|
_pvn="-${NEED_KDE}" |
287 |
jmbsvicetto |
1.13 |
_operator=">=" |
288 |
ingmar |
1.1 |
;; |
289 |
jmbsvicetto |
1.13 |
4.0* | 4) |
290 |
ingmar |
1.1 |
_kdedir="4.0" |
291 |
|
|
_operator=">=" |
292 |
jmbsvicetto |
1.13 |
_pv="-${NEED_KDE}:kde-4" |
293 |
scarabeus |
1.22 |
_pvn="-${NEED_KDE}" |
294 |
ingmar |
1.1 |
;; |
295 |
|
|
3.9*) |
296 |
|
|
_kdedir="3.9" |
297 |
|
|
_operator=">=" |
298 |
|
|
_pv="-${NEED_KDE}:kde-4" |
299 |
scarabeus |
1.22 |
_pvn="-${NEED_KDE}" |
300 |
ingmar |
1.1 |
;; |
301 |
jmbsvicetto |
1.13 |
|
302 |
|
|
# The ebuild handles dependencies, KDEDIR, SLOT. |
303 |
|
|
none) |
304 |
|
|
: |
305 |
ingmar |
1.1 |
;; |
306 |
jmbsvicetto |
1.13 |
|
307 |
|
|
*) |
308 |
|
|
die "NEED_KDE=${NEED_KDE} currently not supported." |
309 |
ingmar |
1.1 |
;; |
310 |
|
|
esac |
311 |
|
|
|
312 |
|
|
if [[ ${NEED_KDE} != none ]]; then |
313 |
jmbsvicetto |
1.13 |
#Set the SLOT |
314 |
scarabeus |
1.30 |
if [[ -n ${KDEBASE} ]]; then |
315 |
|
|
if [[ ${NEED_KDE} = live ]]; then |
316 |
scarabeus |
1.22 |
SLOT="live" |
317 |
ingmar |
1.1 |
else |
318 |
scarabeus |
1.22 |
case ${KMNAME} in |
319 |
|
|
koffice) |
320 |
|
|
case ${PV} in |
321 |
|
|
9999*) SLOT="live" ;; |
322 |
|
|
*) SLOT="2" ;; |
323 |
|
|
esac |
324 |
|
|
;; |
325 |
|
|
kdevelop) |
326 |
|
|
case ${PV} in |
327 |
|
|
9999*) SLOT="live" ;; |
328 |
|
|
4.0*|3.9*) SLOT="4" ;; |
329 |
|
|
esac |
330 |
|
|
;; |
331 |
|
|
kdevplatform) |
332 |
|
|
case ${PV} in |
333 |
|
|
9999*) SLOT="live" ;; |
334 |
|
|
1.0*|0.9*) SLOT="1" ;; |
335 |
|
|
esac |
336 |
|
|
;; |
337 |
|
|
*) |
338 |
|
|
case ${PV} in |
339 |
|
|
9999*) SLOT="live" ;; |
340 |
scarabeus |
1.30 |
4.3* | 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*) SLOT="4.3" ;; |
341 |
scarabeus |
1.22 |
4.2* | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*) SLOT="4.2" ;; |
342 |
|
|
4.1* | 4.0.9* | 4.0.8*) SLOT="4.1" ;; |
343 |
|
|
*) SLOT="4.1" ;; |
344 |
|
|
esac |
345 |
|
|
;; |
346 |
scarabeus |
1.30 |
esac |
347 |
ingmar |
1.1 |
fi |
348 |
|
|
fi |
349 |
|
|
|
350 |
scarabeus |
1.22 |
# Block installation of other SLOTS unless kdeprefix |
351 |
|
|
for KDE_SLOT in ${KDE_SLOTS[@]}; do |
352 |
|
|
# block non kdeprefix ${PN} on other slots |
353 |
|
|
# we do this only if we do not depend on any version of kde |
354 |
|
|
if [[ ${SLOT} != ${KDE_SLOT} ]]; then |
355 |
|
|
RDEPEND="${RDEPEND} |
356 |
scarabeus |
1.31 |
!kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] ) |
357 |
|
|
" |
358 |
scarabeus |
1.22 |
fi |
359 |
|
|
done |
360 |
jmbsvicetto |
1.13 |
|
361 |
scarabeus |
1.31 |
# Adding kdelibs and kdebase-data deps to all other packages. |
362 |
scarabeus |
1.30 |
if [[ ${PN} != kdelibs ]]; then |
363 |
scarabeus |
1.22 |
DEPEND="${DEPEND} |
364 |
scarabeus |
1.31 |
kdeprefix? ( ${_operator}kde-base/kdelibs${_pv}[kdeprefix] ) |
365 |
|
|
!kdeprefix? ( ${_operator}kde-base/kdelibs${_pvn}[-kdeprefix] ) |
366 |
|
|
" |
367 |
scarabeus |
1.22 |
RDEPEND="${RDEPEND} |
368 |
scarabeus |
1.31 |
kdeprefix? ( ${_operator}kde-base/kdelibs${_pv}[kdeprefix] ) |
369 |
|
|
!kdeprefix? ( ${_operator}kde-base/kdelibs${_pvn}[-kdeprefix] ) |
370 |
|
|
" |
371 |
|
|
if [[ ${PN} != kdepimlibs && ${PN} != kdebase-data ]]; then |
372 |
scarabeus |
1.22 |
RDEPEND="${RDEPEND} |
373 |
scarabeus |
1.31 |
kdeprefix? ( ${_operator}kde-base/kdebase-data${_pv}[kdeprefix] ) |
374 |
|
|
!kdeprefix? ( ${_operator}kde-base/kdebase-data${_pvn}[-kdeprefix] ) |
375 |
|
|
" |
376 |
ingmar |
1.1 |
fi |
377 |
|
|
fi |
378 |
scarabeus |
1.22 |
unset _operator _pv _pvn |
379 |
ingmar |
1.1 |
fi |
380 |
|
|
|
381 |
|
|
# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a |
382 |
|
|
# koffice ebuild, the URI should be set in the ebuild itself |
383 |
scarabeus |
1.30 |
case ${BUILD_TYPE} in |
384 |
scarabeus |
1.22 |
live) |
385 |
scarabeus |
1.30 |
SRC_URI="" |
386 |
scarabeus |
1.22 |
ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde} |
387 |
|
|
# Split ebuild, or extragear stuff |
388 |
scarabeus |
1.30 |
if [[ -n ${KMNAME} ]]; then |
389 |
scarabeus |
1.22 |
ESVN_PROJECT="${KMNAME}" |
390 |
|
|
if [[ -z ${KMNOMODULE} && -z ${KMMODULE} ]]; then |
391 |
jmbsvicetto |
1.25 |
KMMODULE="${PN}" |
392 |
scarabeus |
1.22 |
fi |
393 |
|
|
# Split kde-base/ ebuilds: (they reside in trunk/KDE) |
394 |
|
|
case ${KMNAME} in |
395 |
|
|
kdebase-*) |
396 |
scarabeus |
1.30 |
ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/kdebase/${KMNAME#kdebase-}" |
397 |
scarabeus |
1.22 |
;; |
398 |
|
|
kdereview) |
399 |
scarabeus |
1.30 |
ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" |
400 |
scarabeus |
1.22 |
;; |
401 |
|
|
kde*) |
402 |
|
|
ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/${KMNAME}" |
403 |
|
|
;; |
404 |
|
|
extragear*|playground*) |
405 |
scarabeus |
1.30 |
ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" |
406 |
|
|
;; |
407 |
scarabeus |
1.22 |
koffice) |
408 |
|
|
ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}" |
409 |
|
|
;; |
410 |
|
|
*) |
411 |
scarabeus |
1.30 |
ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}" |
412 |
scarabeus |
1.22 |
;; |
413 |
|
|
esac |
414 |
|
|
else |
415 |
|
|
# kdelibs, kdepimlibs |
416 |
|
|
ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/${PN}" |
417 |
|
|
ESVN_PROJECT="${PN}" |
418 |
|
|
fi |
419 |
|
|
# limit syncing to 1 hour. |
420 |
|
|
ESVN_UP_FREQ=${ESVN_UP_FREQ:-1} |
421 |
|
|
;; |
422 |
|
|
*) |
423 |
scarabeus |
1.30 |
if [[ -n ${KDEBASE} ]]; then |
424 |
scarabeus |
1.22 |
if [[ -n ${KMNAME} ]]; then |
425 |
scarabeus |
1.30 |
case ${KMNAME} in |
426 |
|
|
kdebase-apps) |
427 |
|
|
_kmname="kdebase" ;; |
428 |
|
|
*) |
429 |
|
|
_kmname=${KMNAME} ;; |
430 |
|
|
esac |
431 |
scarabeus |
1.22 |
else |
432 |
|
|
_kmname=${PN} |
433 |
|
|
fi |
434 |
|
|
_kmname_pv="${_kmname}-${PV}" |
435 |
|
|
if [[ $NEED_KDE != live ]]; then |
436 |
|
|
case ${KDEBASE} in |
437 |
|
|
kde-base) |
438 |
|
|
case ${PV} in |
439 |
scarabeus |
1.31 |
4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*) |
440 |
|
|
SRC_URI="http://dev.gentooexperimental.org/~alexxy/kde/${PV}/${_kmname_pv}.tar.lzma" ;; |
441 |
|
|
4.1.9* | 4.1.8* | 4.1.7* | 4.1.6* | 4.0.9* | 4.0.8*) |
442 |
scarabeus |
1.22 |
SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;; |
443 |
|
|
*) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;; |
444 |
|
|
esac |
445 |
|
|
;; |
446 |
|
|
koffice) |
447 |
|
|
SRC_URI="mirror://kde/unstable/${_kmname_pv}/src/${_kmname_pv}.tar.bz2" |
448 |
|
|
;; |
449 |
ingmar |
1.1 |
esac |
450 |
scarabeus |
1.22 |
fi |
451 |
scarabeus |
1.30 |
unset _kmname _kmname_pv |
452 |
|
|
fi |
453 |
scarabeus |
1.22 |
;; |
454 |
|
|
esac |
455 |
ingmar |
1.1 |
|
456 |
|
|
debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}" |
457 |
|
|
|
458 |
|
|
# @ECLASS-VARIABLE: PREFIX |
459 |
|
|
# @DESCRIPTION: |
460 |
|
|
# Set the installation PREFIX. All kde-base ebuilds go into the KDE4 installation directory. |
461 |
scarabeus |
1.22 |
# Applications installed by the other ebuilds go into ${KDEDIR} by default, this value |
462 |
ingmar |
1.1 |
# can be superseded by defining PREFIX before inheriting kde4-base. |
463 |
jmbsvicetto |
1.13 |
# This value is set on pkg_setup |
464 |
|
|
PREFIX="" |
465 |
ingmar |
1.1 |
|
466 |
jmbsvicetto |
1.13 |
debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SLOT ${SLOT} - NEED_KDE ${NEED_KDE}" |
467 |
ingmar |
1.1 |
|
468 |
|
|
# @FUNCTION: kde4-base_pkg_setup |
469 |
|
|
# @DESCRIPTION: |
470 |
|
|
# Adds flags needed by all of KDE 4 to $QT4_BUILT_WITH_USE_CHECK. Uses |
471 |
|
|
# kde4-functions_check_use from kde4-functions.eclass to print appropriate |
472 |
|
|
# errors and die if any required flags listed in $QT4_BUILT_WITH_USE_CHECK or |
473 |
|
|
# $KDE4_BUILT_WITH_USE_CHECK are missing. |
474 |
|
|
kde4-base_pkg_setup() { |
475 |
scarabeus |
1.30 |
debug-print-function ${FUNCNAME} "$@" |
476 |
ingmar |
1.1 |
|
477 |
jmbsvicetto |
1.13 |
# Don't set KDEHOME during compile, it will cause access violations |
478 |
|
|
unset KDEHOME |
479 |
|
|
|
480 |
scarabeus |
1.22 |
# Search for best suitable kde installation for misc kde package. |
481 |
|
|
# Computation based on NEED_KDE and KDE_MINIMAL |
482 |
scarabeus |
1.30 |
[[ ${KDEBASE} != kde-base ]] && [[ ${NEED_KDE} = latest || ${NEED_KDE} = none ]] && get_latest_kdedir |
483 |
jmbsvicetto |
1.13 |
|
484 |
scarabeus |
1.29 |
# Set PREFIX |
485 |
|
|
if use kdeprefix; then |
486 |
|
|
KDEDIR="/usr/kde/${_kdedir}" |
487 |
|
|
KDEDIRS="/usr/local/:/usr:${KDEDIR}" |
488 |
|
|
else |
489 |
|
|
KDEDIR="/usr" |
490 |
|
|
KDEDIRS="/usr/local/:/usr" |
491 |
jmbsvicetto |
1.13 |
fi |
492 |
jmbsvicetto |
1.15 |
# Set the prefix based on KDEDIR |
493 |
|
|
# Make it a consequence of kdeprefix |
494 |
scarabeus |
1.30 |
PREFIX=${KDEDIR} |
495 |
jmbsvicetto |
1.13 |
|
496 |
|
|
unset _kdedir |
497 |
|
|
|
498 |
scarabeus |
1.22 |
# check if qt has correct deps |
499 |
|
|
[[ -n ${QT4_BUILT_WITH_USE_CHECK} || -n ${KDE4_BUILT_WITH_USE_CHECK[@]} ]] && \ |
500 |
|
|
die "built_with_use illegal in this EAPI!" |
501 |
|
|
|
502 |
scarabeus |
1.30 |
if [[ ${BUILD_TYPE} = live && -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then |
503 |
scarabeus |
1.22 |
echo |
504 |
|
|
elog "WARNING! This is an experimental live ebuild of ${KMNAME:-${PN}}" |
505 |
|
|
elog "Use it at your own risk." |
506 |
|
|
elog "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!" |
507 |
|
|
echo |
508 |
zlin |
1.4 |
fi |
509 |
|
|
} |
510 |
|
|
|
511 |
|
|
# @FUNCTION: kde4-base_src_unpack |
512 |
|
|
# @DESCRIPTION: |
513 |
|
|
# This function unpacks the source tarballs for KDE4 applications. |
514 |
ingmar |
1.1 |
kde4-base_src_unpack() { |
515 |
scarabeus |
1.30 |
debug-print-function ${FUNCNAME} "$@" |
516 |
ingmar |
1.1 |
|
517 |
scarabeus |
1.30 |
if [[ ${BUILD_TYPE} = live ]]; then |
518 |
scarabeus |
1.23 |
migrate_store_dir |
519 |
scarabeus |
1.22 |
subversion_src_unpack |
520 |
ingmar |
1.1 |
else |
521 |
scarabeus |
1.30 |
base_src_unpack |
522 |
ingmar |
1.1 |
fi |
523 |
scarabeus |
1.22 |
} |
524 |
ingmar |
1.1 |
|
525 |
scarabeus |
1.22 |
# @FUNCTION: kde4-base_src_compile |
526 |
|
|
# @DESCRIPTION: |
527 |
|
|
# General pre-configure and pre-compile function for KDE4 applications. |
528 |
|
|
# It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and |
529 |
|
|
# enable_selected_linguas() in kde4-functions.eclass(5) for further details. |
530 |
|
|
kde4-base_src_prepare() { |
531 |
|
|
debug-print-function ${FUNCNAME} "$@" |
532 |
zlin |
1.8 |
|
533 |
|
|
# Only enable selected languages, used for KDE extragear apps. |
534 |
scarabeus |
1.30 |
if [[ -n ${KDE_LINGUAS} ]]; then |
535 |
zlin |
1.8 |
enable_selected_linguas |
536 |
|
|
fi |
537 |
ingmar |
1.1 |
|
538 |
scarabeus |
1.22 |
base_src_prepare |
539 |
scarabeus |
1.20 |
|
540 |
scarabeus |
1.22 |
# Save library dependencies |
541 |
scarabeus |
1.30 |
if [[ -n ${KMSAVELIBS} ]] ; then |
542 |
scarabeus |
1.22 |
save_library_dependencies |
543 |
|
|
fi |
544 |
scarabeus |
1.20 |
|
545 |
scarabeus |
1.22 |
# Inject library dependencies |
546 |
scarabeus |
1.30 |
if [[ -n ${KMLOADLIBS} ]] ; then |
547 |
scarabeus |
1.22 |
load_library_dependencies |
548 |
jmbsvicetto |
1.13 |
fi |
549 |
ingmar |
1.1 |
} |
550 |
|
|
|
551 |
|
|
# @FUNCTION: kde4-base_src_configure |
552 |
|
|
# @DESCRIPTION: |
553 |
|
|
# Function for configuring the build of KDE4 applications. |
554 |
|
|
kde4-base_src_configure() { |
555 |
|
|
debug-print-function ${FUNCNAME} "$@" |
556 |
|
|
|
557 |
scarabeus |
1.31 |
# Handle common release builds |
558 |
|
|
if ! has debug ${IUSE//+} || ! use debug; then |
559 |
|
|
append-cppflags -DQT_NO_DEBUG |
560 |
ingmar |
1.1 |
fi |
561 |
|
|
|
562 |
|
|
# Enable generation of HTML handbook |
563 |
|
|
if has htmlhandbook ${IUSE//+} && use htmlhandbook; then |
564 |
scarabeus |
1.22 |
ebegin "Enabling building of HTML handbook" |
565 |
ingmar |
1.1 |
mycmakeargs="${mycmakeargs} -DKDE4_ENABLE_HTMLHANDBOOK=ON" |
566 |
scarabeus |
1.22 |
eend $? |
567 |
ingmar |
1.1 |
fi |
568 |
|
|
|
569 |
|
|
# Build tests in src_test only, where we override this value |
570 |
|
|
mycmakeargs="${mycmakeargs} -DKDE4_BUILD_TESTS=OFF" |
571 |
|
|
|
572 |
|
|
# Set distribution name |
573 |
scarabeus |
1.30 |
[[ ${PN} = kdelibs ]] && mycmakeargs="${mycmakeargs} -DKDE_DISTRIBUTION_TEXT=Gentoo" |
574 |
ingmar |
1.1 |
|
575 |
|
|
# runpath linking |
576 |
|
|
mycmakeargs="${mycmakeargs} -DKDE4_USE_ALWAYS_FULL_RPATH=ON" |
577 |
|
|
|
578 |
|
|
# Here we set the install prefix |
579 |
|
|
mycmakeargs="${mycmakeargs} -DCMAKE_INSTALL_PREFIX=${PREFIX}" |
580 |
|
|
|
581 |
jmbsvicetto |
1.13 |
# If prefix is /usr, sysconf needs to be /etc, not /usr/etc |
582 |
scarabeus |
1.22 |
use kdeprefix || mycmakeargs="${mycmakeargs} -DSYSCONF_INSTALL_DIR=/etc" |
583 |
jmbsvicetto |
1.13 |
|
584 |
ingmar |
1.1 |
# Set environment |
585 |
|
|
QTEST_COLORED=1 |
586 |
scarabeus |
1.30 |
QT_PLUGIN_PATH="${KDEDIR}/$(get_libdir)/kde4/plugins/" |
587 |
ingmar |
1.1 |
|
588 |
scarabeus |
1.30 |
# Hardcode path to *.pc KDE files |
589 |
alexxy |
1.24 |
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}${KDEDIR}/$(get_libdir)/pkgconfig" |
590 |
jmbsvicetto |
1.13 |
|
591 |
scarabeus |
1.30 |
# Override some environment variables |
592 |
|
|
PATH="${KDEDIR}/bin:${PATH}" |
593 |
|
|
LDPATH="${KDEDIR}/$(get_libdir):${LDPATH}" |
594 |
|
|
|
595 |
|
|
# Set cmake prefixes to allow buildsystem to localize valid KDE installation when more are present |
596 |
|
|
if use kdeprefix; then |
597 |
|
|
mycmakeargs="${mycmakeargs} |
598 |
|
|
-DCMAKE_SYSTEM_INCLUDE_PATH=${KDEDIR}/include |
599 |
|
|
-DCMAKE_SYSTEM_LIBRARY_PATH=${KDEDIR}/$(get_libdir) |
600 |
|
|
-DCMAKE_SYSTEM_PREFIX_PATH=${KDEDIR} |
601 |
|
|
-DCMAKE_SYSTEM_PROGRAM_PATH=${KDEDIR}/bin" |
602 |
scarabeus |
1.22 |
fi |
603 |
|
|
|
604 |
|
|
[ -e CMakeLists.txt ] && cmake-utils_src_configure |
605 |
|
|
} |
606 |
|
|
|
607 |
|
|
# @FUNCTION: kde4-base_src_compile |
608 |
|
|
# @DESCRIPTION: |
609 |
|
|
# General function for compiling KDE4 applications. |
610 |
|
|
kde4-base_src_compile() { |
611 |
|
|
debug-print-function ${FUNCNAME} "$@" |
612 |
|
|
|
613 |
|
|
kde4-base_src_make |
614 |
ingmar |
1.1 |
} |
615 |
|
|
|
616 |
|
|
# @FUNCTION: kde4-base_src_make |
617 |
|
|
# @DESCRIPTION: |
618 |
|
|
# Function for building KDE4 applications. |
619 |
|
|
# Options are passed to cmake-utils_src_make. |
620 |
|
|
kde4-base_src_make() { |
621 |
|
|
debug-print-function ${FUNCNAME} "$@" |
622 |
|
|
|
623 |
scarabeus |
1.22 |
if [[ -d "$WORKDIR/${PN}_build" ]]; then |
624 |
scarabeus |
1.30 |
pushd "${WORKDIR}/${PN}_build" > /dev/null |
625 |
scarabeus |
1.22 |
fi |
626 |
|
|
[ -e [Mm]akefile ] && cmake-utils_src_make "$@" |
627 |
ingmar |
1.1 |
} |
628 |
|
|
|
629 |
|
|
# @FUNCTION: kde4-base_src_test |
630 |
|
|
# @DESCRIPTION: |
631 |
|
|
# Function for testing KDE4 applications. |
632 |
|
|
kde4-base_src_test() { |
633 |
|
|
debug-print-function ${FUNCNAME} "$@" |
634 |
|
|
|
635 |
|
|
# Override this value, set in kde4-base_src_configure() |
636 |
|
|
mycmakeargs="${mycmakeargs} -DKDE4_BUILD_TESTS=ON" |
637 |
scarabeus |
1.30 |
cmake-utils_src_configure |
638 |
|
|
kde4-base_src_compile |
639 |
ingmar |
1.1 |
|
640 |
|
|
cmake-utils_src_test |
641 |
|
|
} |
642 |
|
|
|
643 |
|
|
# @FUNCTION: kde4-base_src_install |
644 |
|
|
# @DESCRIPTION: |
645 |
|
|
# Function for installing KDE4 applications. |
646 |
|
|
kde4-base_src_install() { |
647 |
|
|
debug-print-function ${FUNCNAME} "$@" |
648 |
|
|
|
649 |
scarabeus |
1.30 |
if [[ -n ${KMSAVELIBS} ]] ; then |
650 |
scarabeus |
1.22 |
install_library_dependencies |
651 |
|
|
fi |
652 |
|
|
|
653 |
ingmar |
1.1 |
kde4-base_src_make_doc |
654 |
scarabeus |
1.22 |
if [[ -d "$WORKDIR/${PN}_build" ]]; then |
655 |
scarabeus |
1.30 |
pushd "${WORKDIR}/${PN}_build" > /dev/null |
656 |
jmbsvicetto |
1.13 |
fi |
657 |
|
|
[ -e [Mm]akefile ] && cmake-utils_src_install |
658 |
ingmar |
1.1 |
} |
659 |
|
|
|
660 |
|
|
# @FUNCTION: kde4-base_src_make_doc |
661 |
|
|
# @DESCRIPTION: |
662 |
|
|
# Function for installing the documentation of KDE4 applications. |
663 |
|
|
kde4-base_src_make_doc() { |
664 |
|
|
debug-print-function ${FUNCNAME} "$@" |
665 |
|
|
|
666 |
|
|
local doc |
667 |
|
|
for doc in AUTHORS ChangeLog* README* NEWS TODO; do |
668 |
scarabeus |
1.30 |
[[ -s ${doc} ]] && dodoc ${doc} |
669 |
ingmar |
1.1 |
done |
670 |
|
|
|
671 |
scarabeus |
1.30 |
if [[ -z ${KMNAME} ]]; then |
672 |
ingmar |
1.1 |
for doc in {apps,runtime,workspace,.}/*/{AUTHORS,README*}; do |
673 |
scarabeus |
1.30 |
if [[ -s ${doc} ]]; then |
674 |
ingmar |
1.1 |
local doc_complete=${doc} |
675 |
|
|
doc="${doc#*/}" |
676 |
|
|
newdoc "$doc_complete" "${doc%/*}.${doc##*/}" |
677 |
|
|
fi |
678 |
|
|
done |
679 |
|
|
fi |
680 |
|
|
|
681 |
scarabeus |
1.22 |
if [[ -n ${KDEBASE} && -d "${D}/usr/share/doc/${PF}" ]]; then |
682 |
ingmar |
1.1 |
# work around bug #97196 |
683 |
|
|
dodir /usr/share/doc/kde && \ |
684 |
scarabeus |
1.30 |
mv "${D}/usr/share/doc/${PF}" "${D}"/usr/share/doc/kde/ || \ |
685 |
ingmar |
1.1 |
die "Failed to move docs to kde/ failed." |
686 |
|
|
fi |
687 |
|
|
} |
688 |
|
|
|
689 |
|
|
# @FUNCTION: kde4-base_pkg_postinst |
690 |
|
|
# @DESCRIPTION: |
691 |
|
|
# Function to rebuild the KDE System Configuration Cache after an application has been installed. |
692 |
|
|
kde4-base_pkg_postinst() { |
693 |
scarabeus |
1.30 |
debug-print-function ${FUNCNAME} "$@" |
694 |
|
|
|
695 |
ingmar |
1.1 |
buildsycoca |
696 |
|
|
} |
697 |
|
|
|
698 |
|
|
# @FUNCTION: kde4-base_pkg_postrm |
699 |
|
|
# @DESCRIPTION: |
700 |
|
|
# Function to rebuild the KDE System Configuration Cache after an application has been removed. |
701 |
|
|
kde4-base_pkg_postrm() { |
702 |
scarabeus |
1.30 |
debug-print-function ${FUNCNAME} "$@" |
703 |
|
|
|
704 |
ingmar |
1.1 |
buildsycoca |
705 |
|
|
} |