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

Contents of /eclass/kde4-base.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.130 - (hide annotations) (download)
Thu Aug 15 15:29:58 2013 UTC (11 months, 2 weeks ago) by kensington
Branch: MAIN
Changes since 1.129: +1 -23 lines
Remove dependencies and actions that are now handled in individual ebuilds.

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

  ViewVC Help
Powered by ViewVC 1.1.20