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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.95 - (hide annotations) (download)
Mon Jun 6 18:42:55 2011 UTC (3 years, 4 months ago) by abcd
Branch: MAIN
Changes since 1.94: +15 -1 lines
Goodbye kdeprefix (part 1 -- die on +kdeprefix)

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

  ViewVC Help
Powered by ViewVC 1.1.20