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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.138 - (hide annotations) (download)
Fri Jul 11 08:21:58 2014 UTC (3 years, 4 months ago) by ulm
Branch: MAIN
Changes since 1.137: +3 -3 lines
Avoid reserved names for functions and variables, bug 516092.

1 dilfridge 1.132 # Copyright 1999-2014 Gentoo Foundation
2 ingmar 1.1 # Distributed under the terms of the GNU General Public License v2
3 ulm 1.138 # $Header: /var/cvsroot/gentoo-x86/eclass/kde4-base.eclass,v 1.137 2014/07/04 08:01:51 ulm 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 kensington 1.128 # NOTE: KDE 4 ebuilds currently support EAPIs 4 and 5. This will be
14 alexxy 1.123 # reviewed over time as new EAPI versions are approved.
15 scarabeus 1.22
16 ulm 1.138 if [[ -z ${_KDE4_BASE_ECLASS} ]]; then
17     _KDE4_BASE_ECLASS=1
18 kensington 1.125
19 dilfridge 1.111 # @ECLASS-VARIABLE: KDE_SELINUX_MODULE
20     # @DESCRIPTION:
21     # If set to "none", do nothing.
22     # For any other value, add selinux to IUSE, and depending on that useflag
23     # add a dependency on sec-policy/selinux-${KDE_SELINUX_MODULE} to (R)DEPEND
24     : ${KDE_SELINUX_MODULE:=none}
25    
26 kensington 1.119 # @ECLASS-VARIABLE: VIRTUALDBUS_TEST
27     # @DESCRIPTION:
28     # If defined, launch and use a private dbus session during src_test.
29    
30 alexxy 1.78 # @ECLASS-VARIABLE: VIRTUALX_REQUIRED
31     # @DESCRIPTION:
32 dilfridge 1.85 # For proper description see virtualx.eclass manpage.
33     # Here we redefine default value to be manual, if your package needs virtualx
34     # for tests you should proceed with setting VIRTUALX_REQUIRED=test.
35 alexxy 1.78 : ${VIRTUALX_REQUIRED:=manual}
36    
37 dilfridge 1.132 inherit kde4-functions toolchain-funcs fdo-mime flag-o-matic gnome2-utils virtualx versionator eutils multilib
38 reavertm 1.61
39 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
40 scarabeus 1.87 case ${KDE_SCM} in
41     svn) inherit subversion ;;
42 dilfridge 1.132 git) inherit git-r3 ;;
43 scarabeus 1.87 esac
44 reavertm 1.61 fi
45    
46 scarabeus 1.52 # @ECLASS-VARIABLE: CMAKE_REQUIRED
47 scarabeus 1.44 # @DESCRIPTION:
48 scarabeus 1.47 # Specify if cmake buildsystem is being used. Possible values are 'always' and 'never'.
49     # Please note that if it's set to 'never' you need to explicitly override following phases:
50     # src_configure, src_compile, src_test and src_install.
51     # Defaults to 'always'.
52 scarabeus 1.54 : ${CMAKE_REQUIRED:=always}
53 reavertm 1.61 if [[ ${CMAKE_REQUIRED} = always ]]; then
54 scarabeus 1.47 buildsystem_eclass="cmake-utils"
55     export_fns="src_configure src_compile src_test src_install"
56 scarabeus 1.44 fi
57    
58 reavertm 1.61 # @ECLASS-VARIABLE: KDE_MINIMAL
59     # @DESCRIPTION:
60     # This variable is used when KDE_REQUIRED is set, to specify required KDE minimal
61 reavertm 1.66 # version for apps to work. Currently defaults to 4.4
62 reavertm 1.61 # One may override this variable to raise version requirements.
63 abcd 1.97 # Note that it is fixed to ${PV} for kde-base packages.
64 reavertm 1.66 KDE_MINIMAL="${KDE_MINIMAL:-4.4}"
65 scarabeus 1.48
66 scarabeus 1.87 # Set slot for KDEBASE known packages
67 reavertm 1.61 case ${KDEBASE} in
68     kde-base)
69 dilfridge 1.132 case ${EAPI} in
70     5)
71     SLOT=4/$(get_version_component_range 1-2)
72     ;;
73     *)
74     SLOT=4
75     ;;
76     esac
77 abcd 1.97 KDE_MINIMAL="${PV}"
78 reavertm 1.61 ;;
79     kdevelop)
80 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
81 reavertm 1.65 # @ECLASS-VARIABLE: KDEVELOP_VERSION
82     # @DESCRIPTION:
83     # Specifies KDevelop version. Default is 4.0.0 for tagged packages and 9999 for live packages.
84     # Applies to KDEBASE=kdevelop only.
85 kensington 1.136 KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.9999}"
86 reavertm 1.65 # @ECLASS-VARIABLE: KDEVPLATFORM_VERSION
87     # @DESCRIPTION:
88     # Specifies KDevplatform version. Default is 1.0.0 for tagged packages and 9999 for live packages.
89     # Applies to KDEBASE=kdevelop only.
90 kensington 1.136 KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-4.9999}"
91 reavertm 1.61 else
92     case ${PN} in
93 kensington 1.136 kdevelop)
94 reavertm 1.61 KDEVELOP_VERSION=${PV}
95     KDEVPLATFORM_VERSION="$(($(get_major_version)-3)).$(get_after_major_version)"
96     ;;
97 dilfridge 1.132 kdevplatform|kdevelop-php*|kdevelop-python)
98 reavertm 1.61 KDEVELOP_VERSION="$(($(get_major_version)+3)).$(get_after_major_version)"
99     KDEVPLATFORM_VERSION=${PV}
100 reavertm 1.65 ;;
101     *)
102     KDEVELOP_VERSION="${KDEVELOP_VERSION:-4.0.0}"
103     KDEVPLATFORM_VERSION="${KDEVPLATFORM_VERSION:-1.0.0}"
104 reavertm 1.61 esac
105     fi
106     SLOT="4"
107     ;;
108     esac
109    
110     inherit ${buildsystem_eclass}
111 scarabeus 1.47
112 scarabeus 1.87 EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare ${export_fns} pkg_preinst pkg_postinst pkg_postrm
113 scarabeus 1.44
114 scarabeus 1.47 unset buildsystem_eclass
115     unset export_fns
116 ingmar 1.1
117 alexxy 1.78 # @ECLASS-VARIABLE: DECLARATIVE_REQUIRED
118     # @DESCRIPTION:
119 pesa 1.124 # Is qtdeclarative required? Possible values are 'always', 'optional' and 'never'.
120 alexxy 1.78 # This variable must be set before inheriting any eclasses. Defaults to 'never'.
121     DECLARATIVE_REQUIRED="${DECLARATIVE_REQUIRED:-never}"
122    
123     # @ECLASS-VARIABLE: QTHELP_REQUIRED
124     # @DESCRIPTION:
125 pesa 1.124 # Is qthelp required? Possible values are 'always', 'optional' and 'never'.
126 alexxy 1.78 # This variable must be set before inheriting any eclasses. Defaults to 'never'.
127     QTHELP_REQUIRED="${QTHELP_REQUIRED:-never}"
128    
129 philantrop 1.7 # @ECLASS-VARIABLE: OPENGL_REQUIRED
130     # @DESCRIPTION:
131 pesa 1.124 # Is qtopengl required? Possible values are 'always', 'optional' and 'never'.
132 philantrop 1.7 # This variable must be set before inheriting any eclasses. Defaults to 'never'.
133     OPENGL_REQUIRED="${OPENGL_REQUIRED:-never}"
134    
135 abcd 1.56 # @ECLASS-VARIABLE: MULTIMEDIA_REQUIRED
136     # @DESCRIPTION:
137 pesa 1.124 # Is qtmultimedia required? Possible values are 'always', 'optional' and 'never'.
138 abcd 1.56 # This variable must be set before inheriting any eclasses. Defaults to 'never'.
139     MULTIMEDIA_REQUIRED="${MULTIMEDIA_REQUIRED:-never}"
140    
141 zlin 1.4 # @ECLASS-VARIABLE: CPPUNIT_REQUIRED
142     # @DESCRIPTION:
143     # Is cppunit required for tests? Possible values are 'always', 'optional' and 'never'.
144     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
145     CPPUNIT_REQUIRED="${CPPUNIT_REQUIRED:-never}"
146    
147 scarabeus 1.34 # @ECLASS-VARIABLE: KDE_REQUIRED
148     # @DESCRIPTION:
149     # Is kde required? Possible values are 'always', 'optional' and 'never'.
150     # This variable must be set before inheriting any eclasses. Defaults to 'always'
151 reavertm 1.74 # If set to 'always' or 'optional', KDE_MINIMAL may be overriden as well.
152 scarabeus 1.34 # Note that for kde-base packages this variable is fixed to 'always'.
153     KDE_REQUIRED="${KDE_REQUIRED:-always}"
154    
155 reavertm 1.69 # @ECLASS-VARIABLE: KDE_HANDBOOK
156     # @DESCRIPTION:
157 reavertm 1.74 # Set to enable handbook in application. Possible values are 'always', 'optional'
158     # (handbook USE flag) and 'never'.
159     # This variable must be set before inheriting any eclasses. Defaults to 'never'.
160     # It adds default handbook dirs for kde-base packages to KMEXTRA and in any case it
161     # ensures buildtime and runtime dependencies.
162     KDE_HANDBOOK="${KDE_HANDBOOK:-never}"
163 reavertm 1.69
164 scarabeus 1.87 # @ECLASS-VARIABLE: KDE_LINGUAS_LIVE_OVERRIDE
165     # @DESCRIPTION:
166     # Set this varible if you want your live package to manage its
167     # translations. (Mostly all kde ebuilds does not ship documentation
168     # and translations in live ebuilds)
169 johu 1.120 if [[ ${KDE_BUILD_TYPE} == live && -z ${KDE_LINGUAS_LIVE_OVERRIDE} ]]; then
170 abcd 1.90 # Kdebase actualy provides the handbooks even for live stuff
171     [[ ${KDEBASE} == kde-base ]] || KDE_HANDBOOK=never
172 scarabeus 1.87 KDE_LINGUAS=""
173     fi
174    
175 scarabeus 1.47 # Setup packages inheriting this eclass
176     case ${KDEBASE} in
177     kde-base)
178 reavertm 1.69 HOMEPAGE="http://www.kde.org/"
179     LICENSE="GPL-2"
180 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live && -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
181 kensington 1.119 # Disable tests for live ebuilds by default
182 scarabeus 1.47 RESTRICT+=" test"
183 abcd 1.96 fi
184    
185 scarabeus 1.47 # This code is to prevent portage from searching GENTOO_MIRRORS for
186     # packages that will never be mirrored. (As they only will ever be in
187     # the overlay).
188     case ${PV} in
189 kensington 1.125 *9999* | 4.?.[6-9]? | 4.??.[6-9]?)
190 scarabeus 1.47 RESTRICT+=" mirror"
191     ;;
192     esac
193     ;;
194 reavertm 1.69 kdevelop)
195     HOMEPAGE="http://www.kdevelop.org/"
196     LICENSE="GPL-2"
197     ;;
198 scarabeus 1.47 esac
199 scarabeus 1.34
200 scarabeus 1.47 # @ECLASS-VARIABLE: QT_MINIMAL
201 scarabeus 1.39 # @DESCRIPTION:
202 scarabeus 1.87 # Determine version of qt we enforce as minimal for the package.
203 johu 1.134 QT_MINIMAL="${QT_MINIMAL:-4.8.5}"
204 scarabeus 1.47
205 alexxy 1.78 # Declarative dependencies
206     qtdeclarativedepend="
207 pesa 1.124 >=dev-qt/qtdeclarative-${QT_MINIMAL}:4
208 alexxy 1.78 "
209     case ${DECLARATIVE_REQUIRED} in
210     always)
211     COMMONDEPEND+=" ${qtdeclarativedepend}"
212     ;;
213     optional)
214     IUSE+=" declarative"
215     COMMONDEPEND+=" declarative? ( ${qtdeclarativedepend} )"
216     ;;
217     *) ;;
218     esac
219     unset qtdeclarativedepend
220    
221     # QtHelp dependencies
222     qthelpdepend="
223 pesa 1.124 >=dev-qt/qthelp-${QT_MINIMAL}:4
224 alexxy 1.78 "
225     case ${QTHELP_REQUIRED} in
226     always)
227     COMMONDEPEND+=" ${qthelpdepend}"
228     ;;
229     optional)
230     IUSE+=" qthelp"
231     COMMONDEPEND+=" qthelp? ( ${qthelpdepend} )"
232     ;;
233     esac
234     unset qthelpdepend
235    
236 scarabeus 1.34 # OpenGL dependencies
237     qtopengldepend="
238 pesa 1.124 >=dev-qt/qtopengl-${QT_MINIMAL}:4
239 scarabeus 1.34 "
240     case ${OPENGL_REQUIRED} in
241     always)
242 wired 1.42 COMMONDEPEND+=" ${qtopengldepend}"
243 scarabeus 1.34 ;;
244     optional)
245 wired 1.42 IUSE+=" opengl"
246     COMMONDEPEND+=" opengl? ( ${qtopengldepend} )"
247 scarabeus 1.34 ;;
248     *) ;;
249     esac
250     unset qtopengldepend
251    
252 abcd 1.56 # MultiMedia dependencies
253     qtmultimediadepend="
254 pesa 1.124 >=dev-qt/qtmultimedia-${QT_MINIMAL}:4
255 abcd 1.56 "
256     case ${MULTIMEDIA_REQUIRED} in
257     always)
258     COMMONDEPEND+=" ${qtmultimediadepend}"
259     ;;
260     optional)
261     IUSE+=" multimedia"
262     COMMONDEPEND+=" multimedia? ( ${qtmultimediadepend} )"
263     ;;
264     *) ;;
265     esac
266     unset qtmultimediadepend
267    
268 scarabeus 1.34 # CppUnit dependencies
269     cppuintdepend="
270     dev-util/cppunit
271     "
272 scarabeus 1.22 case ${CPPUNIT_REQUIRED} in
273 zlin 1.4 always)
274 wired 1.42 DEPEND+=" ${cppuintdepend}"
275 scarabeus 1.22 ;;
276 zlin 1.4 optional)
277 wired 1.42 IUSE+=" test"
278     DEPEND+=" test? ( ${cppuintdepend} )"
279 scarabeus 1.22 ;;
280 scarabeus 1.34 *) ;;
281 zlin 1.4 esac
282 scarabeus 1.34 unset cppuintdepend
283    
284     # KDE dependencies
285 reavertm 1.65 # Qt accessibility classes are needed in various places, bug 325461
286 scarabeus 1.34 kdecommondepend="
287 reavertm 1.73 dev-lang/perl
288 pesa 1.124 >=dev-qt/qt3support-${QT_MINIMAL}:4[accessibility]
289     >=dev-qt/qtcore-${QT_MINIMAL}:4[qt3support,ssl]
290     >=dev-qt/qtdbus-${QT_MINIMAL}:4
291 johu 1.134 >=dev-qt/designer-${QT_MINIMAL}:4[-phonon]
292     >=dev-qt/qtgui-${QT_MINIMAL}:4[accessibility,dbus(+)]
293 pesa 1.124 >=dev-qt/qtscript-${QT_MINIMAL}:4
294     >=dev-qt/qtsql-${QT_MINIMAL}:4[qt3support]
295     >=dev-qt/qtsvg-${QT_MINIMAL}:4
296     >=dev-qt/qttest-${QT_MINIMAL}:4
297     >=dev-qt/qtwebkit-${QT_MINIMAL}:4
298 scarabeus 1.34 "
299 reavertm 1.61
300 scarabeus 1.34 if [[ ${PN} != kdelibs ]]; then
301 reavertm 1.73 kdecommondepend+=" $(add_kdebase_dep kdelibs)"
302     if [[ ${KDEBASE} = kdevelop ]]; then
303     if [[ ${PN} != kdevplatform ]]; then
304     # @ECLASS-VARIABLE: KDEVPLATFORM_REQUIRED
305     # @DESCRIPTION:
306     # Specifies whether kdevplatform is required. Possible values are 'always' (default) and 'never'.
307     # Applies to KDEBASE=kdevelop only.
308     KDEVPLATFORM_REQUIRED="${KDEVPLATFORM_REQUIRED:-always}"
309     case ${KDEVPLATFORM_REQUIRED} in
310     always)
311     kdecommondepend+="
312 kensington 1.136 >=dev-util/kdevplatform-${KDEVPLATFORM_VERSION}:4
313 reavertm 1.73 "
314     ;;
315     *) ;;
316     esac
317 reavertm 1.61 fi
318 ingmar 1.1 fi
319     fi
320 scarabeus 1.87
321 scarabeus 1.34 kdedepend="
322 reavertm 1.60 dev-util/automoc
323 jdhore 1.115 virtual/pkgconfig
324 scarabeus 1.54 !aqua? (
325 xarthisius 1.83 >=x11-libs/libXtst-1.1.0
326 scarabeus 1.54 x11-proto/xf86vidmodeproto
327     )
328 scarabeus 1.34 "
329 scarabeus 1.87
330 reavertm 1.73 kderdepend=""
331 reavertm 1.69
332 scarabeus 1.87 # all packages needs oxygen icons for basic iconset
333 dilfridge 1.82 if [[ ${PN} != oxygen-icons ]]; then
334     kderdepend+=" $(add_kdebase_dep oxygen-icons)"
335     fi
336    
337 kensington 1.131 # add a dependency over kde-l10n
338 kensington 1.128 if [[ ${KDEBASE} != "kde-base" && -n ${KDE_LINGUAS} ]]; then
339 scarabeus 1.87 for _lingua in ${KDE_LINGUAS}; do
340 scarabeus 1.89 # if our package has lignuas, pull in kde-l10n with selected lingua enabled,
341     # but only for selected ones.
342     # this can't be done on one line because if user doesn't use any localisation
343     # then he is probably not interested in kde-l10n at all.
344     kderdepend+="
345 scarabeus 1.91 linguas_${_lingua}? ( $(add_kdebase_dep kde-l10n "linguas_${_lingua}(+)") )
346 scarabeus 1.89 "
347 scarabeus 1.87 done
348 scarabeus 1.89 unset _lingua
349 scarabeus 1.87 fi
350    
351 reavertm 1.74 kdehandbookdepend="
352     app-text/docbook-xml-dtd:4.2
353     app-text/docbook-xsl-stylesheets
354     "
355     kdehandbookrdepend="
356     $(add_kdebase_dep kdelibs 'handbook')
357     "
358     case ${KDE_HANDBOOK} in
359     always)
360     kdedepend+=" ${kdehandbookdepend}"
361     [[ ${PN} != kdelibs ]] && kderdepend+=" ${kdehandbookrdepend}"
362     ;;
363     optional)
364     IUSE+=" +handbook"
365     kdedepend+=" handbook? ( ${kdehandbookdepend} )"
366     [[ ${PN} != kdelibs ]] && kderdepend+=" handbook? ( ${kdehandbookrdepend} )"
367     ;;
368     *) ;;
369     esac
370     unset kdehandbookdepend kdehandbookrdepend
371 reavertm 1.69
372 dilfridge 1.111 case ${KDE_SELINUX_MODULE} in
373     none) ;;
374     *)
375     IUSE+=" selinux"
376     kdecommondepend+=" selinux? ( sec-policy/selinux-${KDE_SELINUX_MODULE} )"
377     ;;
378     esac
379    
380 alexxy 1.123 # We always need the aqua useflag because otherwise we cannot = refer to it inside
381     # add_kdebase_dep. This was always kind of a bug, but came to light with EAPI=5
382     # (where referring to a use flag not in IUSE masks the ebuild).
383     # The only alternative would be to prohibit using add_kdebase_dep if KDE_REQUIRED=never
384     IUSE+=" aqua"
385    
386 scarabeus 1.34 case ${KDE_REQUIRED} in
387     always)
388 reavertm 1.73 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" ${kdecommondepend}"
389     [[ -n ${kdedepend} ]] && DEPEND+=" ${kdedepend}"
390     [[ -n ${kderdepend} ]] && RDEPEND+=" ${kderdepend}"
391 scarabeus 1.34 ;;
392     optional)
393 alexxy 1.123 IUSE+=" kde"
394 reavertm 1.73 [[ -n ${kdecommondepend} ]] && COMMONDEPEND+=" kde? ( ${kdecommondepend} )"
395     [[ -n ${kdedepend} ]] && DEPEND+=" kde? ( ${kdedepend} )"
396     [[ -n ${kderdepend} ]] && RDEPEND+=" kde? ( ${kderdepend} )"
397 scarabeus 1.34 ;;
398     *) ;;
399     esac
400 scarabeus 1.54
401 reavertm 1.73 unset kdecommondepend kdedepend kderdepend
402 scarabeus 1.34
403     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: COMMONDEPEND is ${COMMONDEPEND}"
404     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: DEPEND (only) is ${DEPEND}"
405     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: RDEPEND (only) is ${RDEPEND}"
406    
407     # Accumulate dependencies set by this eclass
408 wired 1.42 DEPEND+=" ${COMMONDEPEND}"
409     RDEPEND+=" ${COMMONDEPEND}"
410     unset COMMONDEPEND
411 ingmar 1.1
412     # Fetch section - If the ebuild's category is not 'kde-base' and if it is not a
413 johu 1.121 # kdevelop ebuild, the URI should be set in the ebuild itself
414 scarabeus 1.87 _calculate_src_uri() {
415     debug-print-function ${FUNCNAME} "$@"
416    
417     local _kmname _kmname_pv
418    
419     # we calculate URI only for known KDEBASE modules
420     [[ -n ${KDEBASE} ]] || return
421    
422     # calculate tarball module name
423     if [[ -n ${KMNAME} ]]; then
424 kensington 1.129 _kmname="${KMNAME}"
425 scarabeus 1.87 else
426     _kmname=${PN}
427     fi
428     _kmname_pv="${_kmname}-${PV}"
429     case ${KDEBASE} in
430     kde-base)
431     case ${PV} in
432 dilfridge 1.113 4.4.11.1)
433     # KDEPIM 4.4, special case
434     # TODO: Remove this part when KDEPIM 4.4 gets out of the tree
435     SRC_URI="mirror://kde/stable/kdepim-${PV}/src/${_kmname_pv}.tar.bz2" ;;
436 alexxy 1.123 4.?.[6-9]? | 4.??.[6-9]?)
437 scarabeus 1.87 # Unstable KDE SC releases
438 johu 1.120 SRC_URI="mirror://kde/unstable/${PV}/src/${_kmname_pv}.tar.xz" ;;
439 alexxy 1.123 4.[1-7].[12345])
440 johu 1.120 # Stable KDE SC with old .bz2 support
441     SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.bz2" ;;
442 patrick 1.133 4.11.7)
443     # Part of 4.12 actually, sigh. Not stable for next release!
444     SRC_URI="mirror://kde/stable/4.12.3/src/${_kmname_pv}.tar.xz" ;;
445 johu 1.134 4.11.8)
446     # Part of 4.12 actually, sigh. Not stable for next release!
447     SRC_URI="mirror://kde/stable/4.12.4/src/${_kmname_pv}.tar.xz" ;;
448 johu 1.135 4.11.9)
449     # Part of 4.12 actually, sigh. Not stable for next release!
450     SRC_URI="mirror://kde/stable/4.12.5/src/${_kmname_pv}.tar.xz" ;;
451 kensington 1.136 4.11.10)
452     # Part of 4.13 actually, sigh. Not stable for next release!
453     SRC_URI="mirror://kde/stable/4.13.2/src/${_kmname_pv}.tar.xz" ;;
454 scarabeus 1.87 *)
455     # Stable KDE SC releases
456 johu 1.120 SRC_URI="mirror://kde/stable/${PV}/src/${_kmname_pv}.tar.xz" ;;
457 scarabeus 1.87 esac
458     ;;
459 dilfridge 1.113 kdevelop|kdevelop-php*|kdevplatform)
460     case ${KDEVELOP_VERSION} in
461 alexxy 1.123 4.[123].[6-9]*) SRC_URI="mirror://kde/unstable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;;
462 dilfridge 1.113 *) SRC_URI="mirror://kde/stable/kdevelop/${KDEVELOP_VERSION}/src/${P}.tar.bz2" ;;
463     esac
464 scarabeus 1.87 ;;
465     esac
466     }
467    
468     _calculate_live_repo() {
469     debug-print-function ${FUNCNAME} "$@"
470    
471     SRC_URI=""
472     case ${KDE_SCM} in
473     svn)
474 reavertm 1.61 # Determine branch URL based on live type
475     local branch_prefix
476     case ${PV} in
477 kensington 1.136 4.9999*)
478 reavertm 1.61 # trunk
479     branch_prefix="trunk/KDE"
480     ;;
481     *)
482     # branch
483 abcd 1.97 branch_prefix="branches/KDE/$(get_kde_version)"
484 reavertm 1.61 # @ECLASS-VARIABLE: ESVN_PROJECT_SUFFIX
485     # @DESCRIPTION
486     # Suffix appended to ESVN_PROJECT depending on fetched branch.
487     # Defaults is empty (for -9999 = trunk), and "-${PV}" otherwise.
488     ESVN_PROJECT_SUFFIX="-${PV}"
489     ;;
490     esac
491     # @ECLASS-VARIABLE: ESVN_MIRROR
492     # @DESCRIPTION:
493     # This variable allows easy overriding of default kde mirror service
494     # (anonsvn) with anything else you might want to use.
495     ESVN_MIRROR=${ESVN_MIRROR:=svn://anonsvn.kde.org/home/kde}
496     # Split ebuild, or extragear stuff
497     if [[ -n ${KMNAME} ]]; then
498     ESVN_PROJECT="${KMNAME}${ESVN_PROJECT_SUFFIX}"
499     if [[ -z ${KMNOMODULE} ]] && [[ -z ${KMMODULE} ]]; then
500     KMMODULE="${PN}"
501     fi
502     # Split kde-base/ ebuilds: (they reside in trunk/KDE)
503     case ${KMNAME} in
504     kdebase-*)
505     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdebase/${KMNAME#kdebase-}"
506     ;;
507     kdelibs-*)
508     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/kdelibs/${KMNAME#kdelibs-}"
509     ;;
510     kdereview*)
511     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
512     ;;
513     kdesupport)
514     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
515     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
516     ;;
517     kde*)
518     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${KMNAME}"
519     ;;
520     extragear*|playground*)
521     # Unpack them in toplevel dir, so that they won't conflict with kde4-meta
522     # build packages from same svn location.
523     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
524     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
525     ;;
526     *)
527     ESVN_REPO_URI="${ESVN_MIRROR}/trunk/${KMNAME}/${KMMODULE}"
528     ;;
529     esac
530     else
531     # kdelibs, kdepimlibs
532     ESVN_REPO_URI="${ESVN_MIRROR}/${branch_prefix}/${PN}"
533     ESVN_PROJECT="${PN}${ESVN_PROJECT_SUFFIX}"
534     fi
535     # @ECLASS-VARIABLE: ESVN_UP_FREQ
536     # @DESCRIPTION:
537     # This variable is used for specifying the timeout between svn synces
538 johu 1.121 # for kde-base modules. Does not affect misc apps.
539 reavertm 1.61 # Default value is 1 hour.
540 johu 1.121 [[ ${KDEBASE} = kde-base ]] && ESVN_UP_FREQ=${ESVN_UP_FREQ:-1}
541 scarabeus 1.87 ;;
542     git)
543     local _kmname
544     # @ECLASS-VARIABLE: EGIT_MIRROR
545     # @DESCRIPTION:
546     # This variable allows easy overriding of default kde mirror service
547     # (anongit) with anything else you might want to use.
548     EGIT_MIRROR=${EGIT_MIRROR:=git://anongit.kde.org}
549    
550     # @ECLASS-VARIABLE: EGIT_REPONAME
551     # @DESCRIPTION:
552     # This variable allows overriding of default repository
553     # name. Specify only if this differ from PN and KMNAME.
554     if [[ -n ${EGIT_REPONAME} ]]; then
555     # the repository and kmname different
556     _kmname=${EGIT_REPONAME}
557     elif [[ -n ${KMNAME} ]]; then
558     _kmname=${KMNAME}
559 scarabeus 1.22 else
560     _kmname=${PN}
561     fi
562 scarabeus 1.87
563     # default branching
564 kensington 1.136 [[ ${PV} != 4.9999* && ${KDEBASE} == kde-base ]] && \
565 alexxy 1.108 EGIT_BRANCH="KDE/$(get_kde_version)"
566 scarabeus 1.87
567 abcd 1.99 # default repo uri
568 dilfridge 1.132 EGIT_REPO_URI+=( "${EGIT_MIRROR}/${_kmname}" )
569 scarabeus 1.87
570     debug-print "${FUNCNAME}: Repository: ${EGIT_REPO_URI}"
571     debug-print "${FUNCNAME}: Branch: ${EGIT_BRANCH}"
572     ;;
573     esac
574     }
575    
576 johu 1.120 case ${KDE_BUILD_TYPE} in
577 scarabeus 1.87 live) _calculate_live_repo ;;
578     *) _calculate_src_uri ;;
579 scarabeus 1.22 esac
580 ingmar 1.1
581     debug-print "${LINENO} ${ECLASS} ${FUNCNAME}: SRC_URI is ${SRC_URI}"
582    
583     # @ECLASS-VARIABLE: PREFIX
584     # @DESCRIPTION:
585 scarabeus 1.34 # Set the installation PREFIX for non kde-base applications. It defaults to /usr.
586 abcd 1.100 # kde-base packages go into KDE4 installation directory (/usr).
587     # No matter the PREFIX, package will be built against KDE installed in /usr.
588 ingmar 1.1
589     # @FUNCTION: kde4-base_pkg_setup
590     # @DESCRIPTION:
591 abcd 1.100 # Do some basic settings
592 ingmar 1.1 kde4-base_pkg_setup() {
593 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
594 ingmar 1.1
595 dilfridge 1.111 if has handbook ${IUSE} || has "+handbook" ${IUSE} && [ "${KDE_HANDBOOK}" != optional ] ; then
596     eqawarn "Handbook support is enabled via KDE_HANDBOOK=optional in the ebuild."
597     eqawarn "Please do not just set IUSE=handbook, as this leads to dependency errors."
598     fi
599    
600 scarabeus 1.34 # Don't set KDEHOME during compilation, it will cause access violations
601 jmbsvicetto 1.13 unset KDEHOME
602    
603 scarabeus 1.91 # Check if gcc compiler is fresh enough.
604     # In theory should be in pkg_pretend but we check it only for kdelibs there
605     # and for others we do just quick scan in pkg_setup because pkg_pretend
606     # executions consume quite some time.
607 kensington 1.128 if [[ ${MERGE_TYPE} != binary ]]; then
608     [[ $(gcc-major-version) -lt 4 ]] || \
609     ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -le 3 ]] ) \
610     && die "Sorry, but gcc-4.3 and earlier wont work for KDE (see bug 354837)."
611 dilfridge 1.101 fi
612 scarabeus 1.91
613 abcd 1.96 KDEDIR=/usr
614     : ${PREFIX:=/usr}
615     EKDEDIR=${EPREFIX}/usr
616 abcd 1.57
617 wired 1.42 # Point to correct QT plugins path
618 abcd 1.100 QT_PLUGIN_PATH="${EPREFIX}/usr/$(get_libdir)/kde4/plugins/"
619 jmbsvicetto 1.13
620 scarabeus 1.47 # Fix XDG collision with sandbox
621     export XDG_CONFIG_HOME="${T}"
622 zlin 1.4 }
623    
624     # @FUNCTION: kde4-base_src_unpack
625     # @DESCRIPTION:
626     # This function unpacks the source tarballs for KDE4 applications.
627 ingmar 1.1 kde4-base_src_unpack() {
628 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
629 ingmar 1.1
630 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
631 scarabeus 1.87 case ${KDE_SCM} in
632     svn)
633     subversion_src_unpack
634     ;;
635     git)
636 dilfridge 1.132 git-r3_src_unpack
637 scarabeus 1.87 ;;
638     esac
639 ingmar 1.1 else
640 scarabeus 1.54 unpack ${A}
641 ingmar 1.1 fi
642 scarabeus 1.22 }
643 ingmar 1.1
644 scarabeus 1.44 # @FUNCTION: kde4-base_src_prepare
645 scarabeus 1.22 # @DESCRIPTION:
646     # General pre-configure and pre-compile function for KDE4 applications.
647     # It also handles translations if KDE_LINGUAS is defined. See KDE_LINGUAS and
648 wired 1.42 # enable_selected_linguas() and enable_selected_doc_linguas()
649     # in kde4-functions.eclass(5) for further details.
650 scarabeus 1.22 kde4-base_src_prepare() {
651     debug-print-function ${FUNCNAME} "$@"
652 zlin 1.8
653 scarabeus 1.87 # enable handbook and linguas only when not using live ebuild
654    
655 zlin 1.8 # Only enable selected languages, used for KDE extragear apps.
656 scarabeus 1.30 if [[ -n ${KDE_LINGUAS} ]]; then
657 zlin 1.8 enable_selected_linguas
658     fi
659 ingmar 1.1
660 wired 1.42 # Enable/disable handbooks for kde4-base packages
661 scarabeus 1.44 # kde-l10n inherits kde4-base but is metpackage, so no check for doc
662     # kdelibs inherits kde4-base but handle installing the handbook itself
663 abcd 1.110 if ! has kde4-meta ${INHERITED} && in_iuse handbook; then
664 scarabeus 1.87 if [[ ${KDEBASE} == kde-base ]]; then
665     if [[ ${PN} != kde-l10n && ${PN} != kdepim-l10n && ${PN} != kdelibs ]] && use !handbook; then
666     # documentation in kde4-functions
667     : ${KDE_DOC_DIRS:=doc}
668     local dir
669     for dir in ${KDE_DOC_DIRS}; do
670 abcd 1.90 sed -e "\!^[[:space:]]*add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
671     -e "\!^[[:space:]]*ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
672     -e "\!^[[:space:]]*macro_optional_add_subdirectory[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
673     -e "\!^[[:space:]]*MACRO_OPTIONAL_ADD_SUBDIRECTORY[[:space:]]*([[:space:]]*${dir}[[:space:]]*)!s/^/#DONOTCOMPILE /" \
674 scarabeus 1.87 -i CMakeLists.txt || die "failed to comment out handbook"
675     done
676     fi
677     else
678     enable_selected_doc_linguas
679     fi
680 wired 1.42 fi
681    
682 reavertm 1.61 # SCM bootstrap
683 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
684 scarabeus 1.87 case ${KDE_SCM} in
685     svn) subversion_src_prepare ;;
686     esac
687 reavertm 1.61 fi
688 reavertm 1.58
689 dilfridge 1.132 # Apply patches, cmake-utils does the job already
690     cmake-utils_src_prepare
691 scarabeus 1.20
692 scarabeus 1.22 # Save library dependencies
693 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
694 scarabeus 1.22 save_library_dependencies
695     fi
696 scarabeus 1.20
697 scarabeus 1.22 # Inject library dependencies
698 scarabeus 1.30 if [[ -n ${KMLOADLIBS} ]] ; then
699 scarabeus 1.22 load_library_dependencies
700 jmbsvicetto 1.13 fi
701 dilfridge 1.76
702 johu 1.121 # Hack for manuals relying on outdated DTD, only outside kde-base/...
703 alexxy 1.78 if [[ -z ${KDEBASE} ]]; then
704 dilfridge 1.77 find "${S}" -name "*.docbook" \
705     -exec sed -i -r \
706     -e 's:-//KDE//DTD DocBook XML V4\.1(\..)?-Based Variant V1\.[01]//EN:-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN:g' {} + \
707     || die 'failed to fix DocBook variant version'
708     fi
709 ingmar 1.1 }
710    
711     # @FUNCTION: kde4-base_src_configure
712     # @DESCRIPTION:
713     # Function for configuring the build of KDE4 applications.
714     kde4-base_src_configure() {
715     debug-print-function ${FUNCNAME} "$@"
716    
717     # Build tests in src_test only, where we override this value
718 abcd 1.56 local cmakeargs=(-DKDE4_BUILD_TESTS=OFF)
719 ingmar 1.1
720 abcd 1.110 if use_if_iuse debug; then
721 reavertm 1.68 # Set "real" debug mode
722 johu 1.120 CMAKE_KDE_BUILD_TYPE="Debugfull"
723 reavertm 1.68 else
724     # Handle common release builds
725     append-cppflags -DQT_NO_DEBUG
726 scarabeus 1.38 fi
727    
728 ingmar 1.1 # Set distribution name
729 abcd 1.56 [[ ${PN} = kdelibs ]] && cmakeargs+=(-DKDE_DISTRIBUTION_TEXT=Gentoo)
730 ingmar 1.1
731     # Here we set the install prefix
732 reavertm 1.61 tc-is-cross-compiler || cmakeargs+=(-DCMAKE_INSTALL_PREFIX="${EPREFIX}${PREFIX}")
733 jmbsvicetto 1.13
734 wired 1.42 # Use colors
735 ingmar 1.1 QTEST_COLORED=1
736 jmbsvicetto 1.13
737 abcd 1.100 # Shadow existing installations
738 scarabeus 1.34 unset KDEDIRS
739    
740 reavertm 1.61 #qmake -query QT_INSTALL_LIBS unavailable when cross-compiling
741 abcd 1.96 tc-is-cross-compiler && cmakeargs+=(-DQT_LIBRARY_DIR=${ROOT}/usr/$(get_libdir)/qt4)
742 reavertm 1.61 #kde-config -path data unavailable when cross-compiling
743     tc-is-cross-compiler && cmakeargs+=(-DKDE4_DATA_DIR=${ROOT}/usr/share/apps/)
744    
745 abcd 1.96 # sysconf needs to be /etc, not /usr/etc
746     cmakeargs+=(-DSYSCONF_INSTALL_DIR="${EPREFIX}"/etc)
747 abcd 1.56
748 abcd 1.57 if [[ $(declare -p mycmakeargs 2>&-) != "declare -a mycmakeargs="* ]]; then
749 dilfridge 1.116 if [[ ${mycmakeargs} ]]; then
750     eqawarn "mycmakeargs should always be declared as an array, not a string"
751     fi
752 abcd 1.56 mycmakeargs=(${mycmakeargs})
753 scarabeus 1.22 fi
754    
755 abcd 1.56 mycmakeargs=("${cmakeargs[@]}" "${mycmakeargs[@]}")
756 scarabeus 1.34
757     cmake-utils_src_configure
758 scarabeus 1.22 }
759    
760     # @FUNCTION: kde4-base_src_compile
761     # @DESCRIPTION:
762     # General function for compiling KDE4 applications.
763     kde4-base_src_compile() {
764     debug-print-function ${FUNCNAME} "$@"
765    
766 wired 1.42 cmake-utils_src_compile "$@"
767 ingmar 1.1 }
768    
769     # @FUNCTION: kde4-base_src_test
770     # @DESCRIPTION:
771     # Function for testing KDE4 applications.
772     kde4-base_src_test() {
773     debug-print-function ${FUNCNAME} "$@"
774    
775 kensington 1.119 local kded4_pid
776    
777     _test_runner() {
778     if [[ -n "${VIRTUALDBUS_TEST}" ]]; then
779     export $(dbus-launch)
780     kded4 2>&1 > /dev/null &
781     kded4_pid=$!
782     fi
783    
784     cmake-utils_src_test
785 ulm 1.137 }
786 ingmar 1.1
787 dilfridge 1.85 # When run as normal user during ebuild development with the ebuild command, the
788     # kde tests tend to access the session DBUS. This however is not possible in a real
789     # emerge or on the tinderbox.
790     # > make sure it does not happen, so bad tests can be recognized and disabled
791 kensington 1.119 unset DBUS_SESSION_BUS_ADDRESS DBUS_SESSION_BUS_PID
792    
793     # Override this value, set in kde4-base_src_configure()
794     mycmakeargs+=(-DKDE4_BUILD_TESTS=ON)
795     cmake-utils_src_configure
796     kde4-base_src_compile
797 dilfridge 1.85
798     if [[ ${VIRTUALX_REQUIRED} == always || ${VIRTUALX_REQUIRED} == test ]]; then
799     # check for sanity if anyone already redefined VIRTUALX_COMMAND from the default
800 scarabeus 1.87 if [[ ${VIRTUALX_COMMAND} != emake ]]; then
801 alexxy 1.78 # surprise- we are already INSIDE virtualmake!!!
802 dilfridge 1.85 debug-print "QA Notice: This version of kde4-base.eclass includes the virtualx functionality."
803     debug-print " You may NOT set VIRTUALX_COMMAND or call virtualmake from the ebuild."
804     debug-print " Setting VIRTUALX_REQUIRED is completely sufficient. See the"
805     debug-print " kde4-base.eclass docs for details... Applying workaround."
806 kensington 1.119 _test_runner
807 alexxy 1.78 else
808 kensington 1.119 VIRTUALX_COMMAND="_test_runner" virtualmake
809 alexxy 1.78 fi
810     else
811 kensington 1.119 _test_runner
812     fi
813    
814     if [ -n "${kded4_pid}" ] ; then
815     kill ${kded4_pid}
816     fi
817    
818     if [ -n "${DBUS_SESSION_BUS_PID}" ] ; then
819     kill ${DBUS_SESSION_BUS_PID}
820 alexxy 1.78 fi
821 ingmar 1.1 }
822    
823     # @FUNCTION: kde4-base_src_install
824     # @DESCRIPTION:
825     # Function for installing KDE4 applications.
826     kde4-base_src_install() {
827     debug-print-function ${FUNCNAME} "$@"
828    
829 scarabeus 1.30 if [[ -n ${KMSAVELIBS} ]] ; then
830 scarabeus 1.22 install_library_dependencies
831     fi
832    
833 reavertm 1.61 # Install common documentation of KDE4 applications
834 ingmar 1.1 local doc
835 reavertm 1.61 if ! has kde4-meta ${INHERITED}; then
836 reavertm 1.62 for doc in "${S}"/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
837 scarabeus 1.87 [[ -f ${doc} && -s ${doc} ]] && dodoc "${doc}"
838 reavertm 1.62 done
839     for doc in "${S}"/*/{AUTHORS,CHANGELOG,ChangeLog*,README*,NEWS,TODO,HACKING}; do
840 scarabeus 1.87 [[ -f ${doc} && -s ${doc} ]] && newdoc "${doc}" "$(basename $(dirname ${doc})).$(basename ${doc})"
841 ingmar 1.1 done
842     fi
843 reavertm 1.61
844     cmake-utils_src_install
845 abcd 1.90
846 kensington 1.128 # We don't want ${PREFIX}/share/doc/HTML to be compressed,
847 abcd 1.90 # because then khelpcenter can't find the docs
848 kensington 1.128 [[ -d ${ED}/${PREFIX}/share/doc/HTML ]] &&
849 abcd 1.90 docompress -x ${PREFIX}/share/doc/HTML
850 ingmar 1.1 }
851    
852 scarabeus 1.87 # @FUNCTION: kde4-base_pkg_preinst
853     # @DESCRIPTION:
854     # Function storing icon caches
855     kde4-base_pkg_preinst() {
856     debug-print-function ${FUNCNAME} "$@"
857    
858     gnome2_icon_savelist
859 johu 1.120 if [[ ${KDE_BUILD_TYPE} == live && ${KDE_SCM} == svn ]]; then
860 abcd 1.110 subversion_pkg_preinst
861     fi
862 scarabeus 1.87 }
863    
864 ingmar 1.1 # @FUNCTION: kde4-base_pkg_postinst
865     # @DESCRIPTION:
866     # Function to rebuild the KDE System Configuration Cache after an application has been installed.
867     kde4-base_pkg_postinst() {
868 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
869    
870 scarabeus 1.87 gnome2_icon_cache_update
871     fdo-mime_desktop_database_update
872     fdo-mime_mime_database_update
873 ingmar 1.1 buildsycoca
874 scarabeus 1.36
875 scarabeus 1.87 if [[ -z ${I_KNOW_WHAT_I_AM_DOING} ]]; then
876 johu 1.120 if [[ ${KDE_BUILD_TYPE} = live ]]; then
877 scarabeus 1.87 echo
878     einfo "WARNING! This is an experimental live ebuild of ${CATEGORY}/${PN}"
879     einfo "Use it at your own risk."
880     einfo "Do _NOT_ file bugs at bugs.gentoo.org because of this ebuild!"
881     echo
882     fi
883     # for all 3rd party soft tell user that he SHOULD install kdebase-startkde or kdebase-runtime-meta
884     if [[ ${KDEBASE} != kde-base ]] && \
885     ! has_version 'kde-base/kdebase-runtime-meta' && \
886     ! has_version 'kde-base/kdebase-startkde'; then
887     if [[ ${KDE_REQUIRED} == always ]] || ( [[ ${KDE_REQUIRED} == optional ]] && use kde ); then
888     echo
889     ewarn "WARNING! Your system configuration contains neither \"kde-base/kdebase-runtime-meta\""
890     ewarn "nor \"kde-base/kdebase-startkde\". You need one of above."
891     ewarn "With this setting you are unsupported by KDE team."
892     ewarn "All missing features you report for misc packages will be probably ignored or closed as INVALID."
893     fi
894 reavertm 1.58 fi
895     fi
896 ingmar 1.1 }
897    
898     # @FUNCTION: kde4-base_pkg_postrm
899     # @DESCRIPTION:
900     # Function to rebuild the KDE System Configuration Cache after an application has been removed.
901     kde4-base_pkg_postrm() {
902 scarabeus 1.30 debug-print-function ${FUNCNAME} "$@"
903    
904 scarabeus 1.87 gnome2_icon_cache_update
905     fdo-mime_desktop_database_update
906     fdo-mime_mime_database_update
907 ingmar 1.1 buildsycoca
908     }
909 kensington 1.125
910     fi

  ViewVC Help
Powered by ViewVC 1.1.20