1 | # Copyright 1999-2011 Gentoo Foundation |
1 | # Copyright 1999-2011 Gentoo Foundation |
2 | # Distributed under the terms of the GNU General Public License v2 |
2 | # Distributed under the terms of the GNU General Public License v2 |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/qt4-build.eclass,v 1.100 2011/11/19 20:31:12 pesa Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/qt4-build.eclass,v 1.106 2011/12/21 22:47:35 pesa Exp $ |
4 | |
4 | |
5 | # @ECLASS: qt4-build.eclass |
5 | # @ECLASS: qt4-build.eclass |
6 | # @MAINTAINER: |
6 | # @MAINTAINER: |
7 | # Qt herd <qt@gentoo.org> |
7 | # Qt herd <qt@gentoo.org> |
8 | # @BLURB: Eclass for Qt4 split ebuilds. |
8 | # @BLURB: Eclass for Qt4 split ebuilds. |
… | |
… | |
12 | inherit base eutils multilib toolchain-funcs flag-o-matic versionator |
12 | inherit base eutils multilib toolchain-funcs flag-o-matic versionator |
13 | |
13 | |
14 | MY_PV=${PV/_/-} |
14 | MY_PV=${PV/_/-} |
15 | MY_P=qt-everywhere-opensource-src-${MY_PV} |
15 | MY_P=qt-everywhere-opensource-src-${MY_PV} |
16 | |
16 | |
17 | HOMEPAGE="http://qt.nokia.com/" |
17 | HOMEPAGE="http://qt.nokia.com/ http://qt-project.org/" |
18 | SRC_URI="http://get.qt.nokia.com/qt/source/${MY_P}.tar.gz" |
18 | SRC_URI="http://get.qt.nokia.com/qt/source/${MY_P}.tar.gz" |
19 | LICENSE="|| ( LGPL-2.1 GPL-3 )" |
19 | LICENSE="|| ( LGPL-2.1 GPL-3 )" |
20 | |
20 | |
21 | IUSE="aqua debug pch" |
21 | IUSE="aqua debug pch" |
22 | |
22 | |
… | |
… | |
26 | |
26 | |
27 | if version_is_at_least 4.7.99999999; then |
27 | if version_is_at_least 4.7.99999999; then |
28 | IUSE+=" c++0x qpa" |
28 | IUSE+=" c++0x qpa" |
29 | fi |
29 | fi |
30 | |
30 | |
|
|
31 | DEPEND="dev-util/pkgconfig" |
31 | RDEPEND=" |
32 | RDEPEND=" |
32 | !<x11-libs/qt-assistant-${PV} |
33 | !<x11-libs/qt-assistant-${PV} |
33 | !>x11-libs/qt-assistant-${PV}-r9999 |
34 | !>x11-libs/qt-assistant-${PV}-r9999 |
34 | !<x11-libs/qt-core-${PV} |
35 | !<x11-libs/qt-core-${PV} |
35 | !>x11-libs/qt-core-${PV}-r9999 |
36 | !>x11-libs/qt-core-${PV}-r9999 |
… | |
… | |
364 | # freetype2 include dir is non-standard, thus include it on configure |
365 | # freetype2 include dir is non-standard, thus include it on configure |
365 | # use -I from configure |
366 | # use -I from configure |
366 | myconf+=" $(pkg-config --cflags freetype2)" |
367 | myconf+=" $(pkg-config --cflags freetype2)" |
367 | fi |
368 | fi |
368 | |
369 | |
369 | # Disable SSE4.x, since auto-detection is currently broken |
|
|
370 | # Upstream bug http://bugreports.qt.nokia.com/browse/QTBUG-13623 |
|
|
371 | [[ ${PV} == "4.7.1" ]] && myconf+=" -no-sse4.1 -no-sse4.2" |
|
|
372 | |
|
|
373 | echo ./configure ${myconf} |
370 | echo ./configure ${myconf} |
374 | ./configure ${myconf} || die "./configure failed" |
371 | ./configure ${myconf} || die "./configure failed" |
375 | myconf="" |
372 | myconf="" |
376 | |
373 | |
377 | prepare_directories ${QT4_TARGET_DIRECTORIES} |
374 | prepare_directories ${QT4_TARGET_DIRECTORIES} |
… | |
… | |
448 | QTPCDIR=${EPREFIX}/usr/$(get_libdir)/pkgconfig |
445 | QTPCDIR=${EPREFIX}/usr/$(get_libdir)/pkgconfig |
449 | QTDATADIR=${EPREFIX}/usr/share/qt4 |
446 | QTDATADIR=${EPREFIX}/usr/share/qt4 |
450 | QTDOCDIR=${EPREFIX}/usr/share/doc/qt-${PV} |
447 | QTDOCDIR=${EPREFIX}/usr/share/doc/qt-${PV} |
451 | QTHEADERDIR=${EPREFIX}/usr/include/qt4 |
448 | QTHEADERDIR=${EPREFIX}/usr/include/qt4 |
452 | QTPLUGINDIR=${QTLIBDIR}/plugins |
449 | QTPLUGINDIR=${QTLIBDIR}/plugins |
|
|
450 | QTIMPORTDIR=${QTLIBDIR}/imports |
453 | QTSYSCONFDIR=${EPREFIX}/etc/qt4 |
451 | QTSYSCONFDIR=${EPREFIX}/etc/qt4 |
454 | QTTRANSDIR=${QTDATADIR}/translations |
452 | QTTRANSDIR=${QTDATADIR}/translations |
455 | QTEXAMPLESDIR=${QTDATADIR}/examples |
453 | QTEXAMPLESDIR=${QTDATADIR}/examples |
456 | QTDEMOSDIR=${QTDATADIR}/demos |
454 | QTDEMOSDIR=${QTDATADIR}/demos |
457 | QT_INSTALL_PREFIX=${EPREFIX}/usr/$(get_libdir)/qt4 |
455 | QT_INSTALL_PREFIX=${EPREFIX}/usr/$(get_libdir)/qt4 |
… | |
… | |
487 | use aqua && myconf+=" -no-framework" |
485 | use aqua && myconf+=" -no-framework" |
488 | |
486 | |
489 | # ARCH is set on Gentoo. Qt now falls back to generic on an unsupported |
487 | # ARCH is set on Gentoo. Qt now falls back to generic on an unsupported |
490 | # $(tc-arch). Therefore we convert it to supported values. |
488 | # $(tc-arch). Therefore we convert it to supported values. |
491 | case "$(tc-arch)" in |
489 | case "$(tc-arch)" in |
492 | amd64|x64-*) myconf+=" -arch x86_64" ;; |
490 | amd64|x64-*) myconf+=" -arch x86_64" ;; |
493 | ppc-macos) myconf+=" -arch ppc" ;; |
491 | ppc-macos) myconf+=" -arch ppc" ;; |
494 | ppc|ppc64|ppc-*) myconf+=" -arch powerpc" ;; |
492 | ppc|ppc64|ppc-*) myconf+=" -arch powerpc" ;; |
495 | sparc|sparc-*) myconf+=" -arch sparc" ;; |
493 | sparc|sparc-*|sparc64-*) myconf+=" -arch sparc" ;; |
496 | x86-macos) myconf+=" -arch x86" ;; |
494 | x86-macos) myconf+=" -arch x86" ;; |
497 | x86|x86-*) myconf+=" -arch i386" ;; |
495 | x86|x86-*) myconf+=" -arch i386" ;; |
498 | alpha|arm|ia64|mips|s390|sparc) myconf+=" -arch $(tc-arch)" ;; |
496 | alpha|arm|ia64|mips|s390) myconf+=" -arch $(tc-arch)" ;; |
499 | hppa|sh) myconf+=" -arch generic" ;; |
497 | hppa|sh) myconf+=" -arch generic" ;; |
500 | *) die "$(tc-arch) is unsupported by this eclass. Please file a bug." ;; |
498 | *) die "$(tc-arch) is unsupported by this eclass. Please file a bug." ;; |
501 | esac |
499 | esac |
502 | |
500 | |
503 | # exceptions USE flag |
501 | # exceptions USE flag |
504 | local exceptions="-exceptions" |
502 | local exceptions="-exceptions" |
505 | in_iuse exceptions && exceptions="$(qt_use exceptions)" |
503 | in_iuse exceptions && exceptions="$(qt_use exceptions)" |
|
|
504 | |
|
|
505 | # bug 380415 |
|
|
506 | version_is_at_least 4.8 && myconf+=" -no-rpath" |
506 | |
507 | |
507 | # note about -reduce-relocations: |
508 | # note about -reduce-relocations: |
508 | # That flag seems to introduce major breakage to applications, |
509 | # That flag seems to introduce major breakage to applications, |
509 | # mostly to be seen as a core dump with the message "QPixmap: Must |
510 | # mostly to be seen as a core dump with the message "QPixmap: Must |
510 | # construct a QApplication before a QPaintDevice" on Solaris |
511 | # construct a QApplication before a QPaintDevice" on Solaris |
… | |
… | |
514 | myconf+=" -platform $(qt_mkspecs_dir) -stl -verbose -largefile -confirm-license |
515 | myconf+=" -platform $(qt_mkspecs_dir) -stl -verbose -largefile -confirm-license |
515 | -prefix ${QTPREFIXDIR} -bindir ${QTBINDIR} -libdir ${QTLIBDIR} |
516 | -prefix ${QTPREFIXDIR} -bindir ${QTBINDIR} -libdir ${QTLIBDIR} |
516 | -datadir ${QTDATADIR} -docdir ${QTDOCDIR} -headerdir ${QTHEADERDIR} |
517 | -datadir ${QTDATADIR} -docdir ${QTDOCDIR} -headerdir ${QTHEADERDIR} |
517 | -plugindir ${QTPLUGINDIR} -sysconfdir ${QTSYSCONFDIR} |
518 | -plugindir ${QTPLUGINDIR} -sysconfdir ${QTSYSCONFDIR} |
518 | -translationdir ${QTTRANSDIR} -examplesdir ${QTEXAMPLESDIR} |
519 | -translationdir ${QTTRANSDIR} -examplesdir ${QTEXAMPLESDIR} |
519 | -demosdir ${QTDEMOSDIR} -silent -fast -opensource |
520 | -demosdir ${QTDEMOSDIR} -importdir ${QTIMPORTDIR} -silent -fast -opensource |
520 | ${exceptions} |
521 | ${exceptions} |
521 | -nomake examples -nomake demos" |
522 | -nomake examples -nomake demos" |
522 | |
523 | |
523 | echo "${myconf}" |
524 | echo "${myconf}" |
524 | } |
525 | } |
… | |
… | |
533 | einfo "Running qmake in: ${x}" |
534 | einfo "Running qmake in: ${x}" |
534 | # avoid running over the maximum argument number, bug #299810 |
535 | # avoid running over the maximum argument number, bug #299810 |
535 | { |
536 | { |
536 | echo "${S}"/mkspecs/common/*.conf |
537 | echo "${S}"/mkspecs/common/*.conf |
537 | find "${S}" -name '*.pr[io]' |
538 | find "${S}" -name '*.pr[io]' |
538 | } | xargs sed -i -e "s:\$\$\[QT_INSTALL_LIBS\]:${EPREFIX}/usr/$(get_libdir)/qt4:g" || die |
539 | } | xargs sed -i \ |
|
|
540 | -e "s:\$\$\[QT_INSTALL_LIBS\]:${QTLIBDIR}:g" \ |
|
|
541 | -e "s:\$\$\[QT_INSTALL_PLUGINS\]:${QTPLUGINDIR}:g" \ |
|
|
542 | || die |
539 | "${S}"/bin/qmake "LIBS+=-L${QTLIBDIR}" "CONFIG+=nostrip" || die "qmake failed" |
543 | "${S}"/bin/qmake "LIBS+=-L${QTLIBDIR}" "CONFIG+=nostrip" || die "qmake failed" |
540 | popd >/dev/null |
544 | popd >/dev/null |
541 | done |
545 | done |
542 | } |
546 | } |
543 | |
547 | |