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

Contents of /eclass/qt4-build.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.29 - (hide annotations) (download)
Sat Mar 28 00:21:13 2009 UTC (5 years, 4 months ago) by gengor
Branch: MAIN
Changes since 1.28: +7 -2 lines
Add fix for bug 253127 dropped in qt4-build.eclass revision 1.21

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

  ViewVC Help
Powered by ViewVC 1.1.20