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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.91 - (hide annotations) (download)
Sun May 1 13:52:09 2011 UTC (3 years, 5 months ago) by scarabeus
Branch: MAIN
Changes since 1.90: +13 -16 lines
Rework the gcc checkup to be less time consuming and move to git-2 eclass

1 reavertm 1.58 # Copyright 1999-2010 Gentoo Foundation
2 ingmar 1.1 # Distributed under the terms of the GNU General Public License v2
3 scarabeus 1.91 # $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.90 2011/04/22 18:48:03 abcd Exp $
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.87 # NOTE: KDE 4 ebuilds currently support EAPI "3". This will be reviewed
14     # over time as new EAPI versions are approved.
15 scarabeus 1.22
16 alexxy 1.78 # @ECLASS-VARIABLE: VIRTUALX_REQUIRED
17     # @DESCRIPTION:
18 dilfridge 1.85 # For proper description see virtualx.eclass manpage.
19     # Here we redefine default value to be manual, if your package needs virtualx
20     # for tests you should proceed with setting VIRTUALX_REQUIRED=test.
21 alexxy 1.78 : ${VIRTUALX_REQUIRED:=manual}
22    
23 scarabeus 1.91 inherit kde4-functions toolchain-funcs fdo-mime gnome2-utils base virtualx versionator eutils
24 reavertm 1.61
25     if [[ ${BUILD_TYPE} = live ]]; then
26 scarabeus 1.87 case ${KDE_SCM} in
27     svn) inherit subversion ;;
28 scarabeus 1.91 git) inherit git-2 ;;
29 scarabeus 1.87 esac
30 reavertm 1.61 fi
31    
32 scarabeus 1.52 # @ECLASS-VARIABLE: CMAKE_REQUIRED
33 scarabeus 1.44 # @DESCRIPTION:
34 scarabeus 1.47 # Specify if cmake buildsystem is being used. Possible values are 'always' and 'never'.
35     # Please note that if it's set to 'never' you need to explicitly override following phases:
36     # src_configure, src_compile, src_test and src_install.
37     # Defaults to 'always'.
38 scarabeus 1.54 : ${CMAKE_REQUIRED:=always}
39 reavertm 1.61 if [[ ${CMAKE_REQUIRED} = always ]]; then
40 scarabeus 1.47 buildsystem_eclass="cmake-utils"
41     export_fns="src_configure src_compile src_test src_install"
42 scarabeus 1.44 fi
43    
44 reavertm 1.61 # Verify KDE_MINIMAL (display QA notice in pkg_setup, still we need to fix it here)
45     if [[ -n ${KDE_MINIMAL} ]]; then
46     for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do
47     [[ ${KDE_MINIMAL} = ${slot} ]] && KDE_MINIMAL_VALID=1 && break
48     done
49     unset slot
50     [[ -z ${KDE_MINIMAL_VALID} ]] && unset KDE_MINIMAL
51     else
52     KDE_MINIMAL_VALID=1
53     fi
54    
55     # @ECLASS-VARIABLE: KDE_MINIMAL
56     # @DESCRIPTION:
57     # This variable is used when KDE_REQUIRED is set, to specify required KDE minimal
58 reavertm 1.66 # version for apps to work. Currently defaults to 4.4
59 reavertm 1.61 # One may override this variable to raise version requirements.
60     # For possible values look at KDE_SLOTS and KDE_LIVE_SLOTS variables.
61     # Note that it is fixed to ${SLOT} for kde-base packages.
62 reavertm 1.66 KDE_MINIMAL="${KDE_MINIMAL:-4.4}"
63 scarabeus 1.48
64 scarabeus 1.87 # Set slot for KDEBASE known packages
65 reavertm 1.61 case ${KDEBASE} in
66     kde-base)
67 scarabeus 1.87 SLOT=$(_calculate_kde_slot)
68     [[ -z ${SLOT} ]] && die "Unsupported ${PV}"
69 reavertm 1.61 KDE_MINIMAL="${SLOT}"
70     ;;
71     koffice)
72     SLOT="2"
73     ;;
74     kdevelop)
75     if [[ ${BUILD_TYPE} = live ]]; then
76 reavertm 1.65 # @ECLASS-VARIABLE: KDEVELOP_VERSION
77     # @DESCRIPTION:
78     # Specifies KDevelop version. Default is 4.0.0 for tagged packages and 9999 for live packages.
79     # Applies to KDEBASE=kdevelop only.
80     KDEVELOP_VERSION="${KDEVELOP_VERSION:-9999}"
81     # @ECLASS-VARIABLE: KDEVPLATFORM_VERSION
82     # @DESCRIPTION:
83     # Specifies KDevplatform version. Default is 1.0.0 for tagged packages and 9999 for live packages.
84     # Applies to KDEBASE=kdevelop only.
85     KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-9999}"
86 reavertm 1.61 else
87     case ${PN} in
88     kdevelop|quanta)
89     KDEVELOP_VERSION=${PV}
90     KDEVPLATFORM_VERSION="$(($(get_major_version)-3)).$(get_after_major_version)"
91     ;;
92 reavertm 1.65 kdevplatform)
93 reavertm 1.61 KDEVELOP_VERSION="$(($(get_major_version)+3)).$(get_after_major_version)"
94     KDEVPLATFORM_VERSION=${PV}
95 reavertm 1.65 ;;
96     *)
97     KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.0.0}"
98     KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-1.0.0}"
99 reavertm 1.61 esac
100     fi
101     SLOT="4"
102     ;;
103     esac
104    
105     inherit ${buildsystem_eclass}
106 scarabeus 1.47
107 scarabeus 1.87 EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare ${export_fns} pkg_preinst pkg_postinst pkg_postrm
108 scarabeus 1.44
109 scarabeus 1.47 unset buildsystem_eclass
110     unset export_fns
111 ingmar 1.1
112 alexxy 1.78 # @ECLASS-VARIABLE: DECLARATIVE_REQUIRED
113     # @DESCRIPTION:
114     # Is qt-declarative required? Possible values are 'always', 'optional' and 'never'.
115     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
116     DECLARATIVE_REQUIRED="${DECLARATIVE_REQUIRED:-never}"
117    
118     # @ECLASS-VARIABLE: QTHELP_REQUIRED
119     # @DESCRIPTION:
120     # Is qt-assistant required? Possible values are 'always', 'optional' and 'never'.
121     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
122     QTHELP_REQUIRED="${QTHELP_REQUIRED:-never}"
123    
124 philantrop 1.7 # @ECLASS-VARIABLE: OPENGL_REQUIRED
125     # @DESCRIPTION:
126     # Is qt-opengl required? Possible values are 'always', 'optional' and 'never'.
127     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
128     OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}"
129    
130 abcd 1.56 # @ECLASS-VARIABLE: MULTIMEDIA_REQUIRED
131     # @DESCRIPTION:
132     # Is qt-multimedia required? Possible values are 'always', 'optional' and 'never'.
133     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
134     MULTIMEDIA_REQUIRED="${MULTIMEDIA_REQUIRED:-never}"
135    
136 scarabeus 1.31 # @ECLASS-VARIABLE: WEBKIT_REQUIRED
137     # @DESCRIPTION:
138     # Is qt-webkit requred? Possible values are 'always', 'optional' and 'never'.
139     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
140     WEBKIT_REQUIRED="${WEBKIT_REQUIRED:-never}"
141    
142 zlin 1.4 # @ECLASS-VARIABLE: CPPUNIT_REQUIRED
143     # @DESCRIPTION:
144     # Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'.
145     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
146     CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}"
147    
148 scarabeus 1.34 # @ECLASS-VARIABLE: KDE_REQUIRED
149     # @DESCRIPTION:
150     # Is kde required? Possible values are 'always', 'optional' and 'never'.
151     # This variable must be set before inheriting any eclasses. Defaults to 'always'
152 reavertm 1.74 # If set to 'always' or 'optional', KDE_MINIMAL may be overriden as well.
153 scarabeus 1.34 # Note that for kde-base packages this variable is fixed to 'always'.
154     KDE_REQUIRED="${KDE_REQUIRED:-always}"
155    
156 reavertm 1.69 # @ECLASS-VARIABLE: KDE_HANDBOOK
157     # @DESCRIPTION:
158 reavertm 1.74 # Set to enable handbook in application. Possible values are 'always', 'optional'
159     # (handbook USE flag) and 'never'.
160     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
161     # It adds default handbook dirs for kde-base packages to KMEXTRA and in any case it
162     # ensures buildtime and runtime dependencies.
163     KDE_HANDBOOK="${KDE_HANDBOOK:-never}"
164 reavertm 1.69
165 scarabeus 1.87 # @ECLASS-VARIABLE: KDE_LINGUAS_LIVE_OVERRIDE
166     # @DESCRIPTION:
167     # Set this varible if you want your live package to manage its
168     # translations. (Mostly all kde ebuilds does not ship documentation
169     # and translations in live ebuilds)
170 abcd 1.90 if [[ ${BUILD_TYPE} == live && -z ${KDE_LINGUAS_LIVE_OVERRIDE} ]]; then
171     # Kdebase actualy provides the handbooks even for live stuff
172     [[ ${KDEBASE} == kde-base ]] || KDE_HANDBOOK=never
173 scarabeus 1.87 KDE_LINGUAS=""
174     fi
175    
176 scarabeus 1.47 # Setup packages inheriting this eclass
177     case ${KDEBASE} in
178     kde-base)
179 reavertm 1.69 HOMEPAGE="http://www.kde.org/"
180     LICENSE="GPL-2"
181 scarabeus 1.47 if [[ $BUILD_TYPE = live ]]; then
182     # Disable tests for live ebuilds
183     RESTRICT+=" test"
184     # Live ebuilds in kde-base default to kdeprefix by default
185     IUSE+=" +kdeprefix"
186     else
187     # All other ebuild types default to -kdeprefix as before
188     IUSE+=" kdeprefix"
189     fi
190     # This code is to prevent portage from searching GENTOO_MIRRORS for
191     # packages that will never be mirrored. (As they only will ever be in
192     # the overlay).
193     case ${PV} in
194     *9999* | 4.?.[6-9]?)
195     RESTRICT+=" mirror"
196     ;;
197     esac
198     # Block installation of other SLOTS unless kdeprefix
199     RDEPEND+=" $(block_other_slots)"
200     ;;
201 reavertm 1.69 koffice)
202     HOMEPAGE="http://www.koffice.org/"
203     LICENSE="GPL-2"
204     ;;
205     kdevelop)
206     HOMEPAGE="http://www.kdevelop.org/"
207     LICENSE="GPL-2"
208     ;;
209 scarabeus 1.47 esac
210 scarabeus 1.34
211 scarabeus 1.47 # @ECLASS-VARIABLE: QT_MINIMAL
212 scarabeus 1.39 # @DESCRIPTION:
213 scarabeus 1.87 # Determine version of qt we enforce as minimal for the package.
214 alexxy 1.78 if slot_is_at_least 4.6 "${KDE_MINIMAL}"; then
215     QT_MINIMAL="${QT_MINIMAL:-4.7.0}"
216 scarabeus 1.87 else
217 reavertm 1.66 QT_MINIMAL="${QT_MINIMAL:-4.6.3}"
218 scarabeus 1.47 fi
219    
220 alexxy 1.78 # Declarative dependencies
221     qtdeclarativedepend="
222     >=x11-libs/qt-declarative-${QT_MINIMAL}:4
223     "
224     case ${DECLARATIVE_REQUIRED} in
225     always)
226     COMMONDEPEND+=" ${qtdeclarativedepend}"
227     ;;
228     optional)
229     IUSE+=" declarative"
230     COMMONDEPEND+=" declarative? ( ${qtdeclarativedepend} )"
231     ;;
232     *) ;;
233     esac
234     unset qtdeclarativedepend
235    
236     # QtHelp dependencies
237     qthelpdepend="
238     >=x11-libs/qt-assistant-${QT_MINIMAL}:4
239     "
240     case ${QTHELP_REQUIRED} in
241     always)
242     COMMONDEPEND+=" ${qthelpdepend}"
243     ;;
244     optional)
245     IUSE+=" qthelp"
246     COMMONDEPEND+=" qthelp? ( ${qthelpdepend} )"
247     ;;
248     esac
249     unset qthelpdepend
250    
251 scarabeus 1.34 # OpenGL dependencies
252     qtopengldepend="
253 scarabeus 1.47 >=x11-libs/qt-opengl-${QT_MINIMAL}:4
254 scarabeus 1.34 "
255     case ${OPENGL_REQUIRED} in
256     always)
257 wired 1.42 COMMONDEPEND+=" ${qtopengldepend}"
258 scarabeus 1.34 ;;
259     optional)
260 wired 1.42 IUSE+=" opengl"
261     COMMONDEPEND+=" opengl? ( ${qtopengldepend} )"
262 scarabeus 1.34 ;;
263     *) ;;
264     esac
265     unset qtopengldepend
266    
267 abcd 1.56 # MultiMedia dependencies
268     qtmultimediadepend="
269     >=x11-libs/qt-multimedia-${QT_MINIMAL}:4
270     "
271     case ${MULTIMEDIA_REQUIRED} in
272     always)
273     COMMONDEPEND+=" ${qtmultimediadepend}"
274     ;;
275     optional)
276     IUSE+=" multimedia"
277     COMMONDEPEND+=" multimedia? ( ${qtmultimediadepend} )"
278     ;;
279     *) ;;
280     esac
281     unset qtmultimediadepend
282    
283 scarabeus 1.34 # WebKit dependencies
284 scarabeus 1.44 case ${KDE_REQUIRED} in
285     always)
286     qtwebkitusedeps="[kde]"
287     ;;
288     optional)
289     qtwebkitusedeps="[kde?]"
290     ;;
291     *) ;;
292     esac
293 scarabeus 1.34 qtwebkitdepend="
294 scarabeus 1.47 >=x11-libs/qt-webkit-${QT_MINIMAL}:4${qtwebkitusedeps}
295 scarabeus 1.34 "
296 scarabeus 1.44 unset qtwebkitusedeps
297 scarabeus 1.34 case ${WEBKIT_REQUIRED} in
298     always)
299 wired 1.42 COMMONDEPEND+=" ${qtwebkitdepend}"
300 scarabeus 1.34 ;;
301     optional)
302 wired 1.42 IUSE+=" webkit"
303     COMMONDEPEND+=" webkit? ( ${qtwebkitdepend} )"
304 scarabeus 1.34 ;;
305     *) ;;
306     esac
307     unset qtwebkitdepend
308    
309     # CppUnit dependencies
310     cppuintdepend="
311     dev-util/cppunit
312     "
313 scarabeus 1.22 case ${CPPUNIT_REQUIRED} in
314 zlin 1.4 always)
315 wired 1.42 DEPEND+=" ${cppuintdepend}"
316 scarabeus 1.22 ;;
317 zlin 1.4 optional)
318 wired 1.42 IUSE+=" test"
319     DEPEND+=" test? ( ${cppuintdepend} )"
320 scarabeus 1.22 ;;
321 scarabeus 1.34 *) ;;
322 zlin 1.4 esac
323 scarabeus 1.34 unset cppuintdepend
324    
325     # KDE dependencies
326 reavertm 1.65 # Qt accessibility classes are needed in various places, bug 325461
327 scarabeus 1.34 kdecommondepend="
328 reavertm 1.73 dev-lang/perl
329 scarabeus 1.47 >=x11-libs/qt-core-${QT_MINIMAL}:4[qt3support,ssl]
330 reavertm 1.64 >=x11-libs/qt-gui-${QT_MINIMAL}:4[accessibility,dbus]
331     >=x11-libs/qt-qt3support-${QT_MINIMAL}:4[accessibility,kde]
332 scarabeus 1.47 >=x11-libs/qt-script-${QT_MINIMAL}:4
333     >=x11-libs/qt-sql-${QT_MINIMAL}:4[qt3support]
334     >=x11-libs/qt-svg-${QT_MINIMAL}:4
335     >=x11-libs/qt-test-${QT_MINIMAL}:4
336 wired 1.42 !aqua? (
337     x11-libs/libXext
338     x11-libs/libXt
339     x11-libs/libXxf86vm
340     )
341 scarabeus 1.34 "
342 reavertm 1.61
343 scarabeus 1.34 if [[ ${PN} != kdelibs ]]; then
344 reavertm 1.73 kdecommondepend+=" $(add_kdebase_dep kdelibs)"
345     if [[ ${KDEBASE} = kdevelop ]]; then
346     if [[ ${PN} != kdevplatform ]]; then
347     # @ECLASS-VARIABLE: KDEVPLATFORM_REQUIRED
348     # @DESCRIPTION:
349     # Specifies whether kdevplatform is required. Possible values are 'always' (default) and 'never'.
350     # Applies to KDEBASE=kdevelop only.
351     KDEVPLATFORM_REQUIRED="${KDEVPLATFORM_REQUIRED:-always}"
352     case ${KDEVPLATFORM_REQUIRED} in
353     always)
354     kdecommondepend+="
355     >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION}
356     "
357     ;;
358     *) ;;
359     esac
360 reavertm 1.61 fi
361 ingmar 1.1 fi
362     fi
363 scarabeus 1.87
364 scarabeus 1.34 kdedepend="
365 reavertm 1.60 dev-util/automoc
366 scarabeus 1.34 dev-util/pkgconfig
367 scarabeus 1.54 !aqua? (
368 xarthisius 1.83 >=x11-libs/libXtst-1.1.0
369 scarabeus 1.54 x11-proto/xf86vidmodeproto
370     )
371 scarabeus 1.34 "
372 scarabeus 1.87
373 reavertm 1.73 kderdepend=""
374 reavertm 1.69
375 scarabeus 1.87 # all packages needs oxygen icons for basic iconset
376 dilfridge 1.82 if [[ ${PN} != oxygen-icons ]]; then
377     kderdepend+=" $(add_kdebase_dep oxygen-icons)"
378     fi
379    
380 abcd 1.90 # add a dependency over kde-l10n if EAPI4 or better is around
381     if [[ ${KDEBASE} != "kde-base" && -n ${KDE_LINGUAS} && ${EAPI:-0} != 3 ]]; then
382 scarabeus 1.87 for _lingua in ${KDE_LINGUAS}; do
383 scarabeus 1.89 # if our package has lignuas, pull in kde-l10n with selected lingua enabled,
384     # but only for selected ones.
385     # this can't be done on one line because if user doesn't use any localisation
386     # then he is probably not interested in kde-l10n at all.
387     kderdepend+="
388 scarabeus 1.91 linguas_${_lingua}? ( $(add_kdebase_dep kde-l10n "linguas_${_lingua}(+)") )
389 scarabeus 1.89 "
390 scarabeus 1.87 done
391 scarabeus 1.89 unset _lingua
392 scarabeus 1.87 fi
393    
394 reavertm 1.74 kdehandbookdepend="
395     app-text/docbook-xml-dtd:4.2
396     app-text/docbook-xsl-stylesheets
397     "
398     kdehandbookrdepend="
399     $(add_kdebase_dep kdelibs 'handbook')
400     "
401     case ${KDE_HANDBOOK} in
402     always)
403     kdedepend+=" ${kdehandbookdepend}"
404     [[ ${PN} != kdelibs ]] && kderdepend+=" ${kdehandbookrdepend}"
405     ;;
406     optional)
407     IUSE+=" +handbook"
408     kdedepend+=" handbook? ( ${kdehandbookdepend} )"
409     [[ ${PN} != kdelibs ]] && kderdepend+=" handbook? ( ${kdehandbookrdepend} )"
410     ;;
411     *) ;;
412     esac
413     unset kdehandbookdepend kdehandbookrdepend
414 reavertm 1.69
415 scarabeus 1.34 case ${KDE_REQUIRED} in
416     always)
417 wired 1.42 IUSE+=" aqua"
418 reavertm 1.73 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" ${kdecommondepend}"
419     [[ -n ${kdedepend} ]] && DEPEND+=" ${kdedepend}"
420     [[ -n ${kderdepend} ]] && RDEPEND+=" ${kderdepend}"
421 scarabeus 1.34 ;;
422     optional)
423 wired 1.42 IUSE+=" aqua kde"
424 reavertm 1.73 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" kde? ( ${kdecommondepend} )"
425     [[ -n ${kdedepend} ]] && DEPEND+=" kde? ( ${kdedepend} )"
426     [[ -n ${kderdepend} ]] && RDEPEND+=" kde? ( ${kderdepend} )"
427 scarabeus 1.34 ;;
428     *) ;;
429     esac
430 scarabeus 1.54
431 reavertm 1.73 unset kdecommondepend kdedepend kderdepend
432 scarabeus 1.34
433     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}"
434     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}"
435     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}"
436    
437     # Accumulate dependencies set by this eclass
438 wired 1.42 DEPEND+=" ${COMMONDEPEND}"
439     RDEPEND+=" ${COMMONDEPEND}"
440     unset COMMONDEPEND
441 ingmar 1.1
442 scarabeus 1.87 # Add experimental kdeenablefinal, masked by default
443 scarabeus 1.54 IUSE+=" kdeenablefinal"
444    
445 ingmar 1.1 # Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
446     # koffice ebuild, the URI should be set in the ebuild itself
447 scarabeus 1.87 _calculate_src_uri() {
448     debug-print-function ${FUNCNAME} "$@"
449    
450     local _kmname _kmname_pv
451    
452     # we calculate URI only for known KDEBASE modules
453     [[ -n ${KDEBASE} ]] || return
454    
455     # calculate tarball module name
456     if [[ -n ${KMNAME} ]]; then
457     # fixup kdebase-apps name
458     case ${KMNAME} in
459     kdebase-apps)
460     _kmname="kdebase" ;;
461     *)
462     _kmname="${KMNAME}" ;;
463     esac
464     else
465     _kmname=${PN}
466     fi
467     _kmname_pv="${_kmname}-${PV}"
468     case ${KDEBASE} in
469     kde-base)
470     case ${PV} in
471 abcd 1.90 4.[456].8[05] | 4.[456].9[023568])
472 scarabeus 1.87 # Unstable KDE SC releases
473     SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2"
474     # KDEPIM IS SPECIAL
475 abcd 1.90 [[ ${KMNAME} == "kdepim" || ${KMNAME} == "kdepim-runtime" ]] && SRC_URI="mirror://kde/unstable/kdepim/${PV}/${_kmname_pv}.tar.bz2"
476 scarabeus 1.87 ;;
477 dilfridge 1.88 4.4.[6789] | 4.4.1?*)
478 scarabeus 1.87 # Stable kdepim releases
479     SRC_URI="mirror://kde/stable/kdepim-${PV}/src/${_kmname_pv}.tar.bz2"
480     ;;
481     *)
482     # Stable KDE SC releases
483     SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2"
484     ;;
485     esac
486     ;;
487     koffice)
488     case ${PV} in
489     2.[1234].[6-9]*) SRC_URI="mirror://kde/unstable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
490     *) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
491     esac
492     ;;
493     kdevelop)
494     SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2"
495     ;;
496     esac
497     }
498    
499     _calculate_live_repo() {
500     debug-print-function ${FUNCNAME} "$@"
501    
502     SRC_URI=""
503     case ${KDE_SCM} in
504     svn)
505 reavertm 1.61 # Determine branch URL based on live type
506     local branch_prefix
507     case ${PV} in
508     9999*)
509     # trunk
510     branch_prefix="trunk/KDE"
511     ;;
512     *)
513     # branch
514     branch_prefix="branches/KDE/${SLOT}"
515     # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
516     # @DESCRIPTION
517     # Suffix appended to ESVN_PROJECT depending on fetched branch.
518     # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
519     ESVN_PROJECT_SUFFIX="-${PV}"
520     ;;
521     esac
522     # @ECLASS-VARIABLE: ESVN_MIRROR
523     # @DESCRIPTION:
524     # This variable allows easy overriding of default kde mirror service
525     # (anonsvn) with anything else you might want to use.
526     ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
527     # Split ebuild, or extragear stuff
528     if [[ -n ${KMNAME} ]]; then
529     ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
530     if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
531     KMMODULE="${PN}"
532     fi
533     # Split kde-base/ ebuilds: (they reside in trunk/KDE)
534     case ${KMNAME} in
535     kdebase-*)
536     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}"
537     ;;
538     kdelibs-*)
539     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
540     ;;
541     kdereview*)
542     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
543     ;;
544     kdesupport)
545     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
546     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
547     ;;
548     kde*)
549     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
550     ;;
551     extragear*|playground*)
552     # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
553     # build packages from same svn location.
554     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
555     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
556     ;;
557     koffice)
558     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
559     ;;
560     *)
561     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
562     ;;
563     esac
564     else
565     # kdelibs, kdepimlibs
566     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
567     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
568     fi
569     # @ECLASS-VARIABLE: ESVN_UP_FREQ
570     # @DESCRIPTION:
571     # This variable is used for specifying the timeout between svn synces
572     # for kde-base and koffice modules. Does not affect misc apps.
573     # Default value is 1 hour.
574     [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
575 scarabeus 1.87 ;;
576     git)
577     local _kmname
578     # @ECLASS-VARIABLE: EGIT_MIRROR
579     # @DESCRIPTION:
580     # This variable allows easy overriding of default kde mirror service
581     # (anongit) with anything else you might want to use.
582     EGIT_MIRROR=${EGIT_MIRROR:=git://anongit.kde.org}
583    
584     # @ECLASS-VARIABLE: EGIT_REPONAME
585     # @DESCRIPTION:
586     # This variable allows overriding of default repository
587     # name. Specify only if this differ from PN and KMNAME.
588     if [[ -n ${EGIT_REPONAME} ]]; then
589     # the repository and kmname different
590     _kmname=${EGIT_REPONAME}
591     elif [[ -n ${KMNAME} ]]; then
592     _kmname=${KMNAME}
593 scarabeus 1.22 else
594     _kmname=${PN}
595     fi
596 scarabeus 1.87
597     # default branching
598     case ${PV} in
599     9999*) ;;
600     *)
601     # set EGIT_BRANCH and EGIT_COMMIT to ${SLOT}
602     case ${_kmname} in
603     kdeplasma-addons | kdepim | kdepim-runtime | kdepimlibs)
604     EGIT_BRANCH="${SLOT}"
605 scarabeus 1.54 ;;
606 scarabeus 1.87 *) EGIT_BRANCH="KDE/${SLOT}" ;;
607 scarabeus 1.22 esac
608     ;;
609 scarabeus 1.87 esac
610    
611     EGIT_REPO_URI="${EGIT_MIRROR}/${_kmname}"
612    
613     debug-print "${FUNCNAME}: Repository: ${EGIT_REPO_URI}"
614     debug-print "${FUNCNAME}: Branch: ${EGIT_BRANCH}"
615     ;;
616     esac
617     }
618    
619     case ${BUILD_TYPE} in
620     live) _calculate_live_repo ;;
621     *) _calculate_src_uri ;;
622 scarabeus 1.22 esac
623 ingmar 1.1
624     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
625    
626     # @ECLASS-VARIABLE: PREFIX
627     # @DESCRIPTION:
628 scarabeus 1.34 # Set the installation PREFIX for non kde-base applications. It defaults to /usr.
629     # kde-base packages go into KDE4 installation directory (KDEDIR) by default.
630 wired 1.42 # No matter the PREFIX, package will be built against KDE installed in KDEDIR.
631 ingmar 1.1
632     # @FUNCTION: kde4-base_pkg_setup
633     # @DESCRIPTION:
634 scarabeus 1.34 # Do the basic kdeprefix KDEDIR settings and determine with which kde should
635     # optional applications link
636 ingmar 1.1 kde4-base_pkg_setup() {
637 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
638 ingmar 1.1
639 scarabeus 1.34 # QA ebuilds
640     [[ -z ${KDE_MINIMAL_VALID} ]] && ewarn "QA Notice: ignoring invalid KDE_MINIMAL (defaulting to ${KDE_MINIMAL})."
641    
642     # Don't set KDEHOME during compilation, it will cause access violations
643 jmbsvicetto 1.13 unset KDEHOME
644    
645 scarabeus 1.91 # Check if gcc compiler is fresh enough.
646     # In theory should be in pkg_pretend but we check it only for kdelibs there
647     # and for others we do just quick scan in pkg_setup because pkg_pretend
648     # executions consume quite some time.
649     [[ $(gcc-major-version) -lt 4 ]] || \
650     ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 3 ]] ) \
651     && die "Sorry, but gcc-4.3 and earlier wont work for KDE (see bug 354837)."
652    
653 scarabeus 1.34 if [[ ${KDEBASE} = kde-base ]]; then
654     if use kdeprefix; then
655 reavertm 1.61 KDEDIR=/usr/kde/${SLOT}
656 scarabeus 1.34 else
657 abcd 1.57 KDEDIR=/usr
658 scarabeus 1.34 fi
659 abcd 1.56 : ${PREFIX:=${KDEDIR}}
660 scarabeus 1.29 else
661 scarabeus 1.34 # Determine KDEDIR by loooking for the closest match with KDE_MINIMAL
662     KDEDIR=
663     local kde_minimal_met
664     for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do
665     [[ -z ${kde_minimal_met} ]] && [[ ${slot} = ${KDE_MINIMAL} ]] && kde_minimal_met=1
666     if [[ -n ${kde_minimal_met} ]] && has_version "kde-base/kdelibs:${slot}"; then
667     if has_version "kde-base/kdelibs:${slot}[kdeprefix]"; then
668 abcd 1.57 KDEDIR=/usr/kde/${slot}
669 scarabeus 1.34 else
670 abcd 1.57 KDEDIR=/usr
671 scarabeus 1.34 fi
672     break;
673     fi
674     done
675 scarabeus 1.37 unset slot
676 scarabeus 1.41
677     # Bail out if kdelibs required but not found
678     if [[ ${KDE_REQUIRED} = always ]] || { [[ ${KDE_REQUIRED} = optional ]] && use kde; }; then
679     [[ -z ${KDEDIR} ]] && die "Failed to determine KDEDIR!"
680     else
681 abcd 1.57 [[ -z ${KDEDIR} ]] && KDEDIR=/usr
682 scarabeus 1.41 fi
683    
684 abcd 1.57 : ${PREFIX:=/usr}
685 jmbsvicetto 1.13 fi
686 abcd 1.57 EKDEDIR=${EPREFIX}${KDEDIR}
687    
688 wired 1.42 # Point pkg-config path to KDE *.pc files
689 abcd 1.57 export PKG_CONFIG_PATH="${EKDEDIR}/$(get_libdir)/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}"
690 wired 1.42 # Point to correct QT plugins path
691 abcd 1.57 QT_PLUGIN_PATH="${EKDEDIR}/$(get_libdir)/kde4/plugins/"
692 jmbsvicetto 1.13
693 scarabeus 1.47 # Fix XDG collision with sandbox
694     export XDG_CONFIG_HOME="${T}"
695 zlin 1.4 }
696    
697     # @FUNCTION: kde4-base_src_unpack
698     # @DESCRIPTION:
699     # This function unpacks the source tarballs for KDE4 applications.
700 ingmar 1.1 kde4-base_src_unpack() {
701 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
702 ingmar 1.1
703 scarabeus 1.30 if [[ ${BUILD_TYPE} = live ]]; then
704 scarabeus 1.87 case ${KDE_SCM} in
705     svn)
706     migrate_store_dir
707     subversion_src_unpack
708     ;;
709     git)
710 scarabeus 1.91 git-2_src_unpack
711 scarabeus 1.87 ;;
712     esac
713 ingmar 1.1 else
714 scarabeus 1.54 unpack ${A}
715 ingmar 1.1 fi
716 scarabeus 1.22 }
717 ingmar 1.1
718 scarabeus 1.44 # @FUNCTION: kde4-base_src_prepare
719 scarabeus 1.22 # @DESCRIPTION:
720     # General pre-configure and pre-compile function for KDE4 applications.
721     # It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and
722 wired 1.42 # enable_selected_linguas() and enable_selected_doc_linguas()
723     # in kde4-functions.eclass(5) for further details.
724 scarabeus 1.22 kde4-base_src_prepare() {
725     debug-print-function ${FUNCNAME} "$@"
726 zlin 1.8
727 scarabeus 1.87 # enable handbook and linguas only when not using live ebuild
728    
729 zlin 1.8 # Only enable selected languages, used for KDE extragear apps.
730 scarabeus 1.30 if [[ -n ${KDE_LINGUAS} ]]; then
731 zlin 1.8 enable_selected_linguas
732     fi
733 ingmar 1.1
734 wired 1.42 # Enable/disable handbooks for kde4-base packages
735 scarabeus 1.44 # kde-l10n inherits kde4-base but is metpackage, so no check for doc
736     # kdelibs inherits kde4-base but handle installing the handbook itself
737 scarabeus 1.87 if ! has kde4-meta ${INHERITED} && has handbook ${IUSE//+}; then
738     if [[ ${KDEBASE} == kde-base ]]; then
739     if [[ ${PN} != kde-l10n && ${PN} != kdepim-l10n && ${PN} != kdelibs ]] && use !handbook; then
740     # documentation in kde4-functions
741     : ${KDE_DOC_DIRS:=doc}
742     local dir
743     for dir in ${KDE_DOC_DIRS}; do
744 abcd 1.90 sed -e "\!^[[:space:]]*add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
745     -e "\!^[[:space:]]*ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
746     -e "\!^[[:space:]]*macro_optional_add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
747     -e "\!^[[:space:]]*MACRO_OPTIONAL_ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
748 scarabeus 1.87 -i CMakeLists.txt || die "failed to comment out handbook"
749     done
750     fi
751     else
752     enable_selected_doc_linguas
753     fi
754 wired 1.42 fi
755    
756 reavertm 1.61 # SCM bootstrap
757     if [[ ${BUILD_TYPE} = live ]]; then
758 scarabeus 1.87 case ${KDE_SCM} in
759     svn) subversion_src_prepare ;;
760     esac
761 reavertm 1.61 fi
762 reavertm 1.58
763     # Apply patches
764 scarabeus 1.22 base_src_prepare
765 scarabeus 1.20
766 scarabeus 1.22 # Save library dependencies
767 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
768 scarabeus 1.22 save_library_dependencies
769     fi
770 scarabeus 1.20
771 scarabeus 1.22 # Inject library dependencies
772 scarabeus 1.30 if [[ -n ${KMLOADLIBS} ]] ; then
773 scarabeus 1.22 load_library_dependencies
774 jmbsvicetto 1.13 fi
775 dilfridge 1.76
776 alexxy 1.78 # Replace KDE4Workspace library targets
777     find "${S}" -name CMakeLists.txt \
778     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_TASKMANAGER_(LIBRARY|LIBS)\}/taskmanager/g' {} + \
779     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KWORKSPACE_(LIBRARY|LIBS)\}/kworkspace/g' {} + \
780     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_SOLIDCONTROLIFACES_(LIBRARY|LIBS)\}/solidcontrolifaces/g' {} + \
781     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_SOLIDCONTROL_(LIBRARY|LIBS)\}/solidcontrol/g' {} + \
782     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_PROCESSUI_(LIBRARY|LIBS)\}/processui/g' {} + \
783     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_LSOFUI_(LIBRARY|LIBS)\}/lsofui/g' {} + \
784     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_PLASMACLOCK_(LIBRARY|LIBS)\}/plasmaclock/g' {} + \
785     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_NEPOMUKQUERYCLIENT_(LIBRARY|LIBS)\}/nepomukqueryclient/g' {} + \
786     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_NEPOMUKQUERY_(LIBRARY|LIBS)\}/nepomukquery/g' {} + \
787     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KSCREENSAVER_(LIBRARY|LIBS)\}/kscreensaver/g' {} + \
788     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_WEATHERION_(LIBRARY|LIBS)\}/weather_ion/g' {} + \
789     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KWINEFFECTS_(LIBRARY|LIBS)\}/kwineffects/g' {} + \
790     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KDECORATIONS_(LIBRARY|LIBS)\}/kdecorations/g' {} + \
791     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KSGRD_(LIBRARY|LIBS)\}/ksgrd/g' {} + \
792     -exec sed -i -r -e 's/\$\{KDE4WORKSPACE_KEPHAL_(LIBRARY|LIBS)\}/kephal/g' {} + \
793     || die 'failed to replace KDE4Workspace library targets'
794    
795 dilfridge 1.77 # Hack for manuals relying on outdated DTD, only outside kde-base/koffice/...
796 alexxy 1.78 if [[ -z ${KDEBASE} ]]; then
797 dilfridge 1.77 find "${S}" -name "*.docbook" \
798     -exec sed -i -r \
799     -e 's:-//KDE//DTD DocBook XML V4\.1(\..)?-Based Variant V1\.[01]//EN:-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN:g' {} + \
800     || die 'failed to fix DocBook variant version'
801     fi
802 ingmar 1.1 }
803    
804     # @FUNCTION: kde4-base_src_configure
805     # @DESCRIPTION:
806     # Function for configuring the build of KDE4 applications.
807     kde4-base_src_configure() {
808     debug-print-function ${FUNCNAME} "$@"
809    
810     # Build tests in src_test only, where we override this value
811 abcd 1.56 local cmakeargs=(-DKDE4_BUILD_TESTS=OFF)
812 ingmar 1.1
813 scarabeus 1.54 if has kdeenablefinal ${IUSE//+} && use kdeenablefinal; then
814 abcd 1.56 cmakeargs+=(-DKDE4_ENABLE_FINAL=ON)
815 scarabeus 1.54 fi
816    
817 reavertm 1.68 if has debug ${IUSE//+} && use debug; then
818     # Set "real" debug mode
819     CMAKE_BUILD_TYPE="Debugfull"
820     else
821     # Handle common release builds
822     append-cppflags -DQT_NO_DEBUG
823 scarabeus 1.38 fi
824    
825 ingmar 1.1 # Set distribution name
826 abcd 1.56 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo)
827 ingmar 1.1
828     # Here we set the install prefix
829 reavertm 1.61 tc-is-cross-compiler || cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}")
830 jmbsvicetto 1.13
831 wired 1.42 # Use colors
832 ingmar 1.1 QTEST_COLORED=1
833 jmbsvicetto 1.13
834 scarabeus 1.34 # Shadow existing /usr installations
835     unset KDEDIRS
836    
837 scarabeus 1.45 # Handle kdeprefix-ed KDE
838 abcd 1.57 if [[ ${KDEDIR} != /usr ]]; then
839 scarabeus 1.37 # Override some environment variables - only when kdeprefix is different,
840     # to not break ccache/distcc
841 abcd 1.57 PATH="${EKDEDIR}/bin:${PATH}"
842 reavertm 1.61
843     # Append library search path
844     append-ldflags -L"${EKDEDIR}/$(get_libdir)"
845 scarabeus 1.37
846     # Append full RPATH
847 abcd 1.56 cmakeargs+=(-DCMAKE_SKIP_RPATH=OFF)
848 scarabeus 1.34
849 scarabeus 1.45 # Set cmake prefixes to allow buildsystem to locate valid KDE installation
850 scarabeus 1.34 # when more are present
851 abcd 1.57 cmakeargs+=(-DCMAKE_SYSTEM_PREFIX_PATH="${EKDEDIR}")
852 scarabeus 1.45 fi
853    
854 reavertm 1.61 #qmake -query QT_INSTALL_LIBS unavailable when cross-compiling
855     tc-is-cross-compiler && cmakeargs+=(-DQT_LIBRARY_DIR=${ROOT}/usr/lib/qt4)
856     #kde-config -path data unavailable when cross-compiling
857     tc-is-cross-compiler && cmakeargs+=(-DKDE4_DATA_DIR=${ROOT}/usr/share/apps/)
858    
859 scarabeus 1.45 # Handle kdeprefix in application itself
860     if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then
861 scarabeus 1.34 # If prefix is /usr, sysconf needs to be /etc, not /usr/etc
862 abcd 1.56 cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc)
863     fi
864    
865 abcd 1.57 if [[ $(declare -p mycmakeargs 2>&-) != "declare -a mycmakeargs="* ]]; then
866 abcd 1.56 mycmakeargs=(${mycmakeargs})
867 scarabeus 1.22 fi
868    
869 abcd 1.56 mycmakeargs=("${cmakeargs[@]}" "${mycmakeargs[@]}")
870 scarabeus 1.34
871     cmake-utils_src_configure
872 scarabeus 1.22 }
873    
874     # @FUNCTION: kde4-base_src_compile
875     # @DESCRIPTION:
876     # General function for compiling KDE4 applications.
877     kde4-base_src_compile() {
878     debug-print-function ${FUNCNAME} "$@"
879    
880 wired 1.42 cmake-utils_src_compile "$@"
881 ingmar 1.1 }
882    
883     # @FUNCTION: kde4-base_src_test
884     # @DESCRIPTION:
885     # Function for testing KDE4 applications.
886     kde4-base_src_test() {
887     debug-print-function ${FUNCNAME} "$@"
888    
889     # Override this value, set in kde4-base_src_configure()
890 abcd 1.56 mycmakeargs+=(-DKDE4_BUILD_TESTS=ON)
891 scarabeus 1.30 cmake-utils_src_configure
892     kde4-base_src_compile
893 ingmar 1.1
894 dilfridge 1.85 # When run as normal user during ebuild development with the ebuild command, the
895     # kde tests tend to access the session DBUS. This however is not possible in a real
896     # emerge or on the tinderbox.
897     # > make sure it does not happen, so bad tests can be recognized and disabled
898     unset DBUS_SESSION_BUS_ADDRESS
899    
900     if [[ ${VIRTUALX_REQUIRED} == always || ${VIRTUALX_REQUIRED} == test ]]; then
901     # check for sanity if anyone already redefined VIRTUALX_COMMAND from the default
902 scarabeus 1.87 if [[ ${VIRTUALX_COMMAND} != emake ]]; then
903 alexxy 1.78 # surprise- we are already INSIDE virtualmake!!!
904 dilfridge 1.85 debug-print "QA Notice: This version of kde4-base.eclass includes the virtualx functionality."
905     debug-print " You may NOT set VIRTUALX_COMMAND or call virtualmake from the ebuild."
906     debug-print " Setting VIRTUALX_REQUIRED is completely sufficient. See the"
907     debug-print " kde4-base.eclass docs for details... Applying workaround."
908 alexxy 1.78 cmake-utils_src_test
909     else
910 dilfridge 1.85 VIRTUALX_COMMAND="cmake-utils_src_test" virtualmake
911 alexxy 1.78 fi
912     else
913     cmake-utils_src_test
914     fi
915 ingmar 1.1 }
916    
917     # @FUNCTION: kde4-base_src_install
918     # @DESCRIPTION:
919     # Function for installing KDE4 applications.
920     kde4-base_src_install() {
921     debug-print-function ${FUNCNAME} "$@"
922    
923 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
924 scarabeus 1.22 install_library_dependencies
925     fi
926    
927 reavertm 1.61 # Install common documentation of KDE4 applications
928 ingmar 1.1 local doc
929 reavertm 1.61 if ! has kde4-meta ${INHERITED}; then
930 reavertm 1.62 for doc in "${S}"/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
931 scarabeus 1.87 [[ -f ${doc} && -s ${doc} ]] && dodoc "${doc}"
932 reavertm 1.62 done
933     for doc in "${S}"/*/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
934 scarabeus 1.87 [[ -f ${doc} && -s ${doc} ]] && newdoc "${doc}" "$(basename $(dirname ${doc})).$(basename ${doc})"
935 ingmar 1.1 done
936     fi
937 reavertm 1.61
938     cmake-utils_src_install
939 abcd 1.90
940     # In EAPI 4+, we don't want ${PREFIX}/share/doc/HTML to be compressed,
941     # because then khelpcenter can't find the docs
942     [[ ${EAPI:-0} != 3 && -d ${ED}/${PREFIX}/share/doc/HTML ]] &&
943     docompress -x ${PREFIX}/share/doc/HTML
944 ingmar 1.1 }
945    
946 scarabeus 1.87 # @FUNCTION: kde4-base_pkg_preinst
947     # @DESCRIPTION:
948     # Function storing icon caches
949     kde4-base_pkg_preinst() {
950     debug-print-function ${FUNCNAME} "$@"
951    
952     gnome2_icon_savelist
953     }
954    
955 ingmar 1.1 # @FUNCTION: kde4-base_pkg_postinst
956     # @DESCRIPTION:
957     # Function to rebuild the KDE System Configuration Cache after an application has been installed.
958     kde4-base_pkg_postinst() {
959 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
960    
961 scarabeus 1.87 gnome2_icon_cache_update
962     fdo-mime_desktop_database_update
963     fdo-mime_mime_database_update
964 ingmar 1.1 buildsycoca
965 scarabeus 1.36
966 scarabeus 1.87 if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
967     if has kdeenablefinal ${IUSE//+} && use kdeenablefinal; then
968     echo
969     ewarn "WARNING! you have kdeenable final useflag enabled."
970     ewarn "This useflag needs to be enabled on ALL kde using packages and"
971     ewarn "is known to cause issues."
972     ewarn "You are using this setup at your own risk and the kde team does not"
973     ewarn "take responsibilities for dead kittens."
974     echo
975     fi
976     if [[ ${BUILD_TYPE} = live ]]; then
977     echo
978     einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}"
979     einfo "Use it at your own risk."
980     einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
981     echo
982     elif [[ ${BUILD_TYPE} != live ]] && has kdeprefix ${IUSE//+} && use kdeprefix; then
983     # warning about kdeprefix for non-live users
984 reavertm 1.58 echo
985 scarabeus 1.87 ewarn "WARNING! You have the kdeprefix useflag enabled."
986     ewarn "This setting is strongly discouraged and might lead to potential trouble"
987     ewarn "with KDE update strategies."
988     ewarn "You are using this setup at your own risk and the kde team does not"
989     ewarn "take responsibilities for dead kittens."
990     echo
991     fi
992     # for all 3rd party soft tell user that he SHOULD install kdebase-startkde or kdebase-runtime-meta
993     if [[ ${KDEBASE} != kde-base ]] && \
994     ! has_version 'kde-base/kdebase-runtime-meta' && \
995     ! has_version 'kde-base/kdebase-startkde'; then
996     if [[ ${KDE_REQUIRED} == always ]] || ( [[ ${KDE_REQUIRED} == optional ]] && use kde ); then
997     echo
998     ewarn "WARNING! Your system configuration contains neither \"kde-base/kdebase-runtime-meta\""
999     ewarn "nor \"kde-base/kdebase-startkde\". You need one of above."
1000     ewarn "With this setting you are unsupported by KDE team."
1001     ewarn "All missing features you report for misc packages will be probably ignored or closed as INVALID."
1002     fi
1003 reavertm 1.58 fi
1004     fi
1005 ingmar 1.1 }
1006    
1007     # @FUNCTION: kde4-base_pkg_postrm
1008     # @DESCRIPTION:
1009     # Function to rebuild the KDE System Configuration Cache after an application has been removed.
1010     kde4-base_pkg_postrm() {
1011 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
1012    
1013 scarabeus 1.87 gnome2_icon_cache_update
1014     fdo-mime_desktop_database_update
1015     fdo-mime_mime_database_update
1016 ingmar 1.1 buildsycoca
1017     }

  ViewVC Help
Powered by ViewVC 1.1.20