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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.93 - (hide annotations) (download)
Mon May 23 22:56:36 2011 UTC (3 years, 3 months ago) by abcd
Branch: MAIN
Changes since 1.92: +10 -10 lines
Always show kdeprefix warning with USE=kdeprefix; make warning scarier

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

  ViewVC Help
Powered by ViewVC 1.1.20