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

Diff of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.60 Revision 1.61
1# Copyright 1999-2010 Gentoo Foundation 1# Copyright 1999-2010 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.60 2010/05/15 14:03:06 reavertm Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.61 2010/05/15 15:19:04 reavertm Exp $
4 4
5# @ECLASS: kde4-base.eclass 5# @ECLASS: kde4-base.eclass
6# @MAINTAINER: 6# @MAINTAINER:
7# kde@gentoo.org 7# kde@gentoo.org
8# @BLURB: This eclass provides functions for kde 4.X ebuilds 8# @BLURB: This eclass provides functions for kde 4.X ebuilds
11# and KDE4 applications. 11# and KDE4 applications.
12# 12#
13# NOTE: KDE 4 ebuilds by default define EAPI="2", this can be redefined but 13# NOTE: KDE 4 ebuilds by default define EAPI="2", this can be redefined but
14# eclass will fail with version older than 2. 14# eclass will fail with version older than 2.
15 15
16inherit kde4-functions base eutils
17
18get_build_type
19if [[ ${BUILD_TYPE} = live ]]; then
20 if [[ ${KDEBASE} = kdevelop ]]; then
21 inherit git
22 else
23 inherit subversion
24 fi
25fi
26
16# @ECLASS-VARIABLE: CMAKE_REQUIRED 27# @ECLASS-VARIABLE: CMAKE_REQUIRED
17# @DESCRIPTION: 28# @DESCRIPTION:
18# Specify if cmake buildsystem is being used. Possible values are 'always' and 'never'. 29# Specify if cmake buildsystem is being used. Possible values are 'always' and 'never'.
19# Please note that if it's set to 'never' you need to explicitly override following phases: 30# Please note that if it's set to 'never' you need to explicitly override following phases:
20# src_configure, src_compile, src_test and src_install. 31# src_configure, src_compile, src_test and src_install.
21# Defaults to 'always'. 32# Defaults to 'always'.
22: ${CMAKE_REQUIRED:=always} 33: ${CMAKE_REQUIRED:=always}
23if [[ ${CMAKE_REQUIRED} = false || ${CMAKE_REQUIRED} = never ]]; then 34if [[ ${CMAKE_REQUIRED} = always ]]; then
24 buildsystem_eclass=""
25 export_fns=""
26else
27 buildsystem_eclass="cmake-utils" 35 buildsystem_eclass="cmake-utils"
28 export_fns="src_configure src_compile src_test src_install" 36 export_fns="src_configure src_compile src_test src_install"
29fi 37fi
30
31inherit kde4-functions
32
33get_build_type
34if [[ ${BUILD_TYPE} = live ]]; then
35 subversion_eclass="subversion"
36fi
37
38inherit base ${buildsystem_eclass} eutils ${subversion_eclass}
39
40EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare ${export_fns} pkg_postinst pkg_postrm
41
42unset buildsystem_eclass
43unset export_fns
44unset subversion_eclass
45
46case ${KDEBASE} in
47 kde-base)
48 HOMEPAGE="http://www.kde.org/"
49 LICENSE="GPL-2"
50 ;;
51 koffice)
52 HOMEPAGE="http://www.koffice.org/"
53 LICENSE="GPL-2"
54 ;;
55esac
56
57# @ECLASS-VARIABLE: OPENGL_REQUIRED
58# @DESCRIPTION:
59# Is qt-opengl required? Possible values are 'always', 'optional' and 'never'.
60# This variable must be set before inheriting any eclasses. Defaults to 'never'.
61OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}"
62
63# @ECLASS-VARIABLE: MULTIMEDIA_REQUIRED
64# @DESCRIPTION:
65# Is qt-multimedia required? Possible values are 'always', 'optional' and 'never'.
66# This variable must be set before inheriting any eclasses. Defaults to 'never'.
67MULTIMEDIA_REQUIRED="${MULTIMEDIA_REQUIRED:-never}"
68
69# @ECLASS-VARIABLE: WEBKIT_REQUIRED
70# @DESCRIPTION:
71# Is qt-webkit requred? Possible values are 'always', 'optional' and 'never'.
72# This variable must be set before inheriting any eclasses. Defaults to 'never'.
73WEBKIT_REQUIRED="${WEBKIT_REQUIRED:-never}"
74
75# @ECLASS-VARIABLE: CPPUNIT_REQUIRED
76# @DESCRIPTION:
77# Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'.
78# This variable must be set before inheriting any eclasses. Defaults to 'never'.
79CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}"
80
81# @ECLASS-VARIABLE: KDE_REQUIRED
82# @DESCRIPTION:
83# Is kde required? Possible values are 'always', 'optional' and 'never'.
84# This variable must be set before inheriting any eclasses. Defaults to 'always'
85# If set to always or optional, KDE_MINIMAL may be overriden as well.
86# Note that for kde-base packages this variable is fixed to 'always'.
87KDE_REQUIRED="${KDE_REQUIRED:-always}"
88 38
89# Verify KDE_MINIMAL (display QA notice in pkg_setup, still we need to fix it here) 39# Verify KDE_MINIMAL (display QA notice in pkg_setup, still we need to fix it here)
90if [[ -n ${KDE_MINIMAL} ]]; then 40if [[ -n ${KDE_MINIMAL} ]]; then
91 for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do 41 for slot in ${KDE_SLOTS[@]} ${KDE_LIVE_SLOTS[@]}; do
92 [[ ${KDE_MINIMAL} = ${slot} ]] && KDE_MINIMAL_VALID=1 && break 42 [[ ${KDE_MINIMAL} = ${slot} ]] && KDE_MINIMAL_VALID=1 && break
103# version for apps to work. Currently defaults to 4.3 53# version for apps to work. Currently defaults to 4.3
104# One may override this variable to raise version requirements. 54# One may override this variable to raise version requirements.
105# For possible values look at KDE_SLOTS and KDE_LIVE_SLOTS variables. 55# For possible values look at KDE_SLOTS and KDE_LIVE_SLOTS variables.
106# Note that it is fixed to ${SLOT} for kde-base packages. 56# Note that it is fixed to ${SLOT} for kde-base packages.
107KDE_MINIMAL="${KDE_MINIMAL:-4.3}" 57KDE_MINIMAL="${KDE_MINIMAL:-4.3}"
58
59# Set slot for packages in kde-base, koffice and kdevelop
60case ${KDEBASE} in
61 kde-base)
62 # Determine SLOT from PVs
63 case ${PV} in
64 *.9999*) SLOT="${PV/.9999*/}" ;; # stable live
65 4.5* | 4.4.[6-9]*) SLOT="4.5" ;;
66 4.4* | 4.3.[6-9]*) SLOT="4.4" ;;
67 4.3*) SLOT="4.3" ;;
68 9999*) SLOT="live" ;; # regular live
69 *) die "Unsupported ${PV}" ;;
70 esac
71 KDE_MINIMAL="${SLOT}"
72 ;;
73 koffice)
74 SLOT="2"
75 ;;
76 kdevelop)
77 if [[ ${BUILD_TYPE} = live ]]; then
78 KDEVELOP_VERSION="9999"
79 KDEVPLATFORM_VERSION="9999"
80 else
81 case ${PN} in
82 kdevelop|quanta)
83 KDEVELOP_VERSION=${PV}
84 KDEVPLATFORM_VERSION="$(($(get_major_version)-3)).$(get_after_major_version)"
85 ;;
86 *)
87 KDEVELOP_VERSION="$(($(get_major_version)+3)).$(get_after_major_version)"
88 KDEVPLATFORM_VERSION=${PV}
89 esac
90 fi
91 SLOT="4"
92 ;;
93esac
94
95slot_is_at_least 4.5 ${KDE_MINIMAL} && CMAKE_MIN_VERSION="2.6.4"
96
97inherit ${buildsystem_eclass}
98
99EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare ${export_fns} pkg_postinst pkg_postrm
100
101unset buildsystem_eclass
102unset export_fns
103
104case ${KDEBASE} in
105 kde-base)
106 HOMEPAGE="http://www.kde.org/"
107 LICENSE="GPL-2"
108 ;;
109 koffice)
110 HOMEPAGE="http://www.koffice.org/"
111 LICENSE="GPL-2"
112 ;;
113 kdevelop)
114 HOMEPAGE="http://www.kdevelop.org/"
115 LICENSE="GPL-2"
116 ;;
117esac
118
119# @ECLASS-VARIABLE: OPENGL_REQUIRED
120# @DESCRIPTION:
121# Is qt-opengl required? Possible values are 'always', 'optional' and 'never'.
122# This variable must be set before inheriting any eclasses. Defaults to 'never'.
123OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}"
124
125# @ECLASS-VARIABLE: MULTIMEDIA_REQUIRED
126# @DESCRIPTION:
127# Is qt-multimedia required? Possible values are 'always', 'optional' and 'never'.
128# This variable must be set before inheriting any eclasses. Defaults to 'never'.
129MULTIMEDIA_REQUIRED="${MULTIMEDIA_REQUIRED:-never}"
130
131# @ECLASS-VARIABLE: WEBKIT_REQUIRED
132# @DESCRIPTION:
133# Is qt-webkit requred? Possible values are 'always', 'optional' and 'never'.
134# This variable must be set before inheriting any eclasses. Defaults to 'never'.
135WEBKIT_REQUIRED="${WEBKIT_REQUIRED:-never}"
136
137# @ECLASS-VARIABLE: CPPUNIT_REQUIRED
138# @DESCRIPTION:
139# Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'.
140# This variable must be set before inheriting any eclasses. Defaults to 'never'.
141CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}"
142
143# @ECLASS-VARIABLE: KDE_REQUIRED
144# @DESCRIPTION:
145# Is kde required? Possible values are 'always', 'optional' and 'never'.
146# This variable must be set before inheriting any eclasses. Defaults to 'always'
147# If set to always or optional, KDE_MINIMAL may be overriden as well.
148# Note that for kde-base packages this variable is fixed to 'always'.
149KDE_REQUIRED="${KDE_REQUIRED:-always}"
108 150
109# Setup packages inheriting this eclass 151# Setup packages inheriting this eclass
110case ${KDEBASE} in 152case ${KDEBASE} in
111 kde-base) 153 kde-base)
112 if [[ $BUILD_TYPE = live ]]; then 154 if [[ $BUILD_TYPE = live ]]; then
116 IUSE+=" +kdeprefix" 158 IUSE+=" +kdeprefix"
117 else 159 else
118 # All other ebuild types default to -kdeprefix as before 160 # All other ebuild types default to -kdeprefix as before
119 IUSE+=" kdeprefix" 161 IUSE+=" kdeprefix"
120 fi 162 fi
121 # Determine SLOT from PVs
122 case ${PV} in
123 *.9999*) SLOT="${PV/.9999*/}" ;; # stable live
124 4.5* | 4.4.[6-9]*) SLOT="4.5" ;;
125 4.4* | 4.3.[6-9]*) SLOT="4.4" ;;
126 4.3*) SLOT="4.3" ;;
127 9999*) SLOT="live" ;; # regular live
128 *) die "Unsupported ${PV}" ;;
129 esac
130 # This code is to prevent portage from searching GENTOO_MIRRORS for 163 # This code is to prevent portage from searching GENTOO_MIRRORS for
131 # packages that will never be mirrored. (As they only will ever be in 164 # packages that will never be mirrored. (As they only will ever be in
132 # the overlay). 165 # the overlay).
133 case ${PV} in 166 case ${PV} in
134 *9999* | 4.?.[6-9]?) 167 *9999* | 4.?.[6-9]?)
135 RESTRICT+=" mirror" 168 RESTRICT+=" mirror"
136 ;; 169 ;;
137 esac 170 esac
138 KDE_MINIMAL="${SLOT}"
139 _kdedir="${SLOT}"
140
141 # Block installation of other SLOTS unless kdeprefix 171 # Block installation of other SLOTS unless kdeprefix
142 RDEPEND+=" $(block_other_slots)" 172 RDEPEND+=" $(block_other_slots)"
143 ;; 173 ;;
144 koffice)
145 SLOT="2"
146 ;;
147esac 174esac
148 175
149# @ECLASS-VARIABLE: QT_MINIMAL 176# @ECLASS-VARIABLE: QT_MINIMAL
150# @DESCRIPTION: 177# @DESCRIPTION:
151# Determine version of qt we enforce as minimal for the package. 4.4.0 4.5.1.. 178# Determine version of qt we enforce as minimal for the package. 4.4.0 4.5.1..
152# Currently defaults to 4.5.1 for KDE 4.3 and earlier 179# Currently defaults to 4.5.1 for KDE 4.3 and earlier
153# or 4.6.0_rc1 for KDE 4.4 and later 180# or 4.6.0 for KDE 4.4 and later
154if slot_is_at_least 4.4 "${KDE_MINIMAL}"; then 181if slot_is_at_least 4.4 "${KDE_MINIMAL}"; then
155 QT_MINIMAL="${QT_MINIMAL:-4.6.0}" 182 QT_MINIMAL="${QT_MINIMAL:-4.6.0}"
156fi 183fi
157 184
158QT_MINIMAL="${QT_MINIMAL:-4.5.1}" 185QT_MINIMAL="${QT_MINIMAL:-4.5.1}"
231esac 258esac
232unset cppuintdepend 259unset cppuintdepend
233 260
234# KDE dependencies 261# KDE dependencies
235kdecommondepend=" 262kdecommondepend="
236 dev-lang/perl
237 >=x11-libs/qt-core-${QT_MINIMAL}:4[qt3support,ssl] 263 >=x11-libs/qt-core-${QT_MINIMAL}:4[qt3support,ssl]
238 >=x11-libs/qt-gui-${QT_MINIMAL}:4[dbus] 264 >=x11-libs/qt-gui-${QT_MINIMAL}:4[dbus]
239 >=x11-libs/qt-qt3support-${QT_MINIMAL}:4[kde] 265 >=x11-libs/qt-qt3support-${QT_MINIMAL}:4[kde]
240 >=x11-libs/qt-script-${QT_MINIMAL}:4 266 >=x11-libs/qt-script-${QT_MINIMAL}:4
241 >=x11-libs/qt-sql-${QT_MINIMAL}:4[qt3support] 267 >=x11-libs/qt-sql-${QT_MINIMAL}:4[qt3support]
245 x11-libs/libXext 271 x11-libs/libXext
246 x11-libs/libXt 272 x11-libs/libXt
247 x11-libs/libXxf86vm 273 x11-libs/libXxf86vm
248 ) 274 )
249" 275"
276#perl is not needed on host (+ difficult crosscompilation)
277tc-is-cross-compiler || kdecommondepend="$kdecommondepend dev-lang/perl"
278
250if [[ ${PN} != kdelibs ]]; then 279if [[ ${PN} != kdelibs ]]; then
251 if [[ ${KDEBASE} = kde-base ]]; then 280 if [[ ${KDEBASE} = kde-base ]]; then
252 kdecommondepend+=" $(add_kdebase_dep kdelibs)" 281 kdecommondepend+=" $(add_kdebase_dep kdelibs)"
253 # libknotificationitem only when SLOT is 4.3 282 # libknotificationitem only when SLOT is 4.3
254 [[ ${PN} != libknotificationitem ]] && [[ ${SLOT} = 4.3 ]] && \ 283 [[ ${PN} != libknotificationitem ]] && [[ ${SLOT} = 4.3 ]] && \
255 kdecommondepend+=" $(add_kdebase_dep libknotificationitem)" 284 kdecommondepend+=" $(add_kdebase_dep libknotificationitem)"
256 else 285 else
257 kdecommondepend+=" 286 kdecommondepend+="
258 >=kde-base/kdelibs-${KDE_MINIMAL} 287 >=kde-base/kdelibs-${KDE_MINIMAL}
259 " 288 "
289 if [[ ${KDEBASE} = kdevelop ]]; then
290 if [[ ${PN} != kdevplatform ]]; then
291 kdecommondepend+="
292 >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION}
293 "
294 fi
295 fi
260 fi 296 fi
261fi 297fi
262kdedepend=" 298kdedepend="
263 dev-util/automoc 299 dev-util/automoc
264 dev-util/pkgconfig 300 dev-util/pkgconfig
297 333
298# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a 334# Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
299# koffice ebuild, the URI should be set in the ebuild itself 335# koffice ebuild, the URI should be set in the ebuild itself
300case ${BUILD_TYPE} in 336case ${BUILD_TYPE} in
301 live) 337 live)
302 # Determine branch URL based on live type
303 local branch_prefix
304 case ${PV} in
305 9999*)
306 # trunk
307 branch_prefix="trunk/KDE"
308 ;;
309 *)
310 # branch
311 branch_prefix="branches/KDE/${SLOT}"
312 # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
313 # @DESCRIPTION
314 # Suffix appended to ESVN_PROJECT depending on fetched branch.
315 # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
316 ESVN_PROJECT_SUFFIX="-${PV}"
317 ;;
318 esac
319 SRC_URI="" 338 SRC_URI=""
339 if has subversion ${INHERITED}; then
340 # Determine branch URL based on live type
341 local branch_prefix
342 case ${PV} in
343 9999*)
344 # trunk
345 branch_prefix="trunk/KDE"
346 ;;
347 *)
348 # branch
349 branch_prefix="branches/KDE/${SLOT}"
350 # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
351 # @DESCRIPTION
352 # Suffix appended to ESVN_PROJECT depending on fetched branch.
353 # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
354 ESVN_PROJECT_SUFFIX="-${PV}"
355 ;;
356 esac
320 # @ECLASS-VARIABLE: ESVN_MIRROR 357 # @ECLASS-VARIABLE: ESVN_MIRROR
321 # @DESCRIPTION: 358 # @DESCRIPTION:
322 # This variable allows easy overriding of default kde mirror service 359 # This variable allows easy overriding of default kde mirror service
323 # (anonsvn) with anything else you might want to use. 360 # (anonsvn) with anything else you might want to use.
324 ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde} 361 ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
325 # Split ebuild, or extragear stuff 362 # Split ebuild, or extragear stuff
326 if [[ -n ${KMNAME} ]]; then 363 if [[ -n ${KMNAME} ]]; then
327 ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}" 364 ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
365 if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
366 KMMODULE="${PN}"
367 fi
368 # Split kde-base/ ebuilds: (they reside in trunk/KDE)
369 case ${KMNAME} in
370 kdebase-*)
371 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}"
372 ;;
373 kdelibs-*)
374 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
375 ;;
376 kdereview*)
377 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
378 ;;
379 kdesupport)
380 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
381 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
382 ;;
383 kde*)
384 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
385 ;;
386 extragear*|playground*)
387 # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
388 # build packages from same svn location.
389 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
390 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
391 ;;
392 koffice)
393 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
394 ;;
395 *)
396 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
397 ;;
398 esac
399 else
400 # kdelibs, kdepimlibs
401 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
402 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
403 fi
404 # @ECLASS-VARIABLE: ESVN_UP_FREQ
405 # @DESCRIPTION:
406 # This variable is used for specifying the timeout between svn synces
407 # for kde-base and koffice modules. Does not affect misc apps.
408 # Default value is 1 hour.
409 [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
410 elif has git ${INHERITED}; then
328 if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then 411 if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
329 KMMODULE="${PN}" 412 KMMODULE="${PN}"
330 fi 413 fi
331 # Split kde-base/ ebuilds: (they reside in trunk/KDE)
332 case ${KMNAME} in 414 case ${KDEBASE} in
333 kdebase-*) 415 kdevelop)
334 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}" 416 EGIT_REPO_URI="git://gitorious.org/${KMNAME}/${KMMODULE}.git"
335 ;;
336 kdelibs-*)
337 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
338 ;;
339 kdereview*)
340 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
341 ;;
342 kdesupport)
343 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
344 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
345 ;;
346 kde*)
347 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
348 ;;
349 extragear*|playground*)
350 # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
351 # build packages from same svn location.
352 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
353 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
354 ;;
355 koffice)
356 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}"
357 ;;
358 *)
359 ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
360 ;; 417 ;;
361 esac 418 esac
362 else
363 # kdelibs, kdepimlibs
364 ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
365 ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
366 fi 419 fi
367 # @ECLASS-VARIABLE: ESVN_UP_FREQ
368 # @DESCRIPTION:
369 # This variable is used for specifying the timeout between svn synces
370 # for kde-base and koffice modules. Does not affect misc apps.
371 # Default value is 1 hour.
372 [[ ${KDEBASE} = kde-base || ${KDEBASE} = koffice ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
373 ;; 420 ;;
374 *) 421 *)
375 if [[ -n ${KDEBASE} ]]; then 422 if [[ -n ${KDEBASE} ]]; then
376 if [[ -n ${KMNAME} ]]; then 423 if [[ -n ${KMNAME} ]]; then
377 case ${KMNAME} in 424 case ${KMNAME} in
390 4.[34].8[05] | 4.[34].9[0568]) 437 4.[34].8[05] | 4.[34].9[0568])
391 # block for normally packed unstable releases 438 # block for normally packed unstable releases
392 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;; 439 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
393 4.[34].[6-9]*) 440 4.[34].[6-9]*)
394 # Repacked tarballs: need to depend on xz-utils to ensure that they can be unpacked 441 # Repacked tarballs: need to depend on xz-utils to ensure that they can be unpacked
395 SRC_URI="http://dev.gentooexperimental.org/~alexxy/kde/${PV}/${_kmname_pv}.tar.xz" 442 SRC_URI="http://dev.gentooexperimental.org/~alexxy/kde/${PV}/src/${_kmname_pv}.tar.xz"
396 DEPEND+=" app-arch/xz-utils" 443 DEPEND+=" app-arch/xz-utils"
397 ;; 444 ;;
398 *) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;; 445 *) SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
399 esac 446 esac
400 ;; 447 ;;
401 koffice) 448 koffice)
402 case ${PV} in 449 case ${PV} in
403 2.0.[6-9]*) SRC_URI="mirror://kde/unstable/${_kmname_pv}/src/${_kmname_pv}.tar.bz2" ;; 450 2.1.[6-9]*) SRC_URI="mirror://kde/unstable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
404 *) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;; 451 *) SRC_URI="mirror://kde/stable/${_kmname_pv}/${_kmname_pv}.tar.bz2" ;;
405 esac 452 esac
453 ;;
454 kdevelop)
455 SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2"
456 ;;
406 esac 457 esac
407 unset _kmname _kmname_pv 458 unset _kmname _kmname_pv
408 fi 459 fi
409 ;; 460 ;;
410esac 461esac
439 # Don't set KDEHOME during compilation, it will cause access violations 490 # Don't set KDEHOME during compilation, it will cause access violations
440 unset KDEHOME 491 unset KDEHOME
441 492
442 if [[ ${KDEBASE} = kde-base ]]; then 493 if [[ ${KDEBASE} = kde-base ]]; then
443 if use kdeprefix; then 494 if use kdeprefix; then
444 KDEDIR=/usr/kde/${_kdedir} 495 KDEDIR=/usr/kde/${SLOT}
445 else 496 else
446 KDEDIR=/usr 497 KDEDIR=/usr
447 fi 498 fi
448 : ${PREFIX:=${KDEDIR}} 499 : ${PREFIX:=${KDEDIR}}
449 else 500 else
479 # Point to correct QT plugins path 530 # Point to correct QT plugins path
480 QT_PLUGIN_PATH="${EKDEDIR}/$(get_libdir)/kde4/plugins/" 531 QT_PLUGIN_PATH="${EKDEDIR}/$(get_libdir)/kde4/plugins/"
481 532
482 # Fix XDG collision with sandbox 533 # Fix XDG collision with sandbox
483 export XDG_CONFIG_HOME="${T}" 534 export XDG_CONFIG_HOME="${T}"
484 # Not needed anymore
485 unset _kdedir
486} 535}
487 536
488# @FUNCTION: kde4-base_src_unpack 537# @FUNCTION: kde4-base_src_unpack
489# @DESCRIPTION: 538# @DESCRIPTION:
490# This function unpacks the source tarballs for KDE4 applications. 539# This function unpacks the source tarballs for KDE4 applications.
491kde4-base_src_unpack() { 540kde4-base_src_unpack() {
492 debug-print-function ${FUNCNAME} "$@" 541 debug-print-function ${FUNCNAME} "$@"
493 542
494 if [[ ${BUILD_TYPE} = live ]]; then 543 if [[ ${BUILD_TYPE} = live ]]; then
544 if has subversion ${INHERITED}; then
495 migrate_store_dir 545 migrate_store_dir
496 subversion_src_unpack 546 subversion_src_unpack
547 elif has git ${INHERITED}; then
548 git_src_unpack
549 fi
497 elif [[ ${EAPI} == 2 ]]; then 550 elif [[ ${EAPI} == 2 ]]; then
498 local file 551 local file
499 for file in ${A}; do 552 for file in ${A}; do
500 # This setup is because EAPI <= 2 cannot unpack *.tar.xz files 553 # This setup is because EAPI <= 2 cannot unpack *.tar.xz files
501 # directly, so we do it ourselves (using the exact same code as portage) 554 # directly, so we do it ourselves (using the exact same code as portage)
535 # kdelibs inherits kde4-base but handle installing the handbook itself 588 # kdelibs inherits kde4-base but handle installing the handbook itself
536 if ! has kde4-meta ${INHERITED}; then 589 if ! has kde4-meta ${INHERITED}; then
537 has handbook ${IUSE//+} && [[ ${PN} != kde-l10n ]] && [[ ${PN} != kdelibs ]] && enable_selected_doc_linguas 590 has handbook ${IUSE//+} && [[ ${PN} != kde-l10n ]] && [[ ${PN} != kdelibs ]] && enable_selected_doc_linguas
538 fi 591 fi
539 592
540 [[ ${BUILD_TYPE} = live ]] && subversion_src_prepare 593 # SCM bootstrap
594 if [[ ${BUILD_TYPE} = live ]]; then
595 if has subversion ${INHERITED}; then
596 subversion_src_prepare
597 elif has git ${INHERITED}; then
598 git_src_prepare
599 fi
600 fi
541 601
542 # Apply patches 602 # Apply patches
543 base_src_prepare 603 base_src_prepare
544 epatch_user 604 epatch_user
545 605
577 637
578 # Set distribution name 638 # Set distribution name
579 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo) 639 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo)
580 640
581 # Here we set the install prefix 641 # Here we set the install prefix
582 cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}") 642 tc-is-cross-compiler || cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}")
583 643
584 # Use colors 644 # Use colors
585 QTEST_COLORED=1 645 QTEST_COLORED=1
586 646
587 # Shadow existing /usr installations 647 # Shadow existing /usr installations
590 # Handle kdeprefix-ed KDE 650 # Handle kdeprefix-ed KDE
591 if [[ ${KDEDIR} != /usr ]]; then 651 if [[ ${KDEDIR} != /usr ]]; then
592 # Override some environment variables - only when kdeprefix is different, 652 # Override some environment variables - only when kdeprefix is different,
593 # to not break ccache/distcc 653 # to not break ccache/distcc
594 PATH="${EKDEDIR}/bin:${PATH}" 654 PATH="${EKDEDIR}/bin:${PATH}"
595 LDPATH="${EKDEDIR}/$(get_libdir)${LDPATH+:}${LDPATH}" 655
656 # Append library search path
657 append-ldflags -L"${EKDEDIR}/$(get_libdir)"
596 658
597 # Append full RPATH 659 # Append full RPATH
598 cmakeargs+=(-DCMAKE_SKIP_RPATH=OFF) 660 cmakeargs+=(-DCMAKE_SKIP_RPATH=OFF)
599 661
600 # Set cmake prefixes to allow buildsystem to locate valid KDE installation 662 # Set cmake prefixes to allow buildsystem to locate valid KDE installation
601 # when more are present 663 # when more are present
602 cmakeargs+=(-DCMAKE_SYSTEM_PREFIX_PATH="${EKDEDIR}") 664 cmakeargs+=(-DCMAKE_SYSTEM_PREFIX_PATH="${EKDEDIR}")
603 fi 665 fi
666
667 #qmake -query QT_INSTALL_LIBS unavailable when cross-compiling
668 tc-is-cross-compiler && cmakeargs+=(-DQT_LIBRARY_DIR=${ROOT}/usr/lib/qt4)
669 #kde-config -path data unavailable when cross-compiling
670 tc-is-cross-compiler && cmakeargs+=(-DKDE4_DATA_DIR=${ROOT}/usr/share/apps/)
604 671
605 # Handle kdeprefix in application itself 672 # Handle kdeprefix in application itself
606 if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then 673 if ! has kdeprefix ${IUSE//+} || ! use kdeprefix; then
607 # If prefix is /usr, sysconf needs to be /etc, not /usr/etc 674 # If prefix is /usr, sysconf needs to be /etc, not /usr/etc
608 cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc) 675 cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc)
653 720
654 if [[ -n ${KMSAVELIBS} ]] ; then 721 if [[ -n ${KMSAVELIBS} ]] ; then
655 install_library_dependencies 722 install_library_dependencies
656 fi 723 fi
657 724
658 kde4-base_src_make_doc 725 # Install common documentation of KDE4 applications
726 local doc
727 if ! has kde4-meta ${INHERITED}; then
728 for doc in AUTHORS ChangeLog* README* NEWS TODO HACKING; do
729 [[ -s "${S}/${doc}" ]] && dodoc "${doc}"
730 done
731 # kdelibs, kdepimlibs
732 if [[ -z ${KMNAME} ]]; then
733 for doc in "${S}"/*/{AUTHORS,ChangeLog*,README*,NEWS,TODO,HACKING}; do
734 if [[ -s "${S}/${doc}" ]]; then
735 local doc_complete=${doc}
736 doc="${doc#*/}"
737 newdoc "$doc_complete" "${doc%/*}.${doc##*/}"
738 fi
739 done
740 fi
741 fi
742
659 cmake-utils_src_install 743 cmake-utils_src_install
660}
661
662# @FUNCTION: kde4-base_src_make_doc
663# @DESCRIPTION:
664# Function for installing the documentation of KDE4 applications.
665kde4-base_src_make_doc() {
666 debug-print-function ${FUNCNAME} "$@"
667
668 local doc
669 for doc in AUTHORS ChangeLog* README* NEWS TODO; do
670 [[ -s ${doc} ]] && dodoc ${doc}
671 done
672
673 if [[ -z ${KMNAME} ]]; then
674 for doc in {apps,runtime,workspace,.}/*/{AUTHORS,README*}; do
675 if [[ -s ${doc} ]]; then
676 local doc_complete=${doc}
677 doc="${doc#*/}"
678 newdoc "$doc_complete" "${doc%/*}.${doc##*/}"
679 fi
680 done
681 fi
682} 744}
683 745
684# @FUNCTION: kde4-base_pkg_postinst 746# @FUNCTION: kde4-base_pkg_postinst
685# @DESCRIPTION: 747# @DESCRIPTION:
686# Function to rebuild the KDE System Configuration Cache after an application has been installed. 748# Function to rebuild the KDE System Configuration Cache after an application has been installed.

Legend:
Removed from v.1.60  
changed lines
  Added in v.1.61

  ViewVC Help
Powered by ViewVC 1.1.20