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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.45 - (hide annotations) (download)
Tue Sep 1 09:32:08 2009 UTC (5 years, 6 months ago) by scarabeus
Branch: MAIN
Changes since 1.44: +18 -5 lines
Sync kde4 eclasses with overlay ones in preparation for 4.3.1.
One thing differ from overlay ones. KDE_MINIMAL sets still 4.2 instead of 4.3 because some archies did not keyword all kde-base YET!

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.45 # version for apps to work. Currently defaults to 4.3
92 scarabeus 1.34 # 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 scarabeus 1.45 KDE_MINIMAL="${SLOT}"
197 scarabeus 1.34 _kdedir="${SLOT}"
198     _pv="-${PV}:${SLOT}"
199     _pvn="-${PV}"
200    
201     # Block installation of other SLOTS unless kdeprefix
202 scarabeus 1.44 RDEPEND+=" $(block_other_slots)"
203 ingmar 1.1 ;;
204 scarabeus 1.34 koffice)
205     SLOT="2"
206     _pv="-${KDE_MINIMAL}"
207     _pvn="${_pv}"
208 ingmar 1.1 ;;
209 jmbsvicetto 1.13 *)
210 scarabeus 1.34 _pv="-${KDE_MINIMAL}"
211     _pvn="${_pv}"
212 ingmar 1.1 ;;
213 scarabeus 1.34
214 ingmar 1.1 esac
215    
216 scarabeus 1.34 # KDE dependencies
217     kdecommondepend="
218     dev-lang/perl
219 scarabeus 1.39 >=x11-libs/qt-core-${QT_DEPEND}:4[qt3support,ssl]
220     >=x11-libs/qt-gui-${QT_DEPEND}:4[accessibility,dbus]
221 scarabeus 1.44 >=x11-libs/qt-qt3support-${QT_DEPEND}:4[accessibility,kde]
222 scarabeus 1.39 >=x11-libs/qt-script-${QT_DEPEND}:4
223     >=x11-libs/qt-sql-${QT_DEPEND}:4[qt3support]
224     >=x11-libs/qt-svg-${QT_DEPEND}:4
225     >=x11-libs/qt-test-${QT_DEPEND}:4
226 wired 1.42 !aqua? (
227     x11-libs/libXext
228     x11-libs/libXt
229     x11-libs/libXxf86vm
230     )
231 scarabeus 1.34 "
232     if [[ ${PN} != kdelibs ]]; then
233 scarabeus 1.45 [[ ${PN} != libknotificationitem ]] && slot_is_at_least 4.3 ${KDE_MINIMAL} && local libknotificationitem_required=1
234 scarabeus 1.34 if [[ ${KDEBASE} = kde-base ]]; then
235 wired 1.42 kdecommondepend+="
236 scarabeus 1.34 kdeprefix? ( >=kde-base/kdelibs${_pv}[kdeprefix] )
237     !kdeprefix? ( >=kde-base/kdelibs${_pvn}[-kdeprefix] )
238 scarabeus 1.31 "
239 scarabeus 1.45 [[ -n ${libknotificationitem_required} ]] && \
240     kdecommondepend+="
241     kdeprefix? ( >=kde-base/libknotificationitem${_pv}[kdeprefix] )
242     !kdeprefix? ( >=kde-base/libknotificationitem${_pvn}[-kdeprefix] )
243     "
244 scarabeus 1.34 else
245 wired 1.42 kdecommondepend+="
246 scarabeus 1.34 >=kde-base/kdelibs${_pv}
247 scarabeus 1.31 "
248 scarabeus 1.45 [[ -n ${libknotificationitem_required} ]] && \
249     kdecommondepend+="
250     >=kde-base/libknotificationitem${_pv}
251     "
252 ingmar 1.1 fi
253     fi
254 scarabeus 1.34 unset _pv _pvn
255     kdedepend="
256     dev-util/pkgconfig
257     "
258     case ${KDE_REQUIRED} in
259     always)
260 wired 1.42 IUSE+=" aqua"
261     COMMONDEPEND+=" ${kdecommondepend}"
262     DEPEND+=" ${kdedepend}"
263 scarabeus 1.34 ;;
264     optional)
265 wired 1.42 IUSE+=" aqua kde"
266     COMMONDEPEND+=" kde? ( ${kdecommondepend} )"
267     DEPEND+=" kde? ( ${kdedepend} )"
268 scarabeus 1.34 ;;
269     *) ;;
270     esac
271     unset kdecommondepend kdedepend
272    
273     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}"
274     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}"
275     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}"
276    
277     # Accumulate dependencies set by this eclass
278 wired 1.42 DEPEND+=" ${COMMONDEPEND}"
279     RDEPEND+=" ${COMMONDEPEND}"
280     unset COMMONDEPEND
281 ingmar 1.1
282     # Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
283     # koffice ebuild, the URI should be set in the ebuild itself
284 scarabeus 1.30 case ${BUILD_TYPE} in
285 scarabeus 1.22 live)
286 scarabeus 1.37 # Determine branch URL based on live type
287     local branch_prefix
288     case ${PV} in
289     9999*)
290     # trunk
291     branch_prefix="trunk/KDE"
292     ;;
293     *)
294     # branch
295     branch_prefix="branches/KDE/${SLOT}"
296     # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
297     # @DESCRIPTION
298     # Suffix appended to ESVN_PROJECT depending on fetched branch.
299     # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
300     ESVN_PROJECT_SUFFIX="-${PV}"
301     ;;
302     esac
303 scarabeus 1.30 SRC_URI=""
304 scarabeus 1.35 # @ECLASS-VARIABLE: ESVN_MIRROR
305     # @DESCRIPTION:
306     # This variable allows easy overriding of default kde mirror service
307     # (anonsvn) with anything else you might want to use.
308 scarabeus 1.22 ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
309     # Split ebuild, or extragear stuff
310 scarabeus 1.30 if [[ -n ${KMNAME} ]]; then
311 scarabeus 1.37 ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
312 scarabeus 1.34 if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
313 jmbsvicetto 1.25 KMMODULE="${PN}"
314 scarabeus 1.22 fi
315     # Split kde-base/ ebuilds: (they reside in trunk/KDE)
316     case ${KMNAME} in
317     kdebase-*)
318 scarabeus 1.37 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}"
319 scarabeus 1.22 ;;
320 wired 1.42 kdelibs-*)
321     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
322     ;;
323 scarabeus 1.22 kdereview)
324 scarabeus 1.30 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
325 scarabeus 1.22 ;;
326 scarabeus 1.34 kdesupport)
327     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
328 scarabeus 1.37 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
329 scarabeus 1.34 ;;
330 scarabeus 1.22 kde*)
331 scarabeus 1.37 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
332 scarabeus 1.22 ;;
333     extragear*|playground*)
334 scarabeus 1.34 # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
335     # build packages from same svn location.
336 scarabeus 1.30 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
337 scarabeus 1.37 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
338 scarabeus 1.30 ;;
339 scarabeus 1.22 koffice)
340     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
341     ;;
342     *)
343 scarabeus 1.30 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
344 scarabeus 1.22 ;;
345     esac
346     else
347     # kdelibs, kdepimlibs
348 scarabeus 1.37 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
349     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
350 scarabeus 1.22 fi
351 scarabeus 1.38 # @ECLASS-VARIABLE: ESVN_UP_FREQ
352     # @DESCRIPTION:
353     # This variable is used for specifying the timeout between svn synces
354     # for kde-base and koffice modules. Does not affect misc apps.
355     # Default value is 1 hour.
356     [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
357 scarabeus 1.22 ;;
358     *)
359 scarabeus 1.30 if [[ -n ${KDEBASE} ]]; then
360 scarabeus 1.22 if [[ -n ${KMNAME} ]]; then
361 scarabeus 1.30 case ${KMNAME} in
362     kdebase-apps)
363     _kmname="kdebase" ;;
364     *)
365 scarabeus 1.34 _kmname="${KMNAME}" ;;
366 scarabeus 1.30 esac
367 scarabeus 1.22 else
368     _kmname=${PN}
369     fi
370     _kmname_pv="${_kmname}-${PV}"
371     if [[ $NEED_KDE != live ]]; then
372     case ${KDEBASE} in
373     kde-base)
374     case ${PV} in
375 wired 1.42 4.3.85 | 4.3.90 | 4.3.95 | 4.3.96)
376     # block for normally packed unstable releases
377     SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
378     4.3.9* | 4.3.8* | 4.3.7* | 4.3.6*)
379     SRC_URI="http://dev.gentooexperimental.org/~alexxy/kde/${PV}/${_kmname_pv}.tar.lzma" ;;
380     4.2.85 | 4.2.90 | 4.2.95 | 4.2.96 | 4.2.98)
381 scarabeus 1.37 # block for normally packed unstable releases
382     SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
383 scarabeus 1.31 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*)
384     SRC_URI="http://dev.gentooexperimental.org/~alexxy/kde/${PV}/${_kmname_pv}.tar.lzma" ;;
385     4.1.9* | 4.1.8* | 4.1.7* | 4.1.6* | 4.0.9* | 4.0.8*)
386 scarabeus 1.22 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
387     *) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
388     esac
389     ;;
390     koffice)
391 scarabeus 1.38 case ${PV} in
392     1.9*)
393     SRC_URI="mirror://kde/unstable/${_kmname_pv}/src/${_kmname_pv}.tar.bz2"
394     ;;
395     *) SRC_URI="mirror://kde/stable/${_kmname_pv}/src/${_kmname_pv}.tar.bz2" ;;
396     esac
397 scarabeus 1.22 ;;
398 ingmar 1.1 esac
399 scarabeus 1.22 fi
400 scarabeus 1.30 unset _kmname _kmname_pv
401     fi
402 scarabeus 1.22 ;;
403     esac
404 ingmar 1.1
405     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
406    
407     # @ECLASS-VARIABLE: PREFIX
408     # @DESCRIPTION:
409 scarabeus 1.34 # Set the installation PREFIX for non kde-base applications. It defaults to /usr.
410     # kde-base packages go into KDE4 installation directory (KDEDIR) by default.
411 wired 1.42 # No matter the PREFIX, package will be built against KDE installed in KDEDIR.
412 ingmar 1.1
413     # @FUNCTION: kde4-base_pkg_setup
414     # @DESCRIPTION:
415 scarabeus 1.34 # Do the basic kdeprefix KDEDIR settings and determine with which kde should
416     # optional applications link
417 ingmar 1.1 kde4-base_pkg_setup() {
418 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
419 ingmar 1.1
420 scarabeus 1.34 # QA ebuilds
421     case ${NEED_KDE} in
422     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}\")." ;;
423     *) [[ -n ${NEED_KDE} ]] && ewarn "QA Notice: using deprecated NEED_KDE variable, use KDE_MINIMAL instead (default is KDE_MINIMAL=\"${KDE_MINIMAL}\")." ;;
424     esac
425     [[ -z ${KDE_MINIMAL_VALID} ]] && ewarn "QA Notice: ignoring invalid KDE_MINIMAL (defaulting to ${KDE_MINIMAL})."
426    
427     # Don't set KDEHOME during compilation, it will cause access violations
428 jmbsvicetto 1.13 unset KDEHOME
429    
430 scarabeus 1.34 if [[ ${KDEBASE} = kde-base ]]; then
431     if use kdeprefix; then
432 wired 1.42 KDEDIR="${EROOT}usr/kde/${_kdedir}"
433 scarabeus 1.34 else
434 wired 1.42 KDEDIR="${EROOT}usr"
435 scarabeus 1.34 fi
436     PREFIX="${PREFIX:-${KDEDIR}}"
437 scarabeus 1.29 else
438 scarabeus 1.34 # Determine KDEDIR by loooking for the closest match with KDE_MINIMAL
439     KDEDIR=
440     local kde_minimal_met
441     for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do
442     [[ -z ${kde_minimal_met} ]] && [[ ${slot} = ${KDE_MINIMAL} ]] && kde_minimal_met=1
443     if [[ -n ${kde_minimal_met} ]] && has_version "kde-base/kdelibs:${slot}"; then
444     if has_version "kde-base/kdelibs:${slot}[kdeprefix]"; then
445 wired 1.42 KDEDIR="${EROOT}usr/kde/${slot}"
446 scarabeus 1.34 else
447 wired 1.42 KDEDIR="${EROOT}usr"
448 scarabeus 1.34 fi
449     break;
450     fi
451     done
452 scarabeus 1.37 unset slot
453 scarabeus 1.41
454     # Bail out if kdelibs required but not found
455     if [[ ${KDE_REQUIRED} = always ]] || { [[ ${KDE_REQUIRED} = optional ]] && use kde; }; then
456     [[ -z ${KDEDIR} ]] && die "Failed to determine KDEDIR!"
457     else
458 wired 1.42 [[ -z ${KDEDIR} ]] && KDEDIR="${EROOT}usr"
459 scarabeus 1.41 fi
460    
461 wired 1.42 PREFIX="${PREFIX:-${EROOT}usr}"
462 jmbsvicetto 1.13 fi
463 wired 1.42 # Point pkg-config path to KDE *.pc files
464     export PKG_CONFIG_PATH="${KDEDIR}/$(get_libdir)/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}"
465     # Point to correct QT plugins path
466     QT_PLUGIN_PATH="${KDEDIR}/$(get_libdir)/kde4/plugins/"
467 jmbsvicetto 1.13
468 scarabeus 1.34 # Not needed anymore
469 jmbsvicetto 1.13 unset _kdedir
470 zlin 1.4 }
471    
472     # @FUNCTION: kde4-base_src_unpack
473     # @DESCRIPTION:
474     # This function unpacks the source tarballs for KDE4 applications.
475 ingmar 1.1 kde4-base_src_unpack() {
476 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
477 ingmar 1.1
478 scarabeus 1.30 if [[ ${BUILD_TYPE} = live ]]; then
479 scarabeus 1.23 migrate_store_dir
480 scarabeus 1.22 subversion_src_unpack
481 ingmar 1.1 else
482 scarabeus 1.30 base_src_unpack
483 ingmar 1.1 fi
484 scarabeus 1.22 }
485 ingmar 1.1
486 scarabeus 1.44 # @FUNCTION: kde4-base_src_prepare
487 scarabeus 1.22 # @DESCRIPTION:
488     # General pre-configure and pre-compile function for KDE4 applications.
489     # It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and
490 wired 1.42 # enable_selected_linguas() and enable_selected_doc_linguas()
491     # in kde4-functions.eclass(5) for further details.
492 scarabeus 1.22 kde4-base_src_prepare() {
493     debug-print-function ${FUNCNAME} "$@"
494 zlin 1.8
495     # Only enable selected languages, used for KDE extragear apps.
496 scarabeus 1.30 if [[ -n ${KDE_LINGUAS} ]]; then
497 zlin 1.8 enable_selected_linguas
498     fi
499 ingmar 1.1
500 wired 1.42 # Enable/disable handbooks for kde4-base packages
501 scarabeus 1.44 # kde-l10n inherits kde4-base but is metpackage, so no check for doc
502     # kdelibs inherits kde4-base but handle installing the handbook itself
503 wired 1.42 if ! has kde4-meta ${INHERITED}; then
504 scarabeus 1.44 has handbook ${IUSE//+} && [[ ${PN} != kde-l10n ]] && [[ ${PN} != kdelibs ]] && enable_selected_doc_linguas
505 wired 1.42 fi
506    
507 scarabeus 1.38 [[ ${BUILD_TYPE} = live ]] && subversion_src_prepare
508 scarabeus 1.22 base_src_prepare
509 scarabeus 1.20
510 scarabeus 1.22 # Save library dependencies
511 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
512 scarabeus 1.22 save_library_dependencies
513     fi
514 scarabeus 1.20
515 scarabeus 1.22 # Inject library dependencies
516 scarabeus 1.30 if [[ -n ${KMLOADLIBS} ]] ; then
517 scarabeus 1.22 load_library_dependencies
518 jmbsvicetto 1.13 fi
519 ingmar 1.1 }
520    
521     # @FUNCTION: kde4-base_src_configure
522     # @DESCRIPTION:
523     # Function for configuring the build of KDE4 applications.
524     kde4-base_src_configure() {
525     debug-print-function ${FUNCNAME} "$@"
526    
527 scarabeus 1.31 # Handle common release builds
528     if ! has debug ${IUSE//+} || ! use debug; then
529     append-cppflags -DQT_NO_DEBUG
530 ingmar 1.1 fi
531    
532     # Build tests in src_test only, where we override this value
533 scarabeus 1.34 local cmakeargs="-DKDE4_BUILD_TESTS=OFF"
534 ingmar 1.1
535 scarabeus 1.38 # set "real" debug mode
536     if has debug ${IUSE//+} && use debug; then
537     CMAKE_BUILD_TYPE="Debugfull"
538     fi
539    
540 ingmar 1.1 # Set distribution name
541 wired 1.42 [[ ${PN} = kdelibs ]] && cmakeargs+=" -DKDE_DISTRIBUTION_TEXT=Gentoo"
542 ingmar 1.1
543     # Here we set the install prefix
544 wired 1.42 cmakeargs+=" -DCMAKE_INSTALL_PREFIX=${PREFIX}"
545 jmbsvicetto 1.13
546 wired 1.42 # Use colors
547 ingmar 1.1 QTEST_COLORED=1
548 jmbsvicetto 1.13
549 scarabeus 1.34 # Shadow existing /usr installations
550     unset KDEDIRS
551    
552 scarabeus 1.45 # Handle kdeprefix-ed KDE
553 wired 1.42 if [[ ${KDEDIR} != "${EROOT}usr" ]]; then
554 scarabeus 1.37 # Override some environment variables - only when kdeprefix is different,
555     # to not break ccache/distcc
556 scarabeus 1.34 PATH="${KDEDIR}/bin:${PATH}"
557     LDPATH="${KDEDIR}/$(get_libdir):${LDPATH}"
558 scarabeus 1.37
559     # Append full RPATH
560 wired 1.42 cmakeargs+=" -DCMAKE_SKIP_RPATH=OFF"
561 scarabeus 1.34
562 scarabeus 1.45 # Set cmake prefixes to allow buildsystem to locate valid KDE installation
563 scarabeus 1.34 # when more are present
564 wired 1.42 cmakeargs+=" -DCMAKE_SYSTEM_PREFIX_PATH=${KDEDIR}"
565 scarabeus 1.45 fi
566    
567     # Handle kdeprefix in application itself
568     if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then
569 scarabeus 1.34 # If prefix is /usr, sysconf needs to be /etc, not /usr/etc
570 wired 1.42 cmakeargs+=" -DSYSCONF_INSTALL_DIR=${EROOT}etc"
571 scarabeus 1.22 fi
572    
573 scarabeus 1.34 mycmakeargs="${cmakeargs} ${mycmakeargs}"
574    
575     cmake-utils_src_configure
576 scarabeus 1.22 }
577    
578     # @FUNCTION: kde4-base_src_compile
579     # @DESCRIPTION:
580     # General function for compiling KDE4 applications.
581     kde4-base_src_compile() {
582     debug-print-function ${FUNCNAME} "$@"
583    
584 wired 1.42 cmake-utils_src_compile "$@"
585 ingmar 1.1 }
586    
587     # @FUNCTION: kde4-base_src_test
588     # @DESCRIPTION:
589     # Function for testing KDE4 applications.
590     kde4-base_src_test() {
591     debug-print-function ${FUNCNAME} "$@"
592    
593     # Override this value, set in kde4-base_src_configure()
594 wired 1.42 mycmakeargs+=" -DKDE4_BUILD_TESTS=ON"
595 scarabeus 1.30 cmake-utils_src_configure
596     kde4-base_src_compile
597 ingmar 1.1
598     cmake-utils_src_test
599     }
600    
601     # @FUNCTION: kde4-base_src_install
602     # @DESCRIPTION:
603     # Function for installing KDE4 applications.
604     kde4-base_src_install() {
605     debug-print-function ${FUNCNAME} "$@"
606    
607 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
608 scarabeus 1.22 install_library_dependencies
609     fi
610    
611 ingmar 1.1 kde4-base_src_make_doc
612 scarabeus 1.32 cmake-utils_src_install
613 ingmar 1.1 }
614    
615     # @FUNCTION: kde4-base_src_make_doc
616     # @DESCRIPTION:
617     # Function for installing the documentation of KDE4 applications.
618     kde4-base_src_make_doc() {
619     debug-print-function ${FUNCNAME} "$@"
620    
621     local doc
622     for doc in AUTHORS ChangeLog* README* NEWS TODO; do
623 scarabeus 1.30 [[ -s ${doc} ]] && dodoc ${doc}
624 ingmar 1.1 done
625    
626 scarabeus 1.30 if [[ -z ${KMNAME} ]]; then
627 ingmar 1.1 for doc in {apps,runtime,workspace,.}/*/{AUTHORS,README*}; do
628 scarabeus 1.30 if [[ -s ${doc} ]]; then
629 ingmar 1.1 local doc_complete=${doc}
630     doc="${doc#*/}"
631     newdoc "$doc_complete" "${doc%/*}.${doc##*/}"
632     fi
633     done
634     fi
635    
636 wired 1.42 if [[ -n ${KDEBASE} ]] && [[ -d "${D}${EROOT}usr/share/doc/${PF}" ]]; then
637 ingmar 1.1 # work around bug #97196
638 scarabeus 1.34 dodir /usr/share/doc/KDE4 && \
639 scarabeus 1.44 mv -f "${D}${EROOT}usr/share/doc/${PF}" "${D}${EROOT}usr/share/doc/KDE4/" || \
640 scarabeus 1.34 die "Failed to move docs to KDE4/."
641 ingmar 1.1 fi
642     }
643    
644     # @FUNCTION: kde4-base_pkg_postinst
645     # @DESCRIPTION:
646     # Function to rebuild the KDE System Configuration Cache after an application has been installed.
647     kde4-base_pkg_postinst() {
648 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
649    
650 ingmar 1.1 buildsycoca
651 scarabeus 1.36
652     if [[ ${BUILD_TYPE} = live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
653     echo
654 wired 1.42 einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}"
655 scarabeus 1.36 einfo "Use it at your own risk."
656     einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
657     echo
658 scarabeus 1.39 elif [[ ${BUILD_TYPE} != live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && has kdeprefix ${IUSE//+} && use kdeprefix; then
659     # warning about kdeprefix for non-live users
660     echo
661 wired 1.42 ewarn "WARNING! You have the kdeprefix useflag enabled."
662     ewarn "This setting is strongly discouraged and might lead to potential trouble"
663 scarabeus 1.39 ewarn "with KDE update strategies."
664 wired 1.42 ewarn "You are using this setup at your own risk and the kde team does not"
665 scarabeus 1.39 ewarn "take responsibilities for dead kittens."
666     echo
667 scarabeus 1.36 fi
668 ingmar 1.1 }
669    
670     # @FUNCTION: kde4-base_pkg_postrm
671     # @DESCRIPTION:
672     # Function to rebuild the KDE System Configuration Cache after an application has been removed.
673     kde4-base_pkg_postrm() {
674 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
675    
676 ingmar 1.1 buildsycoca
677     }

  ViewVC Help
Powered by ViewVC 1.1.20