--- /usr/portage/eclass/qt4.eclass 2007-06-20 14:06:02.000000000 +0200 +++ qt4.eclass 2007-07-23 15:40:14.000000000 +0200 @@ -1,6 +1,6 @@ -# Copyright 2005 Gentoo Foundation +# Copyright 2005-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/qt4.eclass,v 1.18 2007/06/20 11:57:28 caleb Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/qt4.eclass,v 1.4 2006/08/16 12:20:15 caleb Exp $ # # Author Caleb Tennis # @@ -13,7 +13,9 @@ # 08.16.06 - Renamed qt_min_* to qt4_min_* to avoid conflicts with the qt3 eclass. # - Caleb Tennis -inherit versionator eutils +inherit eutils versionator toolchain-funcs + +IUSE="${IUSE} debug" QTPKG="x11-libs/qt-" QT4MAJORVERSIONS="4.3 4.2 4.1 4.0" @@ -51,13 +53,73 @@ echo "${VERSIONS}" } -EXPORT_FUNCTIONS pkg_setup - qt4_pkg_setup() { - for x in $QT4_BUILT_WITH_USE_CHECK; do - if ! built_with_use =x11-libs/qt-4* $x; then - die "This package requires Qt4 to be built with the ${x} use flag." - fi - done - + if use debug && ! built_with_use qt debug; then + einfo + einfo "You are trying to compile ${PN} package with active USE=\"debug\"" + einfo "while qt4 is build without this particular flag. It will not" + einfo "work." + einfo + einfo "Possible solutions to this problem are:" + einfo "a) install package ${PN} without debug USE flag" + einfo "b) re-emerge qt4 with debug USE flag" + einfo + + die "can't emerge ${PN} with debug USE flag" + fi } + +eqmake4() { + local projprofile="${1}" + [ -z ${projprofile} ] && projprofile="${PN}.pro" + + einfo "Processing qmake ${projprofile}" + + # file exists? + if [[ ! -f ${projprofile} ]]; then + echo + eerror "Project pro file \"${projprofile}\" does not exists" + eerror "qmake cannot handle non-existing pro files" + echo + eerror "This shouldn't happen - send a bug report to bugs.gentoo.org" + echo + die "non existing pro file in ${PN} sources" + fi + + # as a workaround for broken qmake, put everything into file + if use debug; then + echo -e "$CONFIG -= release\nCONFIG += no_fixpath debug" >> ${projprofile} + else + echo -e "$CONFIG -= debug\nCONFIG += no_fixpath release" >> ${projprofile} + fi + + # any special qmake options should be passed as a second eqmake parameter + /usr/bin/qmake ${projprofile} \ + QMAKE=/usr/bin/qmake \ + QMAKE_CC=$(tc-getCC) \ + QMAKE_CXX=$(tc-getCXX) \ + QMAKE_LINK=$(tc-getCXX) \ + QMAKE_CFLAGS_RELEASE="${CFLAGS}" \ + QMAKE_CFLAGS_DEBUG="${CFLAGS}" \ + QMAKE_CXXFLAGS_RELEASE="${CXXFLAGS}" \ + QMAKE_CXXFLAGS_DEBUG="${CXXFLAGS}" \ + QMAKE_LFLAGS_RELEASE="${LDFLAGS}" \ + QMAKE_LFLAGS_DEBUG="${LDFLAGS}" \ + QMAKE_RPATH= \ + ${2} + + local result=$? + eend ${result} + + # successfull qmake? + if [[ ${result} -ne 0 ]]; then + echo + eerror "Running qmake on \"${projprofile}\" has failed" + echo + eerror "This shouldn't happen - send a bug report to bugs.gentoo.org" + echo + die "qmake has failed on ${projprofile}" + fi +} + +EXPORT_FUNCTIONS pkg_setup