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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.52 - (hide annotations) (download)
Wed Oct 28 15:50:56 2009 UTC (4 years, 9 months ago) by scarabeus
Branch: MAIN
Changes since 1.51: +4 -4 lines
Use correct variable name. Effectively reverts abcd's change.

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

  ViewVC Help
Powered by ViewVC 1.1.20