/[gentoo-x86]/eclass/kde4-base.eclass
Gentoo

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.30 - (hide annotations) (download)
Sun Mar 1 11:44:09 2009 UTC (5 years, 4 months ago) by scarabeus
Branch: MAIN
Changes since 1.29: +97 -98 lines
Update kde4 eclasses. Was in testing for month now so hope all problems squashed. Resolves some annoying issues and enhance deps.

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

  ViewVC Help
Powered by ViewVC 1.1.20