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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.40 - (hide annotations) (download)
Thu Jun 4 13:50:10 2009 UTC (5 years, 3 months ago) by scarabeus
Branch: MAIN
Changes since 1.39: +1 -1 lines
Fix variable test. Thx to salnx per forums for the fix.

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.40 [[ -z ${KDEDIR} ]] && die "Failed to determine KDEDIR!"
430 scarabeus 1.38 PREFIX="${PREFIX:-${ROOT}usr}"
431 jmbsvicetto 1.13 fi
432    
433 scarabeus 1.34 # Not needed anymore
434 jmbsvicetto 1.13 unset _kdedir
435 zlin 1.4 }
436    
437     # @FUNCTION: kde4-base_src_unpack
438     # @DESCRIPTION:
439     # This function unpacks the source tarballs for KDE4 applications.
440 ingmar 1.1 kde4-base_src_unpack() {
441 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
442 ingmar 1.1
443 scarabeus 1.30 if [[ ${BUILD_TYPE} = live ]]; then
444 scarabeus 1.23 migrate_store_dir
445 scarabeus 1.22 subversion_src_unpack
446 ingmar 1.1 else
447 scarabeus 1.30 base_src_unpack
448 ingmar 1.1 fi
449 scarabeus 1.22 }
450 ingmar 1.1
451 scarabeus 1.22 # @FUNCTION: kde4-base_src_compile
452     # @DESCRIPTION:
453     # General pre-configure and pre-compile function for KDE4 applications.
454     # It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and
455     # enable_selected_linguas() in kde4-functions.eclass(5) for further details.
456     kde4-base_src_prepare() {
457     debug-print-function ${FUNCNAME} "$@"
458 zlin 1.8
459     # Only enable selected languages, used for KDE extragear apps.
460 scarabeus 1.30 if [[ -n ${KDE_LINGUAS} ]]; then
461 zlin 1.8 enable_selected_linguas
462     fi
463 ingmar 1.1
464 scarabeus 1.38 [[ ${BUILD_TYPE} = live ]] && subversion_src_prepare
465 scarabeus 1.22 base_src_prepare
466 scarabeus 1.20
467 scarabeus 1.22 # Save library dependencies
468 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
469 scarabeus 1.22 save_library_dependencies
470     fi
471 scarabeus 1.20
472 scarabeus 1.22 # Inject library dependencies
473 scarabeus 1.30 if [[ -n ${KMLOADLIBS} ]] ; then
474 scarabeus 1.22 load_library_dependencies
475 jmbsvicetto 1.13 fi
476 ingmar 1.1 }
477    
478     # @FUNCTION: kde4-base_src_configure
479     # @DESCRIPTION:
480     # Function for configuring the build of KDE4 applications.
481     kde4-base_src_configure() {
482     debug-print-function ${FUNCNAME} "$@"
483    
484 scarabeus 1.31 # Handle common release builds
485     if ! has debug ${IUSE//+} || ! use debug; then
486     append-cppflags -DQT_NO_DEBUG
487 ingmar 1.1 fi
488    
489     # Build tests in src_test only, where we override this value
490 scarabeus 1.34 local cmakeargs="-DKDE4_BUILD_TESTS=OFF"
491 ingmar 1.1
492 scarabeus 1.38 # set "real" debug mode
493     if has debug ${IUSE//+} && use debug; then
494     CMAKE_BUILD_TYPE="Debugfull"
495     fi
496    
497 ingmar 1.1 # Set distribution name
498 scarabeus 1.34 [[ ${PN} = kdelibs ]] && cmakeargs="${cmakeargs} -DKDE_DISTRIBUTION_TEXT=Gentoo"
499 ingmar 1.1
500     # Here we set the install prefix
501 scarabeus 1.34 cmakeargs="${cmakeargs} -DCMAKE_INSTALL_PREFIX=${PREFIX}"
502 jmbsvicetto 1.13
503 ingmar 1.1 # Set environment
504     QTEST_COLORED=1
505 scarabeus 1.30 QT_PLUGIN_PATH="${KDEDIR}/$(get_libdir)/kde4/plugins/"
506 ingmar 1.1
507 scarabeus 1.37 # Point pkg-config path to KDE *.pc files
508     export PKG_CONFIG_PATH="${KDEDIR}/$(get_libdir)/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}"
509 jmbsvicetto 1.13
510 scarabeus 1.34 # Shadow existing /usr installations
511     unset KDEDIRS
512    
513 scarabeus 1.38 if [[ ${KDEDIR} != "${ROOT}usr" ]]; then
514 scarabeus 1.37 # Override some environment variables - only when kdeprefix is different,
515     # to not break ccache/distcc
516 scarabeus 1.34 PATH="${KDEDIR}/bin:${PATH}"
517     LDPATH="${KDEDIR}/$(get_libdir):${LDPATH}"
518 scarabeus 1.37
519     # Append full RPATH
520     cmakeargs="${cmakeargs} -DCMAKE_SKIP_RPATH=OFF"
521 scarabeus 1.34 fi
522    
523     if has kdeprefix ${IUSE//+} && use kdeprefix; then
524     # Set cmake prefixes to allow buildsystem to localize valid KDE installation
525     # when more are present
526     cmakeargs="${cmakeargs} -DCMAKE_SYSTEM_PREFIX_PATH=${KDEDIR}"
527     else
528     # If prefix is /usr, sysconf needs to be /etc, not /usr/etc
529 scarabeus 1.38 cmakeargs="${cmakeargs} -DSYSCONF_INSTALL_DIR=${ROOT}etc"
530 scarabeus 1.22 fi
531    
532 scarabeus 1.34 mycmakeargs="${cmakeargs} ${mycmakeargs}"
533    
534     cmake-utils_src_configure
535 scarabeus 1.22 }
536    
537     # @FUNCTION: kde4-base_src_compile
538     # @DESCRIPTION:
539     # General function for compiling KDE4 applications.
540     kde4-base_src_compile() {
541     debug-print-function ${FUNCNAME} "$@"
542    
543 scarabeus 1.32 cmake-utils_src_compile
544 ingmar 1.1 }
545    
546     # @FUNCTION: kde4-base_src_test
547     # @DESCRIPTION:
548     # Function for testing KDE4 applications.
549     kde4-base_src_test() {
550     debug-print-function ${FUNCNAME} "$@"
551    
552     # Override this value, set in kde4-base_src_configure()
553     mycmakeargs="${mycmakeargs} -DKDE4_BUILD_TESTS=ON"
554 scarabeus 1.30 cmake-utils_src_configure
555     kde4-base_src_compile
556 ingmar 1.1
557     cmake-utils_src_test
558     }
559    
560     # @FUNCTION: kde4-base_src_install
561     # @DESCRIPTION:
562     # Function for installing KDE4 applications.
563     kde4-base_src_install() {
564     debug-print-function ${FUNCNAME} "$@"
565    
566 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
567 scarabeus 1.22 install_library_dependencies
568     fi
569    
570 ingmar 1.1 kde4-base_src_make_doc
571 scarabeus 1.32 cmake-utils_src_install
572 ingmar 1.1 }
573    
574     # @FUNCTION: kde4-base_src_make_doc
575     # @DESCRIPTION:
576     # Function for installing the documentation of KDE4 applications.
577     kde4-base_src_make_doc() {
578     debug-print-function ${FUNCNAME} "$@"
579    
580     local doc
581     for doc in AUTHORS ChangeLog* README* NEWS TODO; do
582 scarabeus 1.30 [[ -s ${doc} ]] && dodoc ${doc}
583 ingmar 1.1 done
584    
585 scarabeus 1.30 if [[ -z ${KMNAME} ]]; then
586 ingmar 1.1 for doc in {apps,runtime,workspace,.}/*/{AUTHORS,README*}; do
587 scarabeus 1.30 if [[ -s ${doc} ]]; then
588 ingmar 1.1 local doc_complete=${doc}
589     doc="${doc#*/}"
590     newdoc "$doc_complete" "${doc%/*}.${doc##*/}"
591     fi
592     done
593     fi
594    
595 scarabeus 1.38 if [[ -n ${KDEBASE} ]] && [[ -d "${D}${ROOT}usr/share/doc/${PF}" ]]; then
596 ingmar 1.1 # work around bug #97196
597 scarabeus 1.34 dodir /usr/share/doc/KDE4 && \
598 scarabeus 1.38 mv "${D}${ROOT}usr/share/doc/${PF}" "${D}${ROOT}usr/share/doc/KDE4/" || \
599 scarabeus 1.34 die "Failed to move docs to KDE4/."
600 ingmar 1.1 fi
601     }
602    
603     # @FUNCTION: kde4-base_pkg_postinst
604     # @DESCRIPTION:
605     # Function to rebuild the KDE System Configuration Cache after an application has been installed.
606     kde4-base_pkg_postinst() {
607 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
608    
609 ingmar 1.1 buildsycoca
610 scarabeus 1.36
611     if [[ ${BUILD_TYPE} = live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
612     echo
613     einfo "WARNING! This is an experimental live ebuild of ${KMNAME:-${PN}}"
614     einfo "Use it at your own risk."
615     einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
616     echo
617 scarabeus 1.39 elif [[ ${BUILD_TYPE} != live ]] && [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]] && has kdeprefix ${IUSE//+} && use kdeprefix; then
618     # warning about kdeprefix for non-live users
619     echo
620     ewarn "WARNING! You have kdeprefix useflag enabled."
621     ewarn "This setting is strongly discouraged and might lead to potential troubles"
622     ewarn "with KDE update strategies."
623     ewarn "You are using this setup at your own risk and kde team does not"
624     ewarn "take responsibilities for dead kittens."
625     echo
626 scarabeus 1.36 fi
627 ingmar 1.1 }
628    
629     # @FUNCTION: kde4-base_pkg_postrm
630     # @DESCRIPTION:
631     # Function to rebuild the KDE System Configuration Cache after an application has been removed.
632     kde4-base_pkg_postrm() {
633 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
634    
635 ingmar 1.1 buildsycoca
636     }

  ViewVC Help
Powered by ViewVC 1.1.20