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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.46 - (hide annotations) (download)
Tue Oct 6 18:02:12 2009 UTC (5 years ago) by alexxy
Branch: MAIN
Changes since 1.45: +19 -23 lines
[eclass] Update kde4 eclasses

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

  ViewVC Help
Powered by ViewVC 1.1.20