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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.47 - (hide annotations) (download)
Tue Oct 27 14:16:49 2009 UTC (4 years, 9 months ago) by scarabeus
Branch: MAIN
Changes since 1.46: +86 -107 lines
Sync cmake-utils and kde eclasses with kde-testing overlays.
Renamed WANT_CMAKE -> CMAKE_REQUIRED in kde eclasses
fixed koffice2.0 support in kde eclasses
Added WANT_CMAKE into cmake-utils eclass, where it brings possibility to depend on cmake only when some useflag is required.
Used with WANT_CMAKE="variable", where variable is the useflag (its autoadded to IUSE too.)

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

  ViewVC Help
Powered by ViewVC 1.1.20