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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.31 - (show annotations) (download)
Mon Mar 9 19:41:26 2009 UTC (5 years, 5 months ago) by scarabeus
Branch: MAIN
Changes since 1.30: +91 -68 lines
Sync kde4 eclasses with kde-testing (review by scarabeus and jmbsvicetto).

1 # Copyright 2007-2009 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: $
4
5 # @ECLASS: kde4-base.eclass
6 # @MAINTAINER:
7 # kde@gentoo.org
8 # @BLURB: This eclass provides functions for kde 4.X ebuilds
9 # @DESCRIPTION:
10 # The kde4-base.eclass provides support for building KDE4 based ebuilds
11 # and KDE4 applications.
12 #
13 # 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 inherit base cmake-utils eutils kde4-functions
17
18 get_build_type
19 if [[ ${BUILD_TYPE} = live ]]; then
20 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
25 # @FUNCTION: kde4-base_set_qt_dependencies
26 # @DESCRIPTION:
27 # Set qt dependencies. And use opengl based on OPENGL_REQUIRED variable.
28 kde4-base_set_qt_dependencies() {
29 local qtdepend qtopengldepend
30
31 qtdepend="
32 x11-libs/qt-core:4[qt3support,ssl]
33 x11-libs/qt-gui:4[accessibility,dbus]
34 x11-libs/qt-qt3support:4[accessibility]
35 x11-libs/qt-script:4
36 x11-libs/qt-sql:4[qt3support]
37 x11-libs/qt-svg:4
38 x11-libs/qt-test:4
39 "
40 qtwebkitdepend="
41 x11-libs/qt-webkit:4
42 "
43 qtopengldepend="
44 x11-libs/qt-opengl:4
45 "
46
47 case ${WEBKIT_REQUIRED} in
48 always)
49 qtdepend="${qtdepend}
50 ${qtwebkitdepend}"
51 ;;
52 optional)
53 IUSE="${IUSE} webkit"
54 qtdepend="${qtdepend}
55 webkit? ( ${qtwebkitdepend} )
56 "
57 ;;
58 *) WEBKIT_REQUIRED="never" ;;
59 esac
60 # opengl dependencies
61 case ${OPENGL_REQUIRED} in
62 always)
63 qtdepend="${qtdepend}
64 ${qtopengldepend}
65 "
66 ;;
67 optional)
68 IUSE="${IUSE} opengl"
69 qtdepend="${qtdepend}
70 opengl? ( ${qtopengldepend} )
71 "
72 ;;
73 *) OPENGL_REQUIRED="never" ;;
74 esac
75
76 COMMONDEPEND="${COMMONDEPEND} ${qtdepend}"
77 }
78
79 if [[ ${NEED_KDE} != "none" ]] ; then
80 # Qt
81 kde4-base_set_qt_dependencies
82
83 # Xorg
84 COMMONDEPEND="${COMMONDEPEND}
85 >=x11-base/xorg-server-1.5.2
86 "
87
88 # X11 libs
89 COMMONDEPEND="${COMMONDEPEND}
90 x11-libs/libXext
91 x11-libs/libXt
92 x11-libs/libXxf86vm
93 "
94
95 # localization deps
96 # DISABLED UNTIL PMS decide correct approach :(
97 if [[ -n ${KDE_LINGUAS} ]]; then
98 LNG_DEP=""
99 for _lng in ${KDE_LINGUAS}; do
100 # there must be or due to issue if lingua is not present in kde-l10n so
101 # it wont die but pick kde-l10n as-is.
102 LNG_DEP="${LNG_DEP}
103 || ( kde-base/kde-l10n[linguas_${_lng},kdeprefix=] kde-base/kde-l10n[kdeprefix=] )"
104 done
105 fi
106
107 # Set common dependencies for all ebuilds that inherit this eclass
108 DEPEND="${DEPEND} ${COMMONDEPEND}
109 >=dev-util/cmake-2.6.2
110 dev-util/pkgconfig
111 >=sys-apps/sandbox-1.3.2
112 "
113 RDEPEND="${RDEPEND} ${COMMONDEPEND}"
114 fi # NEED_KDE != NONE block
115
116 if [[ $BUILD_TYPE = live ]]; then
117 # Disable tests for live ebuilds
118 RESTRICT="${RESTRICT} test"
119 # Live ebuilds in kde-base default to kdeprefix by default
120 IUSE="${IUSE} +kdeprefix"
121 else
122 # All other ebuild types default to -kdeprefix as before
123 IUSE="${IUSE} kdeprefix"
124 fi
125
126 # @ECLASS-VARIABLE: OPENGL_REQUIRED
127 # @DESCRIPTION:
128 # Is qt-opengl required? Possible values are 'always', 'optional' and 'never'.
129 # This variable must be set before inheriting any eclasses. Defaults to 'never'.
130 OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}"
131
132 # @ECLASS-VARIABLE: WEBKIT_REQUIRED
133 # @DESCRIPTION:
134 # Is qt-webkit requred? Possible values are 'always', 'optional' and 'never'.
135 # This variable must be set before inheriting any eclasses. Defaults to 'never'.
136 WEBKIT_REQUIRED="${WEBKIT_REQUIRED:-never}"
137
138 # @ECLASS-VARIABLE: CPPUNIT_REQUIRED
139 # @DESCRIPTION:
140 # Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'.
141 # This variable must be set before inheriting any eclasses. Defaults to 'never'.
142 CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}"
143
144 case ${CPPUNIT_REQUIRED} in
145 always)
146 DEPEND="${DEPEND}
147 dev-util/cppunit
148 "
149 ;;
150 optional)
151 IUSE="${IUSE} test"
152 DEPEND="${DEPEND}
153 test? ( dev-util/cppunit )
154 "
155 ;;
156 *)
157 CPPUNIT_REQUIRED="never"
158 ;;
159 esac
160
161 # @ECLASS-VARIABLE: NEED_KDE
162 # @DESCRIPTION:
163 # This variable sets the version of KDE4 which will be used by the eclass.
164 # For kde-base packages, if it is not set by the ebuild,
165 # it's assumed that the required KDE4 version is the latest available.
166 # For non kde-base packages, it is also set to the latest by default.
167 #
168 # For more precise adjustments or for specifying particular kde version,
169 # KDE_MINIMAL variable can be used.
170 #
171 # @CODE
172 # Acceptable values are:
173 # - latest - Use latest version in the portage tree
174 # Default for kde-base ebuilds.
175 # - live - Use live release (live ebuilds)
176 # - none - Let the ebuild handle SLOT, kde dependencies, KDEDIR, ...
177 # - 4.2, 4.1, kde-4 - respective slots for kde versions
178 # @CODE
179 # Note: default NEED_KDE is latest
180 NEED_KDE="${NEED_KDE:=latest}"
181 export NEED_KDE
182
183 # @ECLASS-VARIABLE: KDE_MINIMAL
184 # @DESCRIPTION:
185 # This wariable is used when NEED_KDE="latest" is set, to specify the
186 # required KDE minimal version for which apps will work.
187 # @CODE
188 # KDE_MINIMAL="-4.1"
189 # @CODE
190 # Note: default minimal version is kde-4.1, which means that the apps will work
191 # with any KDE version >=${KDE_MINIMAL}
192 KDE_MINIMAL="${KDE_MINIMAL:=4.2}"
193 export KDE_MINIMAL
194
195 # FIXME: the code section, explanation of live. The last sentence needs other
196 # formulation too.
197 #
198 # @ECLASS-VARIABLE: KDE_WANTED
199 # @DESCRIPTION:
200 # When NEED_KDE=latest is inherited, KDE_WANTED serves to indicate the prefered kde
201 # version. It's value is looked for before any other. Useful when having more
202 # +kdeprefix installs: you can choose which kde version, if present, to link
203 # against.
204 #
205 # @CODE
206 # Acceptable values are:
207 # stable = whatever is main tree (now 4.1)
208 # testing = whatever is in testing on main tree
209 # snapshot = whatever is released under snapshots (4.2 at present)
210 # live = live svn ebuilds, also default value, do not be scared it goes in this
211 #
212 # order: live->snapshot->testing->stable, when searching for kde. This way we
213 # allow users to use just kde4snapshots and use software from the tree.
214 KDE_WANTED="${KDE_WANTED:=live}"
215 export KDE_WANTED
216
217 case ${NEED_KDE} in
218 latest)
219 if [[ $KDEBASE = kde-base ]]; then
220 case ${PV} in
221 4.3* | 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*)
222 _kdedir="4.3"
223 _pv="-${PV}:4.3"
224 _pvn="-${PV}"
225 ;;
226 4.2* | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*)
227 _kdedir="4.2"
228 _pv="-${PV}:4.2"
229 _pvn="-${PV}"
230 ;;
231 4.1*| 4.0.9* | 4.0.8*)
232 _kdedir="4.1"
233 _pv="-${PV}:4.1"
234 _pvn="-${PV}"
235 ;;
236 4.0*)
237 _kdedir="4.0"
238 _pv="-${PV}:kde-4"
239 _pvn="-${PV}"
240 ;;
241 3.9*)
242 _kdedir="3.9"
243 _pv="-${PV}:kde-4"
244 _pvn="-${PV}"
245 ;;
246 9999*)
247 _kdedir="live"
248 _pv="-${PV}:live"
249 _pvn="-${PV}"
250 ;;
251 *)
252 die "NEED_KDE=latest not supported for PV=${PV}" ;;
253 esac
254 _operator=">="
255 else
256 # this creates dependency on any version of kde4
257 _operator=">="
258 _pv="-${KDE_MINIMAL}"
259 _pvn=${_pv}
260 fi
261 ;;
262
263 # NEED_KDE="${PV}"
264 scm|svn|live|9999*)
265 _kdedir="live"
266 _operator=">="
267 _pv="-${NEED_KDE}:live"
268 _pvn="-${NEED_KDE}"
269 export NEED_KDE="live"
270 ;;
271 4.3 | 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*)
272 _kdedir="4.3"
273 _pv="-${NEED_KDE}:4.3"
274 _pvn="-${NEED_KDE}"
275 _operator=">="
276 ;;
277 4.2 | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*)
278 _kdedir="4.2"
279 _pv="-${NEED_KDE}:4.2"
280 _pvn="-${NEED_KDE}"
281 _operator=">="
282 ;;
283 4.1 | 4.0.9* | 4.0.8*)
284 _kdedir="4.1"
285 _pv="-${NEED_KDE}:4.1"
286 _pvn="-${NEED_KDE}"
287 _operator=">="
288 ;;
289 4.0* | 4)
290 _kdedir="4.0"
291 _operator=">="
292 _pv="-${NEED_KDE}:kde-4"
293 _pvn="-${NEED_KDE}"
294 ;;
295 3.9*)
296 _kdedir="3.9"
297 _operator=">="
298 _pv="-${NEED_KDE}:kde-4"
299 _pvn="-${NEED_KDE}"
300 ;;
301
302 # The ebuild handles dependencies, KDEDIR, SLOT.
303 none)
304 :
305 ;;
306
307 *)
308 die "NEED_KDE=${NEED_KDE} currently not supported."
309 ;;
310 esac
311
312 if [[ ${NEED_KDE} != none ]]; then
313 #Set the SLOT
314 if [[ -n ${KDEBASE} ]]; then
315 if [[ ${NEED_KDE} = live ]]; then
316 SLOT="live"
317 else
318 case ${KMNAME} in
319 koffice)
320 case ${PV} in
321 9999*) SLOT="live" ;;
322 *) SLOT="2" ;;
323 esac
324 ;;
325 kdevelop)
326 case ${PV} in
327 9999*) SLOT="live" ;;
328 4.0*|3.9*) SLOT="4" ;;
329 esac
330 ;;
331 kdevplatform)
332 case ${PV} in
333 9999*) SLOT="live" ;;
334 1.0*|0.9*) SLOT="1" ;;
335 esac
336 ;;
337 *)
338 case ${PV} in
339 9999*) SLOT="live" ;;
340 4.3* | 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*) SLOT="4.3" ;;
341 4.2* | 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6*) SLOT="4.2" ;;
342 4.1* | 4.0.9* | 4.0.8*) SLOT="4.1" ;;
343 *) SLOT="4.1" ;;
344 esac
345 ;;
346 esac
347 fi
348 fi
349
350 # Block installation of other SLOTS unless kdeprefix
351 for KDE_SLOT in ${KDE_SLOTS[@]}; do
352 # block non kdeprefix ${PN} on other slots
353 # we do this only if we do not depend on any version of kde
354 if [[ ${SLOT} != ${KDE_SLOT} ]]; then
355 RDEPEND="${RDEPEND}
356 !kdeprefix? ( !kde-base/${PN}:${KDE_SLOT}[-kdeprefix] )
357 "
358 fi
359 done
360
361 # Adding kdelibs and kdebase-data deps to all other packages.
362 if [[ ${PN} != kdelibs ]]; then
363 DEPEND="${DEPEND}
364 kdeprefix? ( ${_operator}kde-base/kdelibs${_pv}[kdeprefix] )
365 !kdeprefix? ( ${_operator}kde-base/kdelibs${_pvn}[-kdeprefix] )
366 "
367 RDEPEND="${RDEPEND}
368 kdeprefix? ( ${_operator}kde-base/kdelibs${_pv}[kdeprefix] )
369 !kdeprefix? ( ${_operator}kde-base/kdelibs${_pvn}[-kdeprefix] )
370 "
371 if [[ ${PN} != kdepimlibs && ${PN} != kdebase-data ]]; then
372 RDEPEND="${RDEPEND}
373 kdeprefix? ( ${_operator}kde-base/kdebase-data${_pv}[kdeprefix] )
374 !kdeprefix? ( ${_operator}kde-base/kdebase-data${_pvn}[-kdeprefix] )
375 "
376 fi
377 fi
378 unset _operator _pv _pvn
379 fi
380
381 # Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
382 # koffice ebuild, the URI should be set in the ebuild itself
383 case ${BUILD_TYPE} in
384 live)
385 SRC_URI=""
386 ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
387 # Split ebuild, or extragear stuff
388 if [[ -n ${KMNAME} ]]; then
389 ESVN_PROJECT="${KMNAME}"
390 if [[ -z ${KMNOMODULE} && -z ${KMMODULE} ]]; then
391 KMMODULE="${PN}"
392 fi
393 # Split kde-base/ ebuilds: (they reside in trunk/KDE)
394 case ${KMNAME} in
395 kdebase-*)
396 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/kdebase/${KMNAME#kdebase-}"
397 ;;
398 kdereview)
399 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
400 ;;
401 kde*)
402 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/${KMNAME}"
403 ;;
404 extragear*|playground*)
405 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
406 ;;
407 koffice)
408 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
409 ;;
410 *)
411 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
412 ;;
413 esac
414 else
415 # kdelibs, kdepimlibs
416 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/KDE/${PN}"
417 ESVN_PROJECT="${PN}"
418 fi
419 # limit syncing to 1 hour.
420 ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
421 ;;
422 *)
423 if [[ -n ${KDEBASE} ]]; then
424 if [[ -n ${KMNAME} ]]; then
425 case ${KMNAME} in
426 kdebase-apps)
427 _kmname="kdebase" ;;
428 *)
429 _kmname=${KMNAME} ;;
430 esac
431 else
432 _kmname=${PN}
433 fi
434 _kmname_pv="${_kmname}-${PV}"
435 if [[ $NEED_KDE != live ]]; then
436 case ${KDEBASE} in
437 kde-base)
438 case ${PV} in
439 4.2.9* | 4.2.8* | 4.2.7* | 4.2.6*)
440 SRC_URI="http://dev.gentooexperimental.org/~alexxy/kde/${PV}/${_kmname_pv}.tar.lzma" ;;
441 4.1.9* | 4.1.8* | 4.1.7* | 4.1.6* | 4.0.9* | 4.0.8*)
442 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
443 *) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
444 esac
445 ;;
446 koffice)
447 SRC_URI="mirror://kde/unstable/${_kmname_pv}/src/${_kmname_pv}.tar.bz2"
448 ;;
449 esac
450 fi
451 unset _kmname _kmname_pv
452 fi
453 ;;
454 esac
455
456 debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
457
458 # @ECLASS-VARIABLE: PREFIX
459 # @DESCRIPTION:
460 # Set the installation PREFIX. All kde-base ebuilds go into the KDE4 installation directory.
461 # Applications installed by the other ebuilds go into ${KDEDIR} by default, this value
462 # can be superseded by defining PREFIX before inheriting kde4-base.
463 # This value is set on pkg_setup
464 PREFIX=""
465
466 debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SLOT ${SLOT} - NEED_KDE ${NEED_KDE}"
467
468 # @FUNCTION: kde4-base_pkg_setup
469 # @DESCRIPTION:
470 # Adds flags needed by all of KDE 4 to $QT4_BUILT_WITH_USE_CHECK. Uses
471 # kde4-functions_check_use from kde4-functions.eclass to print appropriate
472 # errors and die if any required flags listed in $QT4_BUILT_WITH_USE_CHECK or
473 # $KDE4_BUILT_WITH_USE_CHECK are missing.
474 kde4-base_pkg_setup() {
475 debug-print-function ${FUNCNAME} "$@"
476
477 # Don't set KDEHOME during compile, it will cause access violations
478 unset KDEHOME
479
480 # Search for best suitable kde installation for misc kde package.
481 # Computation based on NEED_KDE and KDE_MINIMAL
482 [[ ${KDEBASE} != kde-base ]] && [[ ${NEED_KDE} = latest || ${NEED_KDE} = none ]] && get_latest_kdedir
483
484 # Set PREFIX
485 if use kdeprefix; then
486 KDEDIR="/usr/kde/${_kdedir}"
487 KDEDIRS="/usr/local/:/usr:${KDEDIR}"
488 else
489 KDEDIR="/usr"
490 KDEDIRS="/usr/local/:/usr"
491 fi
492 # Set the prefix based on KDEDIR
493 # Make it a consequence of kdeprefix
494 PREFIX=${KDEDIR}
495
496 unset _kdedir
497
498 # check if qt has correct deps
499 [[ -n ${QT4_BUILT_WITH_USE_CHECK} || -n ${KDE4_BUILT_WITH_USE_CHECK[@]} ]] && \
500 die "built_with_use illegal in this EAPI!"
501
502 if [[ ${BUILD_TYPE} = live && -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
503 echo
504 elog "WARNING! This is an experimental live ebuild of ${KMNAME:-${PN}}"
505 elog "Use it at your own risk."
506 elog "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
507 echo
508 fi
509 }
510
511 # @FUNCTION: kde4-base_src_unpack
512 # @DESCRIPTION:
513 # This function unpacks the source tarballs for KDE4 applications.
514 kde4-base_src_unpack() {
515 debug-print-function ${FUNCNAME} "$@"
516
517 if [[ ${BUILD_TYPE} = live ]]; then
518 migrate_store_dir
519 subversion_src_unpack
520 else
521 base_src_unpack
522 fi
523 }
524
525 # @FUNCTION: kde4-base_src_compile
526 # @DESCRIPTION:
527 # General pre-configure and pre-compile function for KDE4 applications.
528 # It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and
529 # enable_selected_linguas() in kde4-functions.eclass(5) for further details.
530 kde4-base_src_prepare() {
531 debug-print-function ${FUNCNAME} "$@"
532
533 # Only enable selected languages, used for KDE extragear apps.
534 if [[ -n ${KDE_LINGUAS} ]]; then
535 enable_selected_linguas
536 fi
537
538 base_src_prepare
539
540 # Save library dependencies
541 if [[ -n ${KMSAVELIBS} ]] ; then
542 save_library_dependencies
543 fi
544
545 # Inject library dependencies
546 if [[ -n ${KMLOADLIBS} ]] ; then
547 load_library_dependencies
548 fi
549 }
550
551 # @FUNCTION: kde4-base_src_configure
552 # @DESCRIPTION:
553 # Function for configuring the build of KDE4 applications.
554 kde4-base_src_configure() {
555 debug-print-function ${FUNCNAME} "$@"
556
557 # Handle common release builds
558 if ! has debug ${IUSE//+} || ! use debug; then
559 append-cppflags -DQT_NO_DEBUG
560 fi
561
562 # Enable generation of HTML handbook
563 if has htmlhandbook ${IUSE//+} && use htmlhandbook; then
564 ebegin "Enabling building of HTML handbook"
565 mycmakeargs="${mycmakeargs} -DKDE4_ENABLE_HTMLHANDBOOK=ON"
566 eend $?
567 fi
568
569 # Build tests in src_test only, where we override this value
570 mycmakeargs="${mycmakeargs} -DKDE4_BUILD_TESTS=OFF"
571
572 # Set distribution name
573 [[ ${PN} = kdelibs ]] && mycmakeargs="${mycmakeargs} -DKDE_DISTRIBUTION_TEXT=Gentoo"
574
575 # runpath linking
576 mycmakeargs="${mycmakeargs} -DKDE4_USE_ALWAYS_FULL_RPATH=ON"
577
578 # Here we set the install prefix
579 mycmakeargs="${mycmakeargs} -DCMAKE_INSTALL_PREFIX=${PREFIX}"
580
581 # If prefix is /usr, sysconf needs to be /etc, not /usr/etc
582 use kdeprefix || mycmakeargs="${mycmakeargs} -DSYSCONF_INSTALL_DIR=/etc"
583
584 # Set environment
585 QTEST_COLORED=1
586 QT_PLUGIN_PATH="${KDEDIR}/$(get_libdir)/kde4/plugins/"
587
588 # Hardcode path to *.pc KDE files
589 export PKG_CONFIG_PATH="${PKG_CONFIG_PATH:+${PKG_CONFIG_PATH}:}${KDEDIR}/$(get_libdir)/pkgconfig"
590
591 # Override some environment variables
592 PATH="${KDEDIR}/bin:${PATH}"
593 LDPATH="${KDEDIR}/$(get_libdir):${LDPATH}"
594
595 # Set cmake prefixes to allow buildsystem to localize valid KDE installation when more are present
596 if use kdeprefix; then
597 mycmakeargs="${mycmakeargs}
598 -DCMAKE_SYSTEM_INCLUDE_PATH=${KDEDIR}/include
599 -DCMAKE_SYSTEM_LIBRARY_PATH=${KDEDIR}/$(get_libdir)
600 -DCMAKE_SYSTEM_PREFIX_PATH=${KDEDIR}
601 -DCMAKE_SYSTEM_PROGRAM_PATH=${KDEDIR}/bin"
602 fi
603
604 [ -e CMakeLists.txt ] && cmake-utils_src_configure
605 }
606
607 # @FUNCTION: kde4-base_src_compile
608 # @DESCRIPTION:
609 # General function for compiling KDE4 applications.
610 kde4-base_src_compile() {
611 debug-print-function ${FUNCNAME} "$@"
612
613 kde4-base_src_make
614 }
615
616 # @FUNCTION: kde4-base_src_make
617 # @DESCRIPTION:
618 # Function for building KDE4 applications.
619 # Options are passed to cmake-utils_src_make.
620 kde4-base_src_make() {
621 debug-print-function ${FUNCNAME} "$@"
622
623 if [[ -d "$WORKDIR/${PN}_build" ]]; then
624 pushd "${WORKDIR}/${PN}_build" > /dev/null
625 fi
626 [ -e [Mm]akefile ] && cmake-utils_src_make "$@"
627 }
628
629 # @FUNCTION: kde4-base_src_test
630 # @DESCRIPTION:
631 # Function for testing KDE4 applications.
632 kde4-base_src_test() {
633 debug-print-function ${FUNCNAME} "$@"
634
635 # Override this value, set in kde4-base_src_configure()
636 mycmakeargs="${mycmakeargs} -DKDE4_BUILD_TESTS=ON"
637 cmake-utils_src_configure
638 kde4-base_src_compile
639
640 cmake-utils_src_test
641 }
642
643 # @FUNCTION: kde4-base_src_install
644 # @DESCRIPTION:
645 # Function for installing KDE4 applications.
646 kde4-base_src_install() {
647 debug-print-function ${FUNCNAME} "$@"
648
649 if [[ -n ${KMSAVELIBS} ]] ; then
650 install_library_dependencies
651 fi
652
653 kde4-base_src_make_doc
654 if [[ -d "$WORKDIR/${PN}_build" ]]; then
655 pushd "${WORKDIR}/${PN}_build" > /dev/null
656 fi
657 [ -e [Mm]akefile ] && cmake-utils_src_install
658 }
659
660 # @FUNCTION: kde4-base_src_make_doc
661 # @DESCRIPTION:
662 # Function for installing the documentation of KDE4 applications.
663 kde4-base_src_make_doc() {
664 debug-print-function ${FUNCNAME} "$@"
665
666 local doc
667 for doc in AUTHORS ChangeLog* README* NEWS TODO; do
668 [[ -s ${doc} ]] && dodoc ${doc}
669 done
670
671 if [[ -z ${KMNAME} ]]; then
672 for doc in {apps,runtime,workspace,.}/*/{AUTHORS,README*}; do
673 if [[ -s ${doc} ]]; then
674 local doc_complete=${doc}
675 doc="${doc#*/}"
676 newdoc "$doc_complete" "${doc%/*}.${doc##*/}"
677 fi
678 done
679 fi
680
681 if [[ -n ${KDEBASE} && -d "${D}/usr/share/doc/${PF}" ]]; then
682 # work around bug #97196
683 dodir /usr/share/doc/kde && \
684 mv "${D}/usr/share/doc/${PF}" "${D}"/usr/share/doc/kde/ || \
685 die "Failed to move docs to kde/ failed."
686 fi
687 }
688
689 # @FUNCTION: kde4-base_pkg_postinst
690 # @DESCRIPTION:
691 # Function to rebuild the KDE System Configuration Cache after an application has been installed.
692 kde4-base_pkg_postinst() {
693 debug-print-function ${FUNCNAME} "$@"
694
695 buildsycoca
696 }
697
698 # @FUNCTION: kde4-base_pkg_postrm
699 # @DESCRIPTION:
700 # Function to rebuild the KDE System Configuration Cache after an application has been removed.
701 kde4-base_pkg_postrm() {
702 debug-print-function ${FUNCNAME} "$@"
703
704 buildsycoca
705 }

  ViewVC Help
Powered by ViewVC 1.1.20