/[gentoo-x86]/eclass/qt4-build.eclass
Gentoo

Contents of /eclass/qt4-build.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.32 - (hide annotations) (download)
Thu Apr 23 11:45:38 2009 UTC (5 years, 6 months ago) by hwoarang
Branch: MAIN
Changes since 1.31: +8 -2 lines
Make eclass 4.5.{1,2} ready

1 yngwin 1.20 # Copyright 2007-2009 Gentoo Foundation
2 caleb 1.1 # Distributed under the terms of the GNU General Public License v2
3 hwoarang 1.32 # $Header: /var/cvsroot/gentoo-x86/eclass/qt4-build.eclass,v 1.31 2009/03/28 02:29:24 gengor Exp $
4 caleb 1.1
5     # @ECLASS: qt4-build.eclass
6     # @MAINTAINER:
7 yngwin 1.25 # Ben de Groot <yngwin@gentoo.org>,
8     # Markos Chandras <hwoarang@gentoo.org>,
9 caleb 1.1 # Caleb Tennis <caleb@gentoo.org>
10 ingmar 1.8 # @BLURB: Eclass for Qt4 split ebuilds.
11 caleb 1.1 # @DESCRIPTION:
12     # This eclass contains various functions that are used when building Qt4
13    
14 yngwin 1.20 inherit eutils multilib toolchain-funcs flag-o-matic versionator
15 caleb 1.1
16 yngwin 1.20 IUSE="${IUSE} custom-cxxflags debug pch"
17 caleb 1.1
18 ingmar 1.7 case "${PV}" in
19 yngwin 1.20 4.?.?_rc*)
20 ingmar 1.11 SRCTYPE="${SRCTYPE:-opensource-src}"
21     MY_PV="${PV/_rc/-rc}"
22     ;;
23 ingmar 1.7 *)
24     SRCTYPE="${SRCTYPE:-opensource-src}"
25     MY_PV="${PV}"
26     ;;
27     esac
28 ingmar 1.11 MY_P=qt-x11-${SRCTYPE}-${MY_PV}
29     S=${WORKDIR}/${MY_P}
30 ingmar 1.7
31 yngwin 1.20 HOMEPAGE="http://www.qtsoftware.com/"
32 yngwin 1.25 SRC_URI="http://download.qtsoftware.com/qt/source/${MY_P}.tar.bz2"
33 ingmar 1.11
34     case "${PV}" in
35 yngwin 1.20 4.4.?) SRC_URI="${SRC_URI} mirror://gentoo/${MY_P}-headers.tar.bz2" ;;
36     *) ;;
37 ingmar 1.11 esac
38 ingmar 1.7
39 yngwin 1.25 if version_is_at_least 4.5 ${PV} ; then
40     LICENSE="|| ( LGPL-2.1 GPL-3 )"
41     fi
42    
43 caleb 1.1 qt4-build_pkg_setup() {
44 yngwin 1.20 # EAPI=2 ebuilds set use-deps, others need this:
45     if [[ $EAPI != 2 ]]; then
46     # Make sure debug setting corresponds with qt-core (bug 258512)
47     if [[ $PN != "qt-core" ]]; then
48     use debug && QT4_BUILT_WITH_USE_CHECK="${QT4_BUILT_WITH_USE_CHECK}
49     ~x11-libs/qt-core-${PV} debug"
50     fi
51    
52     # Check USE requirements
53     qt4-build_check_use
54     fi
55 caleb 1.1 # Set up installation directories
56 caleb 1.5 QTBASEDIR=/usr/$(get_libdir)/qt4
57     QTPREFIXDIR=/usr
58     QTBINDIR=/usr/bin
59     QTLIBDIR=/usr/$(get_libdir)/qt4
60     QTPCDIR=/usr/$(get_libdir)/pkgconfig
61     QTDATADIR=/usr/share/qt4
62 caleb 1.6 QTDOCDIR=/usr/share/doc/qt-${PV}
63 caleb 1.5 QTHEADERDIR=/usr/include/qt4
64     QTPLUGINDIR=${QTLIBDIR}/plugins
65     QTSYSCONFDIR=/etc/qt4
66     QTTRANSDIR=${QTDATADIR}/translations
67     QTEXAMPLESDIR=${QTDATADIR}/examples
68     QTDEMOSDIR=${QTDATADIR}/demos
69 caleb 1.1
70 caleb 1.5 PLATFORM=$(qt_mkspecs_dir)
71 caleb 1.1
72     PATH="${S}/bin:${PATH}"
73     LD_LIBRARY_PATH="${S}/lib:${LD_LIBRARY_PATH}"
74 yngwin 1.20
75     if ! version_is_at_least 4.1 $(gcc-version) ; then
76     ewarn "Using a GCC version lower than 4.1 is not supported!"
77     echo
78 gengor 1.31 ebeep 3
79 yngwin 1.20 fi
80 hwoarang 1.21
81     if use custom-cxxflags; then
82     echo
83     ewarn "You have set USE=custom-cxxflags, which means Qt will be built with the"
84     ewarn "CXXFLAGS you have set in /etc/make.conf. This is not supported, and we"
85     ewarn "recommend to unset this useflag. But you are free to experiment with it."
86     ewarn "Just do not start crying if it breaks your system, or eats your kitten"
87     ewarn "for breakfast. ;-) "
88     echo
89     fi
90    
91 caleb 1.1 }
92    
93 yngwin 1.20 qt4-build_src_unpack() {
94 hwoarang 1.26 local target targets licenses
95     if version_is_at_least 4.5 ${PV} ; then
96     licenses="LICENSE.GPL3 LICENSE.LGPL"
97     else
98     licenses="LICENSE.GPL2 LICENSE.GPL3"
99     fi
100     for target in configure ${licenses} projects.pro \
101 ingmar 1.11 src/{qbase,qt_targets,qt_install}.pri bin config.tests mkspecs qmake \
102 ingmar 1.13 ${QT4_EXTRACT_DIRECTORIES}; do
103 ingmar 1.11 targets="${targets} ${MY_P}/${target}"
104     done
105    
106     echo tar xjpf "${DISTDIR}"/${MY_P}.tar.bz2 ${targets}
107     tar xjpf "${DISTDIR}"/${MY_P}.tar.bz2 ${targets}
108    
109     case "${PV}" in
110 yngwin 1.20 4.4.?)
111 ingmar 1.11 echo tar xjpf "${DISTDIR}"/${MY_P}-headers.tar.bz2
112     tar xjpf "${DISTDIR}"/${MY_P}-headers.tar.bz2
113     ;;
114     esac
115 yngwin 1.20
116     # Be backwards compatible for now
117     if [[ $EAPI != 2 ]]; then
118     qt4-build_src_prepare
119     fi
120 ingmar 1.11 }
121    
122 yngwin 1.20 qt4-build_src_prepare() {
123     cd "${S}"
124    
125 ingmar 1.7 if [[ ${PN} != qt-core ]]; then
126     skip_qmake_build_patch
127     skip_project_generation_patch
128     symlink_binaries_to_buildtree
129     fi
130 hwoarang 1.24
131 hwoarang 1.22 if ! use custom-cxxflags;then
132 hwoarang 1.21 # Don't let the user go too overboard with flags.
133     strip-flags
134     replace-flags -O3 -O2
135     fi
136 ingmar 1.7
137 hwoarang 1.21 # Bug 178652
138     if [[ "$(gcc-major-version)" == "3" ]] && use amd64; then
139     ewarn "Appending -fno-gcse to CFLAGS/CXXFLAGS"
140     append-flags -fno-gcse
141 gengor 1.18 fi
142    
143 gengor 1.30 # Unsupported old gcc versions - hardened needs this :(
144 gengor 1.29 if [[ $(gcc-major-version) -lt "4" ]] ; then
145 gengor 1.30 ewarn "Appending -fno-stack-protector to CXXFLAGS"
146     append-cxxflags -fno-stack-protector
147     # Bug 253127
148 gengor 1.29 sed -e "/^QMAKE_CFLAGS\t/ s:$: -fno-stack-protector-all:" \
149     -i "${S}"/mkspecs/common/g++.conf || die "sed ${S}/mkspecs/common/g++.conf failed"
150     fi
151    
152 hwoarang 1.24 # Bug 172219
153 ingmar 1.7 sed -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \
154     -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \
155     -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=${LDFLAGS}:" \
156     -e "s:X11R6/::" \
157     -i "${S}"/mkspecs/$(qt_mkspecs_dir)/qmake.conf || die "sed ${S}/mkspecs/$(qt_mkspecs_dir)/qmake.conf failed"
158    
159     sed -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \
160     -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \
161     -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=${LDFLAGS}:" \
162     -i "${S}"/mkspecs/common/g++.conf || die "sed ${S}/mkspecs/common/g++.conf failed"
163 hwoarang 1.21
164 ingmar 1.7 }
165    
166 yngwin 1.20 qt4-build_src_configure() {
167 ingmar 1.10
168 ingmar 1.7 myconf="$(standard_configure_options) ${myconf}"
169    
170     echo ./configure ${myconf}
171     ./configure ${myconf} || die "./configure failed"
172 yngwin 1.20 }
173 ingmar 1.7
174 yngwin 1.20 qt4-build_src_compile() {
175     # Be backwards compatible for now
176     if [[ $EAPI != 2 ]]; then
177     qt4-build_src_configure
178     fi
179    
180     build_directories "${QT4_TARGET_DIRECTORIES}"
181 caleb 1.1 }
182    
183 caleb 1.4 qt4-build_src_install() {
184     install_directories "${QT4_TARGET_DIRECTORIES}"
185 ingmar 1.7 install_qconfigs
186 caleb 1.4 fix_library_files
187     }
188    
189 caleb 1.1 standard_configure_options() {
190     local myconf=""
191    
192 ingmar 1.7 [[ $(get_libdir) != "lib" ]] && myconf="${myconf} -L/usr/$(get_libdir)"
193 caleb 1.1
194     # Disable visibility explicitly if gcc version isn't 4
195 ingmar 1.7 if [[ "$(gcc-major-version)" -lt "4" ]]; then
196 caleb 1.1 myconf="${myconf} -no-reduce-exports"
197     fi
198    
199 ingmar 1.12 # precompiled headers doesn't work on hardened, where the flag is masked.
200     if use pch; then
201     myconf="${myconf} -pch"
202     else
203     myconf="${myconf} -no-pch"
204     fi
205    
206 ingmar 1.7 if use debug; then
207     myconf="${myconf} -debug -no-separate-debug-info"
208     else
209     myconf="${myconf} -release -no-separate-debug-info"
210     fi
211 caleb 1.1
212 yngwin 1.20 # ARCH is set on Gentoo. Qt now falls back to generic on an unsupported
213 flameeyes 1.27 # $(tc-arch). Therefore we convert it to supported values.
214     case "$(tc-arch)" in
215 ingmar 1.11 amd64) myconf="${myconf} -arch x86_64" ;;
216     ppc|ppc64) myconf="${myconf} -arch powerpc" ;;
217 ingmar 1.14 x86|x86-*) myconf="${myconf} -arch i386" ;;
218 flameeyes 1.27 alpha|arm|ia64|mips|s390|sparc) myconf="${myconf} -arch $(tc-arch)" ;;
219 ingmar 1.11 hppa|sh) myconf="${myconf} -arch generic" ;;
220 flameeyes 1.27 *) die "$(tc-arch) is unsupported by this eclass. Please file a bug." ;;
221 ingmar 1.11 esac
222    
223 ingmar 1.7 myconf="${myconf} -stl -verbose -largefile -confirm-license -no-rpath
224     -prefix ${QTPREFIXDIR} -bindir ${QTBINDIR} -libdir ${QTLIBDIR}
225     -datadir ${QTDATADIR} -docdir ${QTDOCDIR} -headerdir ${QTHEADERDIR}
226     -plugindir ${QTPLUGINDIR} -sysconfdir ${QTSYSCONFDIR}
227     -translationdir ${QTTRANSDIR} -examplesdir ${QTEXAMPLESDIR}
228 yngwin 1.20 -demosdir ${QTDEMOSDIR} -silent -fast
229     $([[ ${PN} == qt-xmlpatterns ]] || echo -no-exceptions)
230 aballier 1.28 -reduce-relocations -nomake examples -nomake demos"
231 hwoarang 1.32
232     # Make eclass 4.5.{1,2} ready
233     case "${MY_PV}" in
234     4.5.1 | 4.5.2)
235     myconf="${myconf} -opensource"
236     ;;
237     esac
238 caleb 1.1
239     echo "${myconf}"
240     }
241    
242     build_directories() {
243     local dirs="$@"
244     for x in ${dirs}; do
245     cd "${S}"/${x}
246 ingmar 1.7 "${S}"/bin/qmake "LIBS+=-L${QTLIBDIR}" "CONFIG+=nostrip" || die "qmake failed"
247     emake || die "emake failed"
248 caleb 1.1 done
249     }
250    
251     install_directories() {
252     local dirs="$@"
253     for x in ${dirs}; do
254 ingmar 1.7 pushd "${S}"/${x} >/dev/null || die "Can't pushd ${S}/${x}"
255     emake INSTALL_ROOT="${D}" install || die "emake install failed"
256     popd >/dev/null || die "Can't popd from ${S}/${x}"
257 caleb 1.1 done
258     }
259    
260 ingmar 1.7 # @ECLASS-VARIABLE: QCONFIG_ADD
261     # @DESCRIPTION:
262     # List options that need to be added to QT_CONFIG in qconfig.pri
263     QCONFIG_ADD="${QCONFIG_ADD:-}"
264    
265     # @ECLASS-VARIABLE: QCONFIG_REMOVE
266     # @DESCRIPTION:
267     # List options that need to be removed from QT_CONFIG in qconfig.pri
268     QCONFIG_REMOVE="${QCONFIG_REMOVE:-}"
269    
270     # @ECLASS-VARIABLE: QCONFIG_DEFINE
271     # @DESCRIPTION:
272     # List variables that should be defined at the top of QtCore/qconfig.h
273     QCONFIG_DEFINE="${QCONFIG_DEFINE:-}"
274    
275     install_qconfigs() {
276 zlin 1.9 local x
277     if [[ -n ${QCONFIG_ADD} || -n ${QCONFIG_REMOVE} ]]; then
278 ingmar 1.7 for x in QCONFIG_ADD QCONFIG_REMOVE; do
279     [[ -n ${!x} ]] && echo ${x}=${!x} >> "${T}"/${PN}-qconfig.pri
280     done
281     insinto ${QTDATADIR}/mkspecs/gentoo
282     doins "${T}"/${PN}-qconfig.pri || die "installing ${PN}-qconfig.pri failed"
283 zlin 1.9 fi
284 ingmar 1.7
285 zlin 1.9 if [[ -n ${QCONFIG_DEFINE} ]]; then
286 ingmar 1.7 for x in ${QCONFIG_DEFINE}; do
287     echo "#define ${x}" >> "${T}"/gentoo-${PN}-qconfig.h
288     done
289     insinto ${QTHEADERDIR}/Gentoo
290     doins "${T}"/gentoo-${PN}-qconfig.h || die "installing ${PN}-qconfig.h failed"
291     fi
292     }
293    
294     generate_qconfigs() {
295     if [[ -n ${QCONFIG_ADD} || -n ${QCONFIG_REMOVE} || -n ${QCONFIG_DEFINE} || ${CATEGORY}/${PN} == x11-libs/qt-core ]]; then
296     local x qconfig_add qconfig_remove qconfig_new
297     for x in "${ROOT}${QTDATADIR}"/mkspecs/gentoo/*-qconfig.pri; do
298     [[ -f ${x} ]] || continue
299     qconfig_add="${qconfig_add} $(sed -n 's/^QCONFIG_ADD=//p' "${x}")"
300     qconfig_remove="${qconfig_remove} $(sed -n 's/^QCONFIG_REMOVE=//p' "${x}")"
301     done
302    
303     # these error checks do not use die because dying in pkg_post{inst,rm}
304     # just makes things worse.
305     if [[ -e "${ROOT}${QTDATADIR}"/mkspecs/gentoo/qconfig.pri ]]; then
306     # start with the qconfig.pri that qt-core installed
307     if ! cp "${ROOT}${QTDATADIR}"/mkspecs/gentoo/qconfig.pri \
308     "${ROOT}${QTDATADIR}"/mkspecs/qconfig.pri; then
309     eerror "cp qconfig failed."
310     return 1
311     fi
312    
313     # generate list of QT_CONFIG entries from the existing list
314     # including qconfig_add and excluding qconfig_remove
315     for x in $(sed -n 's/^QT_CONFIG +=//p' \
316     "${ROOT}${QTDATADIR}"/mkspecs/qconfig.pri) ${qconfig_add}; do
317     hasq ${x} ${qconfig_remove} || qconfig_new="${qconfig_new} ${x}"
318     done
319    
320     # replace the existing QT_CONFIG list with qconfig_new
321     if ! sed -i -e "s/QT_CONFIG +=.*/QT_CONFIG += ${qconfig_new}/" \
322     "${ROOT}${QTDATADIR}"/mkspecs/qconfig.pri; then
323     eerror "Sed for QT_CONFIG failed"
324     return 1
325     fi
326    
327     # create Gentoo/qconfig.h
328     if [[ ! -e ${ROOT}${QTHEADERDIR}/Gentoo ]]; then
329     if ! mkdir -p "${ROOT}${QTHEADERDIR}"/Gentoo; then
330     eerror "mkdir ${QTHEADERDIR}/Gentoo failed"
331     return 1
332     fi
333     fi
334     : > "${ROOT}${QTHEADERDIR}"/Gentoo/gentoo-qconfig.h
335     for x in "${ROOT}${QTHEADERDIR}"/Gentoo/gentoo-*-qconfig.h; do
336     [[ -f ${x} ]] || continue
337     cat "${x}" >> "${ROOT}${QTHEADERDIR}"/Gentoo/gentoo-qconfig.h
338     done
339     else
340     rm -f "${ROOT}${QTDATADIR}"/mkspecs/qconfig.pri
341     rm -f "${ROOT}${QTHEADERDIR}"/Gentoo/gentoo-qconfig.h
342     rmdir "${ROOT}${QTDATADIR}"/mkspecs \
343     "${ROOT}${QTDATADIR}" \
344     "${ROOT}${QTHEADERDIR}"/Gentoo \
345     "${ROOT}${QTHEADERDIR}" 2>/dev/null
346     fi
347     fi
348     }
349    
350     qt4-build_pkg_postrm() {
351     generate_qconfigs
352 caleb 1.1 }
353    
354 ingmar 1.7 qt4-build_pkg_postinst() {
355     generate_qconfigs
356 yngwin 1.17 echo
357     ewarn "After a rebuild or upgrade of Qt, it can happen that Qt plugins (such as Qt"
358     ewarn "and KDE styles and widgets) can no longer be loaded. In this situation you"
359     ewarn "should recompile the packages providing these plugins. Also, make sure you"
360     ewarn "compile the Qt packages, and the packages that depend on it, with the same"
361     ewarn "GCC version and the same USE flag settings (especially the debug flag)."
362     ewarn
363     ewarn "Packages that typically need to be recompiled are kdelibs from KDE4, any"
364     ewarn "additional KDE4/Qt4 styles, qscintilla and PyQt4. Before filing a bug report,"
365     ewarn "make sure all your Qt4 packages are up-to-date and built with the same"
366     ewarn "configuration."
367     ewarn
368     ewarn "For more information, see http://doc.trolltech.com/4.4/plugins-howto.html"
369     echo
370 caleb 1.1 }
371    
372     skip_qmake_build_patch() {
373 ingmar 1.7 # Don't need to build qmake, as it's already installed from qt-core
374     sed -i -e "s:if true:if false:g" "${S}"/configure || die "Sed failed"
375 caleb 1.1 }
376    
377     skip_project_generation_patch() {
378     # Exit the script early by throwing in an exit before all of the .pro files are scanned
379 ingmar 1.7 sed -e "s:echo \"Finding:exit 0\n\necho \"Finding:g" \
380     -i "${S}"/configure || die "Sed failed"
381 caleb 1.1 }
382    
383 ingmar 1.7 symlink_binaries_to_buildtree() {
384     for bin in qmake moc uic rcc; do
385     ln -s ${QTBINDIR}/${bin} "${S}"/bin/ || die "Symlinking ${bin} to ${S}/bin failed."
386     done
387 caleb 1.1 }
388    
389     fix_library_files() {
390 ingmar 1.7 for libfile in "${D}"/${QTLIBDIR}/{*.la,*.prl,pkgconfig/*.pc}; do
391     if [[ -e ${libfile} ]]; then
392     sed -i -e "s:${S}/lib:${QTLIBDIR}:g" ${libfile} || die "Sed on ${libfile} failed."
393     fi
394     done
395 caleb 1.1
396     # pkgconfig files refer to WORKDIR/bin as the moc and uic locations. Fix:
397 ingmar 1.7 for libfile in "${D}"/${QTLIBDIR}/pkgconfig/*.pc; do
398     if [[ -e ${libfile} ]]; then
399     sed -i -e "s:${S}/bin:${QTBINDIR}:g" ${libfile} || die "Sed failed"
400 caleb 1.1
401     # Move .pc files into the pkgconfig directory
402 ingmar 1.7
403     dodir ${QTPCDIR}
404     mv ${libfile} "${D}"/${QTPCDIR}/ \
405     || die "Moving ${libfile} to ${D}/${QTPCDIR}/ failed."
406     fi
407     done
408    
409     # Don't install an empty directory
410     rmdir "${D}"/${QTLIBDIR}/pkgconfig
411 caleb 1.1 }
412    
413     qt_use() {
414 ingmar 1.7 local flag="${1}"
415     local feature="${1}"
416 caleb 1.5 local enableval=
417 caleb 1.1
418 ingmar 1.7 [[ -n ${2} ]] && feature=${2}
419     [[ -n ${3} ]] && enableval="-${3}"
420    
421     if use ${flag}; then
422     echo "${enableval}-${feature}"
423     else
424     echo "-no-${feature}"
425     fi
426     }
427    
428     # @ECLASS-VARIABLE: QT4_BUILT_WITH_USE_CHECK
429     # @DESCRIPTION:
430     # The contents of $QT4_BUILT_WITH_USE_CHECK gets fed to built_with_use
431     # (eutils.eclass), line per line.
432     #
433     # Example:
434     # @CODE
435     # pkg_setup() {
436     # use qt3support && QT4_BUILT_WITH_USE_CHECK="${QT4_BUILT_WITH_USE_CHECK}
437     # ~x11-libs/qt-gui-${PV} qt3support"
438     # qt4-build_check_use
439     # }
440     # @CODE
441    
442     # Run built_with_use on each flag and print appropriate error messages if any
443     # flags are missing
444     _qt_built_with_use() {
445     local missing opt pkg flag flags
446 caleb 1.1
447 ingmar 1.7 if [[ ${1} = "--missing" ]]; then
448     missing="${1} ${2}" && shift 2
449     fi
450     if [[ ${1:0:1} = "-" ]]; then
451     opt=${1} && shift
452     fi
453    
454     pkg=${1} && shift
455    
456     for flag in "${@}"; do
457     flags="${flags} ${flag}"
458     if ! built_with_use ${missing} ${opt} ${pkg} ${flag}; then
459     flags="${flags}*"
460     else
461     [[ ${opt} = "-o" ]] && return 0
462     fi
463     done
464     if [[ "${flags# }" = "${@}" ]]; then
465     return 0
466     fi
467     if [[ ${opt} = "-o" ]]; then
468     eerror "This package requires '${pkg}' to be built with any of the following USE flags: '$*'."
469     else
470     eerror "This package requires '${pkg}' to be built with the following USE flags: '${flags# }'."
471     fi
472     return 1
473     }
474    
475     # @FUNCTION: qt4-build_check_use
476     # @DESCRIPTION:
477     # Check if the listed packages in $QT4_BUILT_WITH_USE_CHECK are built with the
478     # USE flags listed.
479     #
480     # If any of the required USE flags are missing, an eerror will be printed for
481     # each package with missing USE flags.
482     qt4-build_check_use() {
483     local line missing
484     while read line; do
485     [[ -z ${line} ]] && continue
486     if ! _qt_built_with_use ${line}; then
487     missing=true
488     fi
489     done <<< "${QT4_BUILT_WITH_USE_CHECK}"
490     if [[ -n ${missing} ]]; then
491     echo
492     eerror "Flags marked with an * are missing."
493     die "Missing USE flags found"
494     fi
495 caleb 1.1 }
496    
497     qt_mkspecs_dir() {
498 caleb 1.5 # Allows us to define which mkspecs dir we want to use.
499     local spec
500 caleb 1.1
501 caleb 1.5 case ${CHOST} in
502     *-freebsd*|*-dragonfly*)
503     spec="freebsd" ;;
504     *-openbsd*)
505     spec="openbsd" ;;
506     *-netbsd*)
507     spec="netbsd" ;;
508 ingmar 1.7 *-darwin*)
509 caleb 1.5 spec="darwin" ;;
510     *-linux-*|*-linux)
511     spec="linux" ;;
512     *)
513 ingmar 1.7 die "Unknown CHOST, no platform choosen."
514 caleb 1.5 esac
515    
516     CXX=$(tc-getCXX)
517     if [[ ${CXX/g++/} != ${CXX} ]]; then
518     spec="${spec}-g++"
519     elif [[ ${CXX/icpc/} != ${CXX} ]]; then
520     spec="${spec}-icc"
521     else
522     die "Unknown compiler ${CXX}."
523     fi
524 caleb 1.1
525 caleb 1.5 echo "${spec}"
526 caleb 1.1 }
527    
528 yngwin 1.20 case ${EAPI:-0} in
529     0|1) EXPORT_FUNCTIONS pkg_setup src_unpack src_compile src_install pkg_postrm pkg_postinst ;;
530     2) EXPORT_FUNCTIONS pkg_setup src_unpack src_prepare src_configure src_compile src_install pkg_postrm pkg_postinst ;;
531     esac

  ViewVC Help
Powered by ViewVC 1.1.20