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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.44 - (hide annotations) (download)
Thu Aug 20 09:18:01 2009 UTC (5 years, 4 months ago) by scarabeus
Branch: MAIN
Changes since 1.43: +35 -15 lines
Sync eclasses with kde-testing ones.

1 scarabeus 1.30 # Copyright 2007-2009 Gentoo Foundation
2 ingmar 1.1 # Distributed under the terms of the GNU General Public License v2
3 scarabeus 1.38 # $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.37 2009/05/09 13:23:15 scarabeus 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.22 # NOTE: KDE 4 ebuilds by default define EAPI="2", this can be redefined but
14     # eclass will fail with version older than 2.
15    
16 scarabeus 1.44 # @ECLASS-VARIABLE: WANT_CMAKE
17     # @DESCRIPTION:
18     # Specify if cmake-utils eclass is required. Defaults to true. Please note that
19     # if the variable is set otherwise src_configure/compile/install calls in ebuild
20     # must be overrided (can't use the eclass ones).
21     WANT_CMAKE="${WANT_CMAKE:-true}"
22     if [[ ${WANT_CMAKE} = true ]]; then
23     exports="src_configure src_compile src_test src_install"
24     cmake_eclass="cmake-utils"
25     else
26     exports=""
27     cmake_eclass=""
28     fi
29    
30     inherit base ${cmake_eclass} eutils kde4-functions
31 scarabeus 1.22
32     get_build_type
33 scarabeus 1.30 if [[ ${BUILD_TYPE} = live ]]; then
34 scarabeus 1.22 inherit subversion
35     fi
36    
37 scarabeus 1.44
38     EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare ${exports} pkg_postinst pkg_postrm
39 ingmar 1.1
40 wired 1.43 case ${KDEBASE} in
41     kde-base)
42     HOMEPAGE="http://www.kde.org/"
43     LICENSE="GPL-2"
44     ;;
45     koffice)
46     HOMEPAGE="http://www.koffice.org/"
47     LICENSE="GPL-2"
48     ;;
49     esac
50    
51 philantrop 1.7 # @ECLASS-VARIABLE: OPENGL_REQUIRED
52     # @DESCRIPTION:
53     # Is qt-opengl required? Possible values are 'always', 'optional' and 'never'.
54     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
55     OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}"
56    
57 scarabeus 1.31 # @ECLASS-VARIABLE: WEBKIT_REQUIRED
58     # @DESCRIPTION:
59     # Is qt-webkit requred? Possible values are 'always', 'optional' and 'never'.
60     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
61     WEBKIT_REQUIRED="${WEBKIT_REQUIRED:-never}"
62    
63 zlin 1.4 # @ECLASS-VARIABLE: CPPUNIT_REQUIRED
64     # @DESCRIPTION:
65     # Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'.
66     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
67     CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}"
68    
69 scarabeus 1.34 # @ECLASS-VARIABLE: KDE_REQUIRED
70     # @DESCRIPTION:
71     # Is kde required? Possible values are 'always', 'optional' and 'never'.
72     # This variable must be set before inheriting any eclasses. Defaults to 'always'
73     # If set to always or optional, KDE_MINIMAL may be overriden as well.
74     # Note that for kde-base packages this variable is fixed to 'always'.
75     KDE_REQUIRED="${KDE_REQUIRED:-always}"
76    
77     # Verify KDE_MINIMAL (display QA notice in pkg_setup, still we need to fix it here)
78     if [[ -n ${KDE_MINIMAL} ]]; then
79     for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do
80     [[ ${KDE_MINIMAL} = ${slot} ]] && KDE_MINIMAL_VALID=1 && break
81     done
82 scarabeus 1.37 unset slot
83 scarabeus 1.34 [[ -z ${KDE_MINIMAL_VALID} ]] && unset KDE_MINIMAL
84     else
85     KDE_MINIMAL_VALID=1
86     fi
87    
88     # @ECLASS-VARIABLE: KDE_MINIMAL
89     # @DESCRIPTION:
90 wired 1.42 # This variable is used when KDE_REQUIRED is set, to specify required KDE minimal
91 scarabeus 1.34 # version for apps to work. Currently defaults to 4.2
92     # One may override this variable to raise version requirements.
93     # For possible values look at KDE_SLOTS and KDE_LIVE_SLOTS variables.
94 wired 1.42 # Note that it is fixed to ${SLOT} for kde-base packages.
95 scarabeus 1.34 KDE_MINIMAL="${KDE_MINIMAL:-4.2}"
96    
97     # Fallback behaviour (for now)
98     # TODO Remove when tree is clean
99     if [[ -n ${NEED_KDE} ]]; then
100     case ${NEED_KDE} in
101     none)
102     KDE_REQUIRED="never"
103     ;;
104     *)
105     KDE_REQUIRED="always"
106     KDE_MINIMAL="${NEED_KDE}"
107     ;;
108     esac
109     fi
110    
111 scarabeus 1.39 # @ECLASS-VARIABLE: QT_DEPEND
112     # @DESCRIPTION:
113     # Determine version of qt we enforce as minimal for the package. 4.4.0 4.5.1..
114     # Currently defaults to 4.5.1
115     QT_DEPEND="${QT_DEPEND:-4.5.1}"
116    
117 scarabeus 1.34 # OpenGL dependencies
118     qtopengldepend="
119 scarabeus 1.39 >=x11-libs/qt-opengl-${QT_DEPEND}:4
120 scarabeus 1.34 "
121     case ${OPENGL_REQUIRED} in
122     always)
123 wired 1.42 COMMONDEPEND+=" ${qtopengldepend}"
124 scarabeus 1.34 ;;
125     optional)
126 wired 1.42 IUSE+=" opengl"
127     COMMONDEPEND+=" opengl? ( ${qtopengldepend} )"
128 scarabeus 1.34 ;;
129     *) ;;
130     esac
131     unset qtopengldepend
132    
133     # WebKit dependencies
134 scarabeus 1.44 case ${KDE_REQUIRED} in
135     always)
136     qtwebkitusedeps="[kde]"
137     ;;
138     optional)
139     qtwebkitusedeps="[kde?]"
140     ;;
141     *) ;;
142     esac
143 scarabeus 1.34 qtwebkitdepend="
144 scarabeus 1.44 >=x11-libs/qt-webkit-${QT_DEPEND}:4${qtwebkitusedeps}
145 scarabeus 1.34 "
146 scarabeus 1.44 unset qtwebkitusedeps
147 scarabeus 1.34 case ${WEBKIT_REQUIRED} in
148     always)
149 wired 1.42 COMMONDEPEND+=" ${qtwebkitdepend}"
150 scarabeus 1.34 ;;
151     optional)
152 wired 1.42 IUSE+=" webkit"
153     COMMONDEPEND+=" webkit? ( ${qtwebkitdepend} )"
154 scarabeus 1.34 ;;
155     *) ;;
156     esac
157     unset qtwebkitdepend
158    
159     # CppUnit dependencies
160     cppuintdepend="
161     dev-util/cppunit
162     "
163 scarabeus 1.22 case ${CPPUNIT_REQUIRED} in
164 zlin 1.4 always)
165 wired 1.42 DEPEND+=" ${cppuintdepend}"
166 scarabeus 1.22 ;;
167 zlin 1.4 optional)
168 wired 1.42 IUSE+=" test"
169     DEPEND+=" test? ( ${cppuintdepend} )"
170 scarabeus 1.22 ;;
171 scarabeus 1.34 *) ;;
172 zlin 1.4 esac
173 scarabeus 1.34 unset cppuintdepend
174    
175     # Setup packages inheriting this eclass
176     case ${KDEBASE} in
177     kde-base)
178     if [[ $BUILD_TYPE = live ]]; then
179     # Disable tests for live ebuilds
180 wired 1.42 RESTRICT+=" test"
181 scarabeus 1.34 # Live ebuilds in kde-base default to kdeprefix by default
182 wired 1.42 IUSE+=" +kdeprefix"
183 ingmar 1.1 else
184 scarabeus 1.34 # All other ebuild types default to -kdeprefix as before
185 wired 1.42 IUSE+=" kdeprefix"
186 ingmar 1.1 fi
187 scarabeus 1.37 # Determine SLOT from PVs
188 scarabeus 1.34 case ${PV} in
189 scarabeus 1.37 *.9999*) SLOT="${PV/.9999*/}" ;; # stable live
190 wired 1.42 4.4* | 4.3.9* | 4.3.8* | 4.3.7* | 4.3.6*) SLOT="4.4" ;;
191 scarabeus 1.34 4.3* | 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*) SLOT="4.3" ;;
192     4.2* | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*) SLOT="4.2" ;;
193 scarabeus 1.37 9999*) SLOT="live" ;; # regular live
194 scarabeus 1.34 *) die "Unsupported ${PV}" ;;
195     esac
196     _kdedir="${SLOT}"
197     _pv="-${PV}:${SLOT}"
198     _pvn="-${PV}"
199    
200     # Block installation of other SLOTS unless kdeprefix
201 scarabeus 1.44 RDEPEND+=" $(block_other_slots)"
202 ingmar 1.1 ;;
203 scarabeus 1.34 koffice)
204     SLOT="2"
205     _pv="-${KDE_MINIMAL}"
206     _pvn="${_pv}"
207 ingmar 1.1 ;;
208 jmbsvicetto 1.13 *)
209 scarabeus 1.34 _pv="-${KDE_MINIMAL}"
210     _pvn="${_pv}"
211 ingmar 1.1 ;;
212 scarabeus 1.34
213 ingmar 1.1 esac
214    
215 scarabeus 1.34 # KDE dependencies
216     kdecommondepend="
217     dev-lang/perl
218 scarabeus 1.39 >=x11-libs/qt-core-${QT_DEPEND}:4[qt3support,ssl]
219     >=x11-libs/qt-gui-${QT_DEPEND}:4[accessibility,dbus]
220 scarabeus 1.44 >=x11-libs/qt-qt3support-${QT_DEPEND}:4[accessibility,kde]
221 scarabeus 1.39 >=x11-libs/qt-script-${QT_DEPEND}:4
222     >=x11-libs/qt-sql-${QT_DEPEND}:4[qt3support]
223     >=x11-libs/qt-svg-${QT_DEPEND}:4
224     >=x11-libs/qt-test-${QT_DEPEND}:4
225 wired 1.42 !aqua? (
226     x11-libs/libXext
227     x11-libs/libXt
228     x11-libs/libXxf86vm
229     )
230 scarabeus 1.34 "
231     if [[ ${PN} != kdelibs ]]; then
232     if [[ ${KDEBASE} = kde-base ]]; then
233 wired 1.42 kdecommondepend+="
234 scarabeus 1.34 kdeprefix? ( >=kde-base/kdelibs${_pv}[kdeprefix] )
235     !kdeprefix? ( >=kde-base/kdelibs${_pvn}[-kdeprefix] )
236 scarabeus 1.31 "
237 scarabeus 1.34 else
238 wired 1.42 kdecommondepend+="
239 scarabeus 1.34 >=kde-base/kdelibs${_pv}
240 scarabeus 1.31 "
241 ingmar 1.1 fi
242     fi
243 scarabeus 1.34 unset _pv _pvn
244     kdedepend="
245     dev-util/pkgconfig
246     "
247     case ${KDE_REQUIRED} in
248     always)
249 wired 1.42 IUSE+=" aqua"
250     COMMONDEPEND+=" ${kdecommondepend}"
251     DEPEND+=" ${kdedepend}"
252 scarabeus 1.34 ;;
253     optional)
254 wired 1.42 IUSE+=" aqua kde"
255     COMMONDEPEND+=" kde? ( ${kdecommondepend} )"
256     DEPEND+=" kde? ( ${kdedepend} )"
257 scarabeus 1.34 ;;
258     *) ;;
259     esac
260     unset kdecommondepend kdedepend
261    
262     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}"
263     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}"
264     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}"
265    
266     # Accumulate dependencies set by this eclass
267 wired 1.42 DEPEND+=" ${COMMONDEPEND}"
268     RDEPEND+=" ${COMMONDEPEND}"
269     unset COMMONDEPEND
270 ingmar 1.1
271     # Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
272     # koffice ebuild, the URI should be set in the ebuild itself
273 scarabeus 1.30 case ${BUILD_TYPE} in
274 scarabeus 1.22 live)
275 scarabeus 1.37 # Determine branch URL based on live type
276     local branch_prefix
277     case ${PV} in
278     9999*)
279     # trunk
280     branch_prefix="trunk/KDE"
281     ;;
282     *)
283     # branch
284     branch_prefix="branches/KDE/${SLOT}"
285     # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
286     # @DESCRIPTION
287     # Suffix appended to ESVN_PROJECT depending on fetched branch.
288     # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
289     ESVN_PROJECT_SUFFIX="-${PV}"
290     ;;
291     esac
292 scarabeus 1.30 SRC_URI=""
293 scarabeus 1.35 # @ECLASS-VARIABLE: ESVN_MIRROR
294     # @DESCRIPTION:
295     # This variable allows easy overriding of default kde mirror service
296     # (anonsvn) with anything else you might want to use.
297 scarabeus 1.22 ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
298     # Split ebuild, or extragear stuff
299 scarabeus 1.30 if [[ -n ${KMNAME} ]]; then
300 scarabeus 1.37 ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
301 scarabeus 1.34 if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
302 jmbsvicetto 1.25 KMMODULE="${PN}"
303 scarabeus 1.22 fi
304     # Split kde-base/ ebuilds: (they reside in trunk/KDE)
305     case ${KMNAME} in
306     kdebase-*)
307 scarabeus 1.37 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}"
308 scarabeus 1.22 ;;
309 wired 1.42 kdelibs-*)
310     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
311     ;;
312 scarabeus 1.22 kdereview)
313 scarabeus 1.30 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
314 scarabeus 1.22 ;;
315 scarabeus 1.34 kdesupport)
316     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
317 scarabeus 1.37 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
318 scarabeus 1.34 ;;
319 scarabeus 1.22 kde*)
320 scarabeus 1.37 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
321 scarabeus 1.22 ;;
322     extragear*|playground*)
323 scarabeus 1.34 # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
324     # build packages from same svn location.
325 scarabeus 1.30 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
326 scarabeus 1.37 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
327 scarabeus 1.30 ;;
328 scarabeus 1.22 koffice)
329     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
330     ;;
331     *)
332 scarabeus 1.30 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
333 scarabeus 1.22 ;;
334     esac
335     else
336     # kdelibs, kdepimlibs
337 scarabeus 1.37 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
338     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
339 scarabeus 1.22 fi
340 scarabeus 1.38 # @ECLASS-VARIABLE: ESVN_UP_FREQ
341     # @DESCRIPTION:
342     # This variable is used for specifying the timeout between svn synces
343     # for kde-base and koffice modules. Does not affect misc apps.
344     # Default value is 1 hour.
345     [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
346 scarabeus 1.22 ;;
347     *)
348 scarabeus 1.30 if [[ -n ${KDEBASE} ]]; then
349 scarabeus 1.22 if [[ -n ${KMNAME} ]]; then
350 scarabeus 1.30 case ${KMNAME} in
351     kdebase-apps)
352     _kmname="kdebase" ;;
353     *)
354 scarabeus 1.34 _kmname="${KMNAME}" ;;
355 scarabeus 1.30 esac
356 scarabeus 1.22 else
357     _kmname=${PN}
358     fi
359     _kmname_pv="${_kmname}-${PV}"
360     if [[ $NEED_KDE != live ]]; then
361     case ${KDEBASE} in
362     kde-base)
363     case ${PV} in
364 wired 1.42 4.3.85 | 4.3.90 | 4.3.95 | 4.3.96)
365     # block for normally packed unstable releases
366     SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
367     4.3.9* | 4.3.8* | 4.3.7* | 4.3.6*)
368     SRC_URI="http://dev.gentooexperimental.org/~alexxy/kde/${PV}/${_kmname_pv}.tar.lzma" ;;
369     4.2.85 | 4.2.90 | 4.2.95 | 4.2.96 | 4.2.98)
370 scarabeus 1.37 # block for normally packed unstable releases
371     SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
372 scarabeus 1.31 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*)
373     SRC_URI="http://dev.gentooexperimental.org/~alexxy/kde/${PV}/${_kmname_pv}.tar.lzma" ;;
374     4.1.9* | 4.1.8* | 4.1.7* | 4.1.6* | 4.0.9* | 4.0.8*)
375 scarabeus 1.22 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
376     *) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
377     esac
378     ;;
379     koffice)
380 scarabeus 1.38 case ${PV} in
381     1.9*)
382     SRC_URI="mirror://kde/unstable/${_kmname_pv}/src/${_kmname_pv}.tar.bz2"
383     ;;
384     *) SRC_URI="mirror://kde/stable/${_kmname_pv}/src/${_kmname_pv}.tar.bz2" ;;
385     esac
386 scarabeus 1.22 ;;
387 ingmar 1.1 esac
388 scarabeus 1.22 fi
389 scarabeus 1.30 unset _kmname _kmname_pv
390     fi
391 scarabeus 1.22 ;;
392     esac
393 ingmar 1.1
394     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
395    
396     # @ECLASS-VARIABLE: PREFIX
397     # @DESCRIPTION:
398 scarabeus 1.34 # Set the installation PREFIX for non kde-base applications. It defaults to /usr.
399     # kde-base packages go into KDE4 installation directory (KDEDIR) by default.
400 wired 1.42 # No matter the PREFIX, package will be built against KDE installed in KDEDIR.
401 ingmar 1.1
402     # @FUNCTION: kde4-base_pkg_setup
403     # @DESCRIPTION:
404 scarabeus 1.34 # Do the basic kdeprefix KDEDIR settings and determine with which kde should
405     # optional applications link
406 ingmar 1.1 kde4-base_pkg_setup() {
407 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
408 ingmar 1.1
409 scarabeus 1.34 # QA ebuilds
410     case ${NEED_KDE} in
411     none) ewarn "QA Notice: using deprecated NEED_KDE variable, use KDE_REQUIRED=\"never\" or KDE_REQUIRED=\"optional\" instead. You may want to override KDE_MINIMAL as well (default is KDE_MINIMAL=\"${KDE_MINIMAL}\")." ;;
412     *) [[ -n ${NEED_KDE} ]] && ewarn "QA Notice: using deprecated NEED_KDE variable, use KDE_MINIMAL instead (default is KDE_MINIMAL=\"${KDE_MINIMAL}\")." ;;
413     esac
414     [[ -z ${KDE_MINIMAL_VALID} ]] && ewarn "QA Notice: ignoring invalid KDE_MINIMAL (defaulting to ${KDE_MINIMAL})."
415    
416     # Don't set KDEHOME during compilation, it will cause access violations
417 jmbsvicetto 1.13 unset KDEHOME
418    
419 scarabeus 1.34 if [[ ${KDEBASE} = kde-base ]]; then
420     if use kdeprefix; then
421 wired 1.42 KDEDIR="${EROOT}usr/kde/${_kdedir}"
422 scarabeus 1.34 else
423 wired 1.42 KDEDIR="${EROOT}usr"
424 scarabeus 1.34 fi
425     PREFIX="${PREFIX:-${KDEDIR}}"
426 scarabeus 1.29 else
427 scarabeus 1.34 # Determine KDEDIR by loooking for the closest match with KDE_MINIMAL
428     KDEDIR=
429     local kde_minimal_met
430     for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do
431     [[ -z ${kde_minimal_met} ]] && [[ ${slot} = ${KDE_MINIMAL} ]] && kde_minimal_met=1
432     if [[ -n ${kde_minimal_met} ]] && has_version "kde-base/kdelibs:${slot}"; then
433     if has_version "kde-base/kdelibs:${slot}[kdeprefix]"; then
434 wired 1.42 KDEDIR="${EROOT}usr/kde/${slot}"
435 scarabeus 1.34 else
436 wired 1.42 KDEDIR="${EROOT}usr"
437 scarabeus 1.34 fi
438     break;
439     fi
440     done
441 scarabeus 1.37 unset slot
442 scarabeus 1.41
443     # Bail out if kdelibs required but not found
444     if [[ ${KDE_REQUIRED} = always ]] || { [[ ${KDE_REQUIRED} = optional ]] && use kde; }; then
445     [[ -z ${KDEDIR} ]] && die "Failed to determine KDEDIR!"
446     else
447 wired 1.42 [[ -z ${KDEDIR} ]] && KDEDIR="${EROOT}usr"
448 scarabeus 1.41 fi
449    
450 wired 1.42 PREFIX="${PREFIX:-${EROOT}usr}"
451 jmbsvicetto 1.13 fi
452 wired 1.42 # Point pkg-config path to KDE *.pc files
453     export PKG_CONFIG_PATH="${KDEDIR}/$(get_libdir)/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}"
454     # Point to correct QT plugins path
455     QT_PLUGIN_PATH="${KDEDIR}/$(get_libdir)/kde4/plugins/"
456 jmbsvicetto 1.13
457 scarabeus 1.34 # Not needed anymore
458 jmbsvicetto 1.13 unset _kdedir
459 zlin 1.4 }
460    
461     # @FUNCTION: kde4-base_src_unpack
462     # @DESCRIPTION:
463     # This function unpacks the source tarballs for KDE4 applications.
464 ingmar 1.1 kde4-base_src_unpack() {
465 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
466 ingmar 1.1
467 scarabeus 1.30 if [[ ${BUILD_TYPE} = live ]]; then
468 scarabeus 1.23 migrate_store_dir
469 scarabeus 1.22 subversion_src_unpack
470 ingmar 1.1 else
471 scarabeus 1.30 base_src_unpack
472 ingmar 1.1 fi
473 scarabeus 1.22 }
474 ingmar 1.1
475 scarabeus 1.44 # @FUNCTION: kde4-base_src_prepare
476 scarabeus 1.22 # @DESCRIPTION:
477     # General pre-configure and pre-compile function for KDE4 applications.
478     # It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and
479 wired 1.42 # enable_selected_linguas() and enable_selected_doc_linguas()
480     # in kde4-functions.eclass(5) for further details.
481 scarabeus 1.22 kde4-base_src_prepare() {
482     debug-print-function ${FUNCNAME} "$@"
483 zlin 1.8
484     # Only enable selected languages, used for KDE extragear apps.
485 scarabeus 1.30 if [[ -n ${KDE_LINGUAS} ]]; then
486 zlin 1.8 enable_selected_linguas
487     fi
488 ingmar 1.1
489 wired 1.42 # Enable/disable handbooks for kde4-base packages
490 scarabeus 1.44 # kde-l10n inherits kde4-base but is metpackage, so no check for doc
491     # kdelibs inherits kde4-base but handle installing the handbook itself
492 wired 1.42 if ! has kde4-meta ${INHERITED}; then
493 scarabeus 1.44 has handbook ${IUSE//+} && [[ ${PN} != kde-l10n ]] && [[ ${PN} != kdelibs ]] && enable_selected_doc_linguas
494 wired 1.42 fi
495    
496 scarabeus 1.38 [[ ${BUILD_TYPE} = live ]] && subversion_src_prepare
497 scarabeus 1.22 base_src_prepare
498 scarabeus 1.20
499 scarabeus 1.22 # Save library dependencies
500 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
501 scarabeus 1.22 save_library_dependencies
502     fi
503 scarabeus 1.20
504 scarabeus 1.22 # Inject library dependencies
505 scarabeus 1.30 if [[ -n ${KMLOADLIBS} ]] ; then
506 scarabeus 1.22 load_library_dependencies
507 jmbsvicetto 1.13 fi
508 ingmar 1.1 }
509    
510     # @FUNCTION: kde4-base_src_configure
511     # @DESCRIPTION:
512     # Function for configuring the build of KDE4 applications.
513     kde4-base_src_configure() {
514     debug-print-function ${FUNCNAME} "$@"
515    
516 scarabeus 1.31 # Handle common release builds
517     if ! has debug ${IUSE//+} || ! use debug; then
518     append-cppflags -DQT_NO_DEBUG
519 ingmar 1.1 fi
520    
521     # Build tests in src_test only, where we override this value
522 scarabeus 1.34 local cmakeargs="-DKDE4_BUILD_TESTS=OFF"
523 ingmar 1.1
524 scarabeus 1.38 # set "real" debug mode
525     if has debug ${IUSE//+} && use debug; then
526     CMAKE_BUILD_TYPE="Debugfull"
527     fi
528    
529 ingmar 1.1 # Set distribution name
530 wired 1.42 [[ ${PN} = kdelibs ]] && cmakeargs+=" -DKDE_DISTRIBUTION_TEXT=Gentoo"
531 ingmar 1.1
532     # Here we set the install prefix
533 wired 1.42 cmakeargs+=" -DCMAKE_INSTALL_PREFIX=${PREFIX}"
534 jmbsvicetto 1.13
535 wired 1.42 # Use colors
536 ingmar 1.1 QTEST_COLORED=1
537 jmbsvicetto 1.13
538 scarabeus 1.34 # Shadow existing /usr installations
539     unset KDEDIRS
540    
541 wired 1.42 if [[ ${KDEDIR} != "${EROOT}usr" ]]; then
542 scarabeus 1.37 # Override some environment variables - only when kdeprefix is different,
543     # to not break ccache/distcc
544 scarabeus 1.34 PATH="${KDEDIR}/bin:${PATH}"
545     LDPATH="${KDEDIR}/$(get_libdir):${LDPATH}"
546 scarabeus 1.37
547     # Append full RPATH
548 wired 1.42 cmakeargs+=" -DCMAKE_SKIP_RPATH=OFF"
549 scarabeus 1.34 fi
550    
551     if has kdeprefix ${IUSE//+} && use kdeprefix; then
552     # Set cmake prefixes to allow buildsystem to localize valid KDE installation
553     # when more are present
554 wired 1.42 cmakeargs+=" -DCMAKE_SYSTEM_PREFIX_PATH=${KDEDIR}"
555 scarabeus 1.34 else
556     # If prefix is /usr, sysconf needs to be /etc, not /usr/etc
557 wired 1.42 cmakeargs+=" -DSYSCONF_INSTALL_DIR=${EROOT}etc"
558 scarabeus 1.22 fi
559    
560 scarabeus 1.34 mycmakeargs="${cmakeargs} ${mycmakeargs}"
561    
562     cmake-utils_src_configure
563 scarabeus 1.22 }
564    
565     # @FUNCTION: kde4-base_src_compile
566     # @DESCRIPTION:
567     # General function for compiling KDE4 applications.
568     kde4-base_src_compile() {
569     debug-print-function ${FUNCNAME} "$@"
570    
571 wired 1.42 cmake-utils_src_compile "$@"
572 ingmar 1.1 }
573    
574     # @FUNCTION: kde4-base_src_test
575     # @DESCRIPTION:
576     # Function for testing KDE4 applications.
577     kde4-base_src_test() {
578     debug-print-function ${FUNCNAME} "$@"
579    
580     # Override this value, set in kde4-base_src_configure()
581 wired 1.42 mycmakeargs+=" -DKDE4_BUILD_TESTS=ON"
582 scarabeus 1.30 cmake-utils_src_configure
583     kde4-base_src_compile
584 ingmar 1.1
585     cmake-utils_src_test
586     }
587    
588     # @FUNCTION: kde4-base_src_install
589     # @DESCRIPTION:
590     # Function for installing KDE4 applications.
591     kde4-base_src_install() {
592     debug-print-function ${FUNCNAME} "$@"
593    
594 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
595 scarabeus 1.22 install_library_dependencies
596     fi
597    
598 ingmar 1.1 kde4-base_src_make_doc
599 scarabeus 1.32 cmake-utils_src_install
600 ingmar 1.1 }
601    
602     # @FUNCTION: kde4-base_src_make_doc
603     # @DESCRIPTION:
604     # Function for installing the documentation of KDE4 applications.
605     kde4-base_src_make_doc() {
606     debug-print-function ${FUNCNAME} "$@"
607    
608     local doc
609     for doc in AUTHORS ChangeLog* README* NEWS TODO; do
610 scarabeus 1.30 [[ -s ${doc} ]] && dodoc ${doc}
611 ingmar 1.1 done
612    
613 scarabeus 1.30 if [[ -z ${KMNAME} ]]; then
614 ingmar 1.1 for doc in {apps,runtime,workspace,.}/*/{AUTHORS,README*}; do
615 scarabeus 1.30 if [[ -s ${doc} ]]; then
616 ingmar 1.1 local doc_complete=${doc}
617     doc="${doc#*/}"
618     newdoc "$doc_complete" "${doc%/*}.${doc##*/}"
619     fi
620     done
621     fi
622    
623 wired 1.42 if [[ -n ${KDEBASE} ]] && [[ -d "${D}${EROOT}usr/share/doc/${PF}" ]]; then
624 ingmar 1.1 # work around bug #97196
625 scarabeus 1.34 dodir /usr/share/doc/KDE4 && \
626 scarabeus 1.44 mv -f "${D}${EROOT}usr/share/doc/${PF}" "${D}${EROOT}usr/share/doc/KDE4/" || \
627 scarabeus 1.34 die "Failed to move docs to KDE4/."
628 ingmar 1.1 fi
629     }
630    
631     # @FUNCTION: kde4-base_pkg_postinst
632     # @DESCRIPTION:
633     # Function to rebuild the KDE System Configuration Cache after an application has been installed.
634     kde4-base_pkg_postinst() {
635 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
636    
637 ingmar 1.1 buildsycoca
638 scarabeus 1.36
639     if [[ ${BUILD_TYPE} = live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
640     echo
641 wired 1.42 einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}"
642 scarabeus 1.36 einfo "Use it at your own risk."
643     einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
644     echo
645 scarabeus 1.39 elif [[ ${BUILD_TYPE} != live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && has kdeprefix ${IUSE//+} && use kdeprefix; then
646     # warning about kdeprefix for non-live users
647     echo
648 wired 1.42 ewarn "WARNING! You have the kdeprefix useflag enabled."
649     ewarn "This setting is strongly discouraged and might lead to potential trouble"
650 scarabeus 1.39 ewarn "with KDE update strategies."
651 wired 1.42 ewarn "You are using this setup at your own risk and the kde team does not"
652 scarabeus 1.39 ewarn "take responsibilities for dead kittens."
653     echo
654 scarabeus 1.36 fi
655 ingmar 1.1 }
656    
657     # @FUNCTION: kde4-base_pkg_postrm
658     # @DESCRIPTION:
659     # Function to rebuild the KDE System Configuration Cache after an application has been removed.
660     kde4-base_pkg_postrm() {
661 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
662    
663 ingmar 1.1 buildsycoca
664     }

  ViewVC Help
Powered by ViewVC 1.1.20