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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.41 - (hide annotations) (download)
Fri Jun 5 09:48:46 2009 UTC (5 years, 3 months ago) by scarabeus
Branch: MAIN
Changes since 1.40: +8 -1 lines
Adjust the kdedir check for optional/never required kde. Reported by yngwin.

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

  ViewVC Help
Powered by ViewVC 1.1.20