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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.42 - (hide annotations) (download)
Mon Aug 3 21:59:53 2009 UTC (5 years, 1 month ago) by wired
Branch: MAIN
Changes since 1.41: +76 -86 lines
synced kde4 eclasses with new ones from kde-testing overlay

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

  ViewVC Help
Powered by ViewVC 1.1.20