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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.19 - (hide annotations) (download)
Sun Dec 7 11:39:32 2008 UTC (5 years, 8 months ago) by jmbsvicetto
Branch: MAIN
Changes since 1.18: +12 -1 lines
Added kdebase-data to the eclass deps.

1 ingmar 1.1 # Copyright 2007-2008 Gentoo Foundation
2     # Distributed under the terms of the GNU General Public License v2
3 jmbsvicetto 1.19 # $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.18 2008/11/22 01:23:31 jmbsvicetto 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     # The kde4-base.eclass provides support for building KDE4 monolithic ebuilds
11     # and KDE4 applications.
12     #
13     # NOTE: This eclass uses the SLOT dependencies from EAPI="1" or compatible,
14 jmbsvicetto 1.13 # and use deps from EAPI="2", hence you must define EAPI="2" in the ebuild,
15     # before inheriting any eclasses.
16 ingmar 1.1
17 jmbsvicetto 1.13 inherit base cmake-utils eutils kde4-functions multilib
18 ingmar 1.1
19 jmbsvicetto 1.13 case "${EAPI}" in
20     2)
21     EXPORT_FUNCTIONS pkg_setup src_unpack src_configure src_compile src_test src_install pkg_postinst pkg_postrm
22     ;;
23     *)
24     EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_test src_install pkg_postinst pkg_postrm
25     ;;
26     esac
27 ingmar 1.1
28 jmbsvicetto 1.13 # Set the qt dependencies
29 philantrop 1.7 kde4-base_set_qt_dependencies() {
30 ingmar 1.11 local qt qtcore qtgui qt3support qtdepend qtopengldepend
31 zlin 1.4
32 philantrop 1.7 # use dependencies
33     case "${EAPI}" in
34 jmbsvicetto 1.13 2 | 2_pre3 | 2_pre2 | 2_pre1)
35    
36     qt="["
37 philantrop 1.7 case "${OPENGL_REQUIRED}" in
38     always)
39 jmbsvicetto 1.13 qt="${qt}opengl,"
40 philantrop 1.7 ;;
41     optional)
42 jmbsvicetto 1.13 qt="${qt}opengl?,"
43 philantrop 1.7 ;;
44     esac
45 jmbsvicetto 1.13 qt="${qt}accessibility,dbus,gif,jpeg,png,qt3support,ssl,zlib]"
46     qtcore="[qt3support,ssl]"
47     qtgui="[accessibility,dbus]"
48     qt3support="[accessibility]"
49 philantrop 1.7 ;;
50     esac
51    
52     # split qt
53     qtdepend="
54     x11-libs/qt-core:4${qtcore}
55     x11-libs/qt-gui:4${qtgui}
56     x11-libs/qt-qt3support:4${qt3support}
57 ingmar 1.11 x11-libs/qt-script:4
58     x11-libs/qt-svg:4
59     x11-libs/qt-test:4"
60     qtopengldepend="x11-libs/qt-opengl:4"
61 philantrop 1.7
62     # allow monolithic qt for PV < 4.1
63     case "${PV}" in
64 jmbsvicetto 1.13 scm|9999*|4.1*|4.0.9*|4.0.8*) : ;;
65 philantrop 1.7 *)
66     qtdepend="|| ( ( ${qtdepend} ) >=x11-libs/qt-4.3.3:4${qt} )"
67     qtopengldepend="|| ( ${qtopengldepend} >=x11-libs/qt-4.3.3:4 )"
68     ;;
69     esac
70    
71     # opengl dependencies
72     case "${OPENGL_REQUIRED}" in
73     always)
74     qtdepend="${qtdepend}
75     ${qtopengldepend}"
76     ;;
77     optional)
78     IUSE="${IUSE} opengl"
79     qtdepend="${qtdepend}
80     opengl? ( ${qtopengldepend} )"
81     ;;
82     *)
83     OPENGL_REQUIRED="never"
84     ;;
85     esac
86 zlin 1.4
87 jmbsvicetto 1.18 COMMONDEPEND="${COMMONDEPEND} ${qtdepend} !x11-libs/qt-phonon"
88 philantrop 1.7 }
89     kde4-base_set_qt_dependencies
90 zlin 1.4
91 jmbsvicetto 1.13 # Set the cmake dependencies
92     case "${PV}" in
93     9999*)
94     CMAKEDEPEND=">=dev-util/cmake-2.6"
95     ;;
96     *)
97     CMAKEDEPEND=">=dev-util/cmake-2.4.7-r1"
98     ;;
99     esac
100    
101     # Set the common dependencies
102     DEPEND="${DEPEND} ${COMMONDEPEND} ${CMAKEDEPEND}
103 ingmar 1.1 dev-util/pkgconfig
104 jmbsvicetto 1.14 kde-base/automoc
105 ingmar 1.1 x11-libs/libXt
106     x11-proto/xf86vidmodeproto"
107     RDEPEND="${RDEPEND} ${COMMONDEPEND}"
108    
109 jmbsvicetto 1.13 # Add the kdeprefix use flag
110     case "${EAPI}" in
111     2 | 2_pre3 | 2_pre2 | 2_pre1)
112     IUSE="${IUSE} kdeprefix"
113     ;;
114     esac
115    
116 philantrop 1.7 # @ECLASS-VARIABLE: OPENGL_REQUIRED
117     # @DESCRIPTION:
118     # Is qt-opengl required? Possible values are 'always', 'optional' and 'never'.
119     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
120     OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}"
121    
122 zlin 1.4 # @ECLASS-VARIABLE: CPPUNIT_REQUIRED
123     # @DESCRIPTION:
124     # Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'.
125     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
126     CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}"
127    
128     case "${CPPUNIT_REQUIRED}" in
129     always)
130     DEPEND="${DEPEND} dev-util/cppunit"
131     ;;
132     optional)
133     IUSE="${IUSE} test"
134 ingmar 1.1 DEPEND="${DEPEND}
135     test? ( dev-util/cppunit )"
136 zlin 1.4 ;;
137     *)
138     CPPUNIT_REQUIRED="never"
139     ;;
140     esac
141 ingmar 1.1
142     # @ECLASS-VARIABLE: NEED_KDE
143     # @DESCRIPTION:
144     # This variable sets the version of KDE4 which will be used by the eclass.
145     # This variable must be set by the ebuild, for all categories except for "kde-base".
146     # For kde-base packages, if it is not set by the ebuild,
147     # it's assumed that the required KDE4 version is the latest, non-live, available.
148     #
149     # @CODE
150     # Acceptable values are:
151     # - latest - Use latest version in the portage tree
152     # Default for kde-base ebuilds. Banned for ebuilds not part of kde or koffice.
153     # - svn - Use svn release (live ebuilds)
154     # - :SLOT - Use any version in the SLOT specified in the NEED_KDE value.
155     # - VERSION_NUMBER - Use the minimum KDE4 version specified in the NEED_KDE value.
156     # - VERSION_NUMBER:SLOT - Use the minimum KDE4 version and the SLOT specified in the NEED_KDE value.
157     # - none - Let the ebuild handle SLOT, kde dependencies, KDEDIR, ...
158     # @CODE
159     #
160     # Note: There is no default NEED_KDE for ebuilds not in kde-base or part of
161     # koffice, so you must set it explicitly in the ebuild, in all other cases.
162     if [[ -z ${NEED_KDE} ]]; then
163     if [[ -n ${KDEBASE} ]]; then
164     NEED_KDE="latest"
165     else
166     die "kde4-base.eclass inherited but NEED_KDE not defined - broken ebuild"
167     fi
168     fi
169     export NEED_KDE
170    
171     case ${NEED_KDE} in
172     latest)
173     # Should only be used by 'kde-base'-ebuilds
174     if [[ "${KDEBASE}" == "kde-base" ]]; then
175     case ${PV} in
176 jmbsvicetto 1.13 4.1*| 4.0.9* | 4.0.8*)
177     _kdedir="4.1"
178     _pv="-${PV}:4.1" ;;
179     4.0*)
180     _kdedir="4.0"
181     _pv="-${PV}:kde-4" ;;
182     3.9*)
183     _kdedir="3.9"
184     _pv="-${PV}:kde-4" ;;
185     *)
186     die "NEED_KDE=latest not supported for PV=${PV}" ;;
187 ingmar 1.1 esac
188     _operator=">="
189     else
190 jmbsvicetto 1.13 case ${PV} in
191     4.1 | 4.0.9* | 4.0.8*) _kdedir="4.1" ;;
192     4.0*) _kdedir="4.0" ;;
193     3.9*) _kdedir="3.9" ;;
194     *) die "NEED_KDE=latest not supported for PV=${PV}" ;;
195     esac
196 ingmar 1.1 fi
197     ;;
198 jmbsvicetto 1.13
199     # NEED_KDE=":${SLOT}"
200     :kde-svn)
201 ingmar 1.1 _kdedir="svn"
202 jmbsvicetto 1.13 _pv="-${NEED_KDE}"
203 ingmar 1.1 export NEED_KDE="svn"
204     ;;
205 jmbsvicetto 1.13 :4.1)
206     _kdedir="4.1"
207     _pv="${NEED_KDE}"
208     ;;
209     :kde-4)
210     _kdedir="4.0"
211     _pv="${NEED_KDE}"
212     ;;
213    
214     # NEED_KDE="${PV}:${SLOT}"
215 ingmar 1.1 *:kde-svn)
216     _kdedir="svn"
217     _operator=">="
218     _pv="-${NEED_KDE}"
219     export NEED_KDE="svn"
220     ;;
221 jmbsvicetto 1.13 *:4.1)
222     _kdedir="4.1"
223     _operator=">="
224     _pv="-${NEED_KDE}"
225 ingmar 1.1 ;;
226 jmbsvicetto 1.13 *:kde-4)
227 ingmar 1.1 _kdedir="4.0"
228 jmbsvicetto 1.13 _operator=">="
229     _pv="-${NEED_KDE}"
230     ;;
231    
232     # NEED_KDE="${PV}"
233     scm|svn|9999*)
234     _kdedir="svn"
235     _operator=">="
236     _pv="-${NEED_KDE}:kde-svn"
237     export NEED_KDE="svn"
238     ;;
239     4.1 | 4.0.9* | 4.0.8*)
240     _kdedir="4.1"
241     _operator=">="
242     _pv="-${NEED_KDE}:4.1"
243 ingmar 1.1 ;;
244 jmbsvicetto 1.13 4.0* | 4)
245 ingmar 1.1 _kdedir="4.0"
246     _operator=">="
247 jmbsvicetto 1.13 _pv="-${NEED_KDE}:kde-4"
248 ingmar 1.1 ;;
249     3.9*)
250     _kdedir="3.9"
251     _operator=">="
252     _pv="-${NEED_KDE}:kde-4"
253     ;;
254 jmbsvicetto 1.13
255     # The ebuild handles dependencies, KDEDIR, SLOT.
256     none)
257     :
258 ingmar 1.1 ;;
259 jmbsvicetto 1.13
260     *)
261     die "NEED_KDE=${NEED_KDE} currently not supported."
262 ingmar 1.1 ;;
263     esac
264    
265     if [[ ${NEED_KDE} != none ]]; then
266    
267 jmbsvicetto 1.13 #Set the SLOT
268 ingmar 1.1 if [[ -n ${KDEBASE} ]]; then
269     if [[ ${NEED_KDE} = svn ]]; then
270     SLOT="kde-svn"
271     else
272 jmbsvicetto 1.13 case ${PV} in
273     4.1* | 4.0.9* | 4.0.8*) SLOT="4.1" ;;
274     *) SLOT="kde-4" ;;
275     esac
276 ingmar 1.1 fi
277     fi
278    
279 jmbsvicetto 1.13 # Block install of other SLOTS unless kdeprefix
280     case "${EAPI}" in
281     2 | 2_pre3 | 2_pre2 | 2_pre1)
282     for KDE_SLOT in ${KDE_SLOTS[@]}; do
283     # block non kdeprefix ${PN} on other slots
284     if [[ ${SLOT} != ${KDE_SLOT} ]]; then
285     DEPEND="${DEPEND}
286     !kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] )"
287     RDEPEND="${RDEPEND}
288     !kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] )"
289     fi
290     done
291     ;;
292     esac
293    
294 jmbsvicetto 1.19 # Adding kdelibs, kdepimlibs and kdebase-data deps to all other packages.
295 ingmar 1.1 # We only need to add the dependencies if ${PN} is not "kdelibs" or "kdepimlibs"
296     if [[ ${PN} != "kdelibs" ]]; then
297 jmbsvicetto 1.13 case "${EAPI}" in
298     2 | 2_pre3 | 2_pre2 | 2_pre1)
299     DEPEND="${DEPEND} ${_operator}kde-base/kdelibs${_pv}[kdeprefix=]"
300     RDEPEND="${RDEPEND} ${_operator}kde-base/kdelibs${_pv}[kdeprefix=]"
301     ;;
302     *)
303     DEPEND="${DEPEND} ${_operator}kde-base/kdelibs${_pv}"
304     RDEPEND="${RDEPEND} ${_operator}kde-base/kdelibs${_pv}"
305     ;;
306     esac
307 ingmar 1.1 if [[ ${PN} != "kdepimlibs" ]]; then
308 jmbsvicetto 1.13 case "${EAPI}" in
309     2 | 2_pre3 | 2_pre2 | 2_pre1)
310     DEPEND="${DEPEND} ${_operator}kde-base/kdepimlibs${_pv}[kdeprefix=]"
311     RDEPEND="${RDEPEND} ${_operator}kde-base/kdepimlibs${_pv}[kdeprefix=]"
312     ;;
313     *)
314     DEPEND="${DEPEND} ${_operator}kde-base/kdepimlibs${_pv}"
315     RDEPEND="${RDEPEND} ${_operator}kde-base/kdepimlibs${_pv}"
316 jmbsvicetto 1.19 esac
317     if [[ ${PN} != "kdebase-data" ]]; then
318     case "${EAPI}" in
319     2)
320     RDEPEND="${RDEPEND} ${_operator}kde-base/kdebase-data${_pv}[kdeprefix=]"
321     ;;
322     *)
323     RDEPEND="${RDEPEND} ${_operator}kde-base/kdebase-data${_pv}"
324     ;;
325 jmbsvicetto 1.13 esac
326 jmbsvicetto 1.19 fi
327 ingmar 1.1 fi
328     fi
329    
330 jmbsvicetto 1.13 unset _operator _pv
331 ingmar 1.1 fi
332    
333     # Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
334     # koffice ebuild, the URI should be set in the ebuild itself
335     if [[ -n ${KDEBASE} ]]; then
336     if [[ -n ${KMNAME} ]]; then
337     _kmname=${KMNAME}
338     else
339     _kmname=${PN}
340     fi
341     _kmname_pv="${_kmname}-${PV}"
342     if [[ ${NEED_KDE} != "svn" ]]; then
343     case ${KDEBASE} in
344     kde-base)
345     case ${PV} in
346 jmbsvicetto 1.13 4.0.9* | 4.0.8*)
347     SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
348     *) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2";;
349 ingmar 1.1 esac
350     ;;
351     koffice)
352     SRC_URI="mirror://kde/unstable/${_kmname_pv}/src/${_kmname_pv}.tar.bz2"
353     ;;
354     esac
355     fi
356     unset _kmname _kmname_pv
357     fi
358    
359     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
360    
361     # @ECLASS-VARIABLE: PREFIX
362     # @DESCRIPTION:
363     # Set the installation PREFIX. All kde-base ebuilds go into the KDE4 installation directory.
364     # Applications installed by the other ebuilds go into /usr/ by default, this value
365     # can be superseded by defining PREFIX before inheriting kde4-base.
366 jmbsvicetto 1.13 # This value is set on pkg_setup
367     PREFIX=""
368 ingmar 1.1
369 jmbsvicetto 1.13 debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SLOT ${SLOT} - NEED_KDE ${NEED_KDE}"
370 ingmar 1.1
371     # @FUNCTION: kde4-base_pkg_setup
372     # @DESCRIPTION:
373     # Adds flags needed by all of KDE 4 to $QT4_BUILT_WITH_USE_CHECK. Uses
374     # kde4-functions_check_use from kde4-functions.eclass to print appropriate
375     # errors and die if any required flags listed in $QT4_BUILT_WITH_USE_CHECK or
376     # $KDE4_BUILT_WITH_USE_CHECK are missing.
377     kde4-base_pkg_setup() {
378     debug-print-function $FUNCNAME "$@"
379    
380 jmbsvicetto 1.13 # Don't set KDEHOME during compile, it will cause access violations
381     unset KDEHOME
382    
383     if [[ ${NEED_KDE} != none ]]; then
384    
385     # Set PREFIX
386     case "${EAPI}" in
387     2 | 2_pre3 | 2_pre2 | 2_pre1)
388     if use kdeprefix; then
389     KDEDIR="/usr/kde/${_kdedir}"
390     KDEDIRS="/usr:/usr/local:${KDEDIR}"
391     else
392     KDEDIR="/usr"
393     KDEDIRS="/usr:/usr/local"
394     fi
395     ;;
396     *)
397     KDEDIR="/usr"
398     KDEDIRS="/usr:/usr/local"
399     ;;
400     esac
401     fi
402 jmbsvicetto 1.15
403     # Set the prefix based on KDEDIR
404     # Make it a consequence of kdeprefix
405     PREFIX=${KDEDIR}
406 jmbsvicetto 1.13
407     unset _kdedir
408    
409 philantrop 1.7 case "${EAPI}" in
410 jmbsvicetto 1.13 2 | 2_pre3 | 2_pre2 | 2_pre1)
411 ingmar 1.11 [[ -n ${QT4_BUILT_WITH_USE_CHECK} || -n ${KDE4_BUILT_WITH_USE_CHECK[@]} ]] && \
412 philantrop 1.7 die "built_with_use illegal in this EAPI!"
413     ;;
414     *)
415 ingmar 1.11 # Make KDE4_BUILT_WITH_USE_CHECK an array if it isn't already
416     local line kde4_built_with_use_check=()
417     if [[ -n ${KDE4_BUILT_WITH_USE_CHECK[@]} && $(declare -p KDE4_BUILT_WITH_USE_CHECK) != 'declare -a '* ]]; then
418     while read line; do
419     [[ -z ${line} ]] && continue
420     kde4_built_with_use_check+=("${line}")
421     done <<< "${KDE4_BUILT_WITH_USE_CHECK}"
422 zlin 1.12 KDE4_BUILT_WITH_USE_CHECK=("${kde4_built_with_use_check[@]}")
423 ingmar 1.11 fi
424    
425 philantrop 1.7 # KDE4 applications require qt4 compiled with USE="accessibility dbus gif jpeg png qt3support ssl zlib".
426     if has_version '<x11-libs/qt-4.4_alpha:4'; then
427     QT4_BUILT_WITH_USE_CHECK="${QT4_BUILT_WITH_USE_CHECK} accessibility dbus gif jpeg png qt3support ssl zlib"
428 zlin 1.4 else
429 ingmar 1.11 KDE4_BUILT_WITH_USE_CHECK=("${KDE4_BUILT_WITH_USE_CHECK[@]}"
430     "x11-libs/qt-core qt3support ssl"
431     "x11-libs/qt-gui accessibility dbus"
432     "x11-libs/qt-qt3support accessibility")
433 zlin 1.4 fi
434 ingmar 1.1
435 philantrop 1.7 if has opengl ${IUSE//+} && use opengl || [[ ${OPENGL_REQUIRED} == always ]]; then
436     if has_version '<x11-libs/qt-4.4.0_alpha:4'; then
437     QT4_BUILT_WITH_USE_CHECK="${QT4_BUILT_WITH_USE_CHECK} opengl"
438     fi
439 zlin 1.4 fi
440 philantrop 1.7 kde4-functions_check_use
441     ;;
442     esac
443 ingmar 1.1 }
444    
445 zlin 1.4 # @FUNCTION: kde4-base_apply_patches
446 ingmar 1.1 # @DESCRIPTION:
447 zlin 1.4 # This function applies patches.
448 ingmar 1.1 #
449     # If the directory ${WORKDIR}/patches/ exists, we apply all patches in that
450     # directory, provided they follow this format:
451     # @CODE
452     # - Monolithic ebuilds, (from kde-base)
453     # - $CATEGORY=kde-base:
454     # Apply ${CHILD_EBUILD_NAME}-${SLOT}-*{diff,patch}
455     # - $CATEGORY=!kde-base:
456     # Apply ${CHILD_EBUILD_NAME}-${PV}-*{diff,patch}
457     # - Split ebuilds:
458     # - $CATEGORY=kde-base:
459     # Apply ${PN}-${SLOT}-*{diff,patch}
460     # - $CATEGORY!=kde-base:
461     # Apply ${PN}-${PV}-*{diff,patch}
462     # @CODE
463     #
464 zlin 1.8 # If ${PATCHES} is non-zero all patches in it get applied. If there is more
465     # than one patch please make ${PATCHES} an array for proper quoting.
466 zlin 1.4 kde4-base_apply_patches() {
467 zlin 1.10 local _patchdir _packages _p _f
468 zlin 1.4 _patchdir="${WORKDIR}/patches/"
469     if [[ -d "${_patchdir}" ]]; then
470     if is-parent-package ${CATEGORY}/${PN} ; then
471     _packages="$(get-child-packages ${CATEGORY}/${PN})"
472     _packages="${_packages//${CATEGORY}\//} ${PN}"
473     else
474     _packages="${PN}"
475     fi
476 zlin 1.10 if [[ $(declare -p PATCHES) != 'declare -a '* ]]; then
477 jmbsvicetto 1.13 die "PATCHES needs to be an array!"
478 zlin 1.10 fi
479     for _p in ${_packages}; do
480     for _f in "${_patchdir}"/${_p}-${PV}-*{diff,patch}; do
481     [[ -e ${_f} ]] && PATCHES+=("${_f}")
482 zlin 1.8 done
483 zlin 1.10 if [[ -n "${KDEBASE}" ]]; then
484     for _f in "${_patchdir}"/${_p}-${SLOT}-*{diff,patch}; do
485     [[ -e ${_f} ]] && PATCHES+=("${_f}")
486     done
487     fi
488     done
489 zlin 1.4 fi
490 zlin 1.8 [[ -n ${PATCHES[@]} ]] && base_src_unpack autopatch
491 zlin 1.4 }
492    
493     # @FUNCTION: kde4-base_src_unpack
494     # @DESCRIPTION:
495     # This function unpacks the source tarballs for KDE4 applications.
496     #
497     # If no argument is passed to this function, then standard src_unpack is
498     # executed. Otherwise options are passed to base_src_unpack.
499     #
500     # In addition it calls kde4-base_apply_patches when no arguments are passed to
501     # this function.
502 zlin 1.8 #
503     # It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and
504     # enable_selected_linguas() in kde4-functions.eclass(5) for further details.
505 ingmar 1.1 kde4-base_src_unpack() {
506     debug-print-function $FUNCNAME "$@"
507    
508     [[ -z "${KDE_S}" ]] && KDE_S="${S}"
509    
510     if [[ -z $* ]]; then
511     # Unpack first and deal with KDE patches after examing possible patch sets.
512     # To be picked up, patches need to conform to the guidelines stated before.
513     # Monolithic ebuilds will use the split ebuild patches.
514     [[ -d "${KDE_S}" ]] || unpack ${A}
515 scarabeus 1.16 base_src_unpack $*
516 ingmar 1.1 else
517     # Call base_src_unpack, which unpacks and patches
518     # step by step transparently as defined in the ebuild.
519     base_src_unpack $*
520     fi
521    
522     # Updated cmake dir
523     if [[ -d "${WORKDIR}/cmake" ]] && [[ -d "${KDE_S}/cmake" ]]; then
524     ebegin "Updating cmake/ directory..."
525     rm -rf "${KDE_S}/cmake" || die "Unable to remove old cmake/ directory"
526     ln -s "${WORKDIR}/cmake" "${KDE_S}/cmake" || die "Unable to symlink the new cmake/ directory"
527 philantrop 1.7 eend 0
528 ingmar 1.1 fi
529 zlin 1.8
530     # Only enable selected languages, used for KDE extragear apps.
531     if [[ -n ${KDE_LINGUAS} ]]; then
532     enable_selected_linguas
533     fi
534 ingmar 1.1 }
535    
536     # @FUNCTION: kde4-base_src_compile
537     # @DESCRIPTION:
538     # General function for compiling KDE4 applications.
539     kde4-base_src_compile() {
540     debug-print-function ${FUNCNAME} "$@"
541 jmbsvicetto 1.13 case "${EAPI}" in
542     2)
543     ;;
544     *)
545     kde4-base_src_configure
546     ;;
547     esac
548     if [[ -d ${WORKDIR}/${PN}_build ]]; then
549     pushd "${WORKDIR}"/${PN}_build > /dev/null
550     fi
551     [ -e [Mm]akefile ] && kde4-base_src_make
552 ingmar 1.1 }
553    
554     # @FUNCTION: kde4-base_src_configure
555     # @DESCRIPTION:
556     # Function for configuring the build of KDE4 applications.
557     kde4-base_src_configure() {
558     debug-print-function ${FUNCNAME} "$@"
559    
560     # Final flag handling
561     if has kdeenablefinal ${IUSE//+} && use kdeenablefinal; then
562 ingmar 1.5 echo "Activating enable-final flag"
563 ingmar 1.1 mycmakeargs="${mycmakeargs} -DKDE4_ENABLE_FINAL=ON"
564     fi
565    
566     # Enable generation of HTML handbook
567     if has htmlhandbook ${IUSE//+} && use htmlhandbook; then
568 ingmar 1.5 echo "Enabling building of HTML handbook"
569 ingmar 1.1 mycmakeargs="${mycmakeargs} -DKDE4_ENABLE_HTMLHANDBOOK=ON"
570     fi
571    
572     # Build tests in src_test only, where we override this value
573     mycmakeargs="${mycmakeargs} -DKDE4_BUILD_TESTS=OFF"
574    
575     # Set distribution name
576     [[ ${PN} == "kdelibs" ]] && mycmakeargs="${mycmakeargs} -DKDE_DISTRIBUTION_TEXT=Gentoo"
577    
578     # runpath linking
579     mycmakeargs="${mycmakeargs} -DKDE4_USE_ALWAYS_FULL_RPATH=ON"
580    
581     # Here we set the install prefix
582     mycmakeargs="${mycmakeargs} -DCMAKE_INSTALL_PREFIX=${PREFIX}"
583    
584 jmbsvicetto 1.13 # If prefix is /usr, sysconf needs to be /etc, not /usr/etc
585     [[ "${PREFIX}" == "/usr" ]] && mycmakeargs="${mycmakeargs} -DSYSCONF_INSTALL_DIR=/etc"
586    
587 ingmar 1.1 # Set environment
588     QTEST_COLORED=1
589     QT_PLUGIN_PATH=${KDEDIR}/$(get_libdir)/kde4/plugins/
590    
591 jmbsvicetto 1.13 # hardcode path to *.cmake KDE files
592     PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}${KDEDIR}/$(get_libdir)/pkgconfig"
593    
594     [ -e CMakeLists.txt ] && cmake-utils_src_configureout
595 ingmar 1.1 }
596    
597     # @FUNCTION: kde4-base_src_make
598     # @DESCRIPTION:
599     # Function for building KDE4 applications.
600     # Options are passed to cmake-utils_src_make.
601     kde4-base_src_make() {
602     debug-print-function ${FUNCNAME} "$@"
603    
604     cmake-utils_src_make "$@"
605     }
606    
607     # @FUNCTION: kde4-base_src_test
608     # @DESCRIPTION:
609     # Function for testing KDE4 applications.
610     kde4-base_src_test() {
611     debug-print-function ${FUNCNAME} "$@"
612    
613     # Override this value, set in kde4-base_src_configure()
614     mycmakeargs="${mycmakeargs} -DKDE4_BUILD_TESTS=ON"
615     cmake-utils_src_compile
616    
617     cmake-utils_src_test
618     }
619    
620     # @FUNCTION: kde4-base_src_install
621     # @DESCRIPTION:
622     # Function for installing KDE4 applications.
623     kde4-base_src_install() {
624     debug-print-function ${FUNCNAME} "$@"
625    
626     kde4-base_src_make_doc
627 jmbsvicetto 1.13 if [[ -d ${WORKDIR}/${PN}_build ]]; then
628     pushd "${WORKDIR}"/${PN}_build > /dev/null
629     fi
630     [ -e [Mm]akefile ] && cmake-utils_src_install
631 ingmar 1.1 }
632    
633     # @FUNCTION: kde4-base_src_make_doc
634     # @DESCRIPTION:
635     # Function for installing the documentation of KDE4 applications.
636     kde4-base_src_make_doc() {
637     debug-print-function ${FUNCNAME} "$@"
638    
639     local doc
640     for doc in AUTHORS ChangeLog* README* NEWS TODO; do
641     [[ -s $doc ]] && dodoc ${doc}
642     done
643    
644     if [[ -z ${KMNAME} ]]; then
645     for doc in {apps,runtime,workspace,.}/*/{AUTHORS,README*}; do
646     if [[ -s $doc ]]; then
647     local doc_complete=${doc}
648     doc="${doc#*/}"
649     newdoc "$doc_complete" "${doc%/*}.${doc##*/}"
650     fi
651     done
652     fi
653    
654     if [[ -n ${KDEBASE} && -d "${D}"/usr/share/doc/${PF} ]]; then
655     # work around bug #97196
656     dodir /usr/share/doc/kde && \
657     mv "${D}"/usr/share/doc/${PF} "${D}"/usr/share/doc/kde/ || \
658     die "Failed to move docs to kde/ failed."
659     fi
660     }
661    
662     # @FUNCTION: kde4-base_pkg_postinst
663     # @DESCRIPTION:
664     # Function to rebuild the KDE System Configuration Cache after an application has been installed.
665     kde4-base_pkg_postinst() {
666     buildsycoca
667     }
668    
669     # @FUNCTION: kde4-base_pkg_postrm
670     # @DESCRIPTION:
671     # Function to rebuild the KDE System Configuration Cache after an application has been removed.
672     kde4-base_pkg_postrm() {
673     buildsycoca
674     }

  ViewVC Help
Powered by ViewVC 1.1.20