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

Contents of /eclass/qt4-build.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.27 - (hide annotations) (download)
Wed Mar 11 23:58:31 2009 UTC (5 years, 8 months ago) by flameeyes
Branch: MAIN
Changes since 1.26: +5 -5 lines
Use $(tc-arch) rather than ${ARCH}.

With this change, the 32-bit userland version of amd64 profiles will
build qt properly; without this, Qt will enable 64-bit instructions
when the compiler is set to produce 32-bit code, causing an assembler
failure.

This is needed to be able to build Qt4 for the emul-linux-x86
packages.

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

  ViewVC Help
Powered by ViewVC 1.1.20