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

Contents of /eclass/qt4-build.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.31 - (hide annotations) (download)
Sat Mar 28 02:29:24 2009 UTC (5 years, 8 months ago) by gengor
Branch: MAIN
Changes since 1.30: +2 -2 lines
Five beeps is excessively annoying and slow

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

  ViewVC Help
Powered by ViewVC 1.1.20