From 731b161b36cb10959a96b48acc903b59ad561e36 Mon Sep 17 00:00:00 2001
From: Koen Kooi <koen@openembedded.org>
Date: Wed, 10 Feb 2010 11:32:28 +0100
Subject: [PATCH] qmake2: convert native and sdk to use BBCLASS_EXTEND and new-style staging

---
 recipes/qmake/files/qmake-hack.diff                |   15 ++++
 recipes/qmake/qmake2-native.inc                    |   67 -------------------
 recipes/qmake/qmake2-native_2.10a.bb               |   12 ----
 recipes/qmake/qmake2-sdk_2.10a.bb                  |   17 -----
 recipes/qmake/qmake2.inc                           |   69 ++++++++++++++++++++
 .../{qmake2-native => qmake2}/linux-oe-qmake.conf  |    0
 recipes/qmake/qmake2_2.10a.bb                      |   18 +++++
 7 files changed, 102 insertions(+), 96 deletions(-)
 create mode 100644 recipes/qmake/files/qmake-hack.diff
 delete mode 100644 recipes/qmake/qmake2-native.inc
 delete mode 100644 recipes/qmake/qmake2-native_2.10a.bb
 delete mode 100644 recipes/qmake/qmake2-sdk_2.10a.bb
 create mode 100644 recipes/qmake/qmake2.inc
 rename recipes/qmake/{qmake2-native => qmake2}/linux-oe-qmake.conf (100%)
 create mode 100644 recipes/qmake/qmake2_2.10a.bb

diff --git a/recipes/qmake/files/qmake-hack.diff b/recipes/qmake/files/qmake-hack.diff
new file mode 100644
index 0000000..290f540
--- /dev/null
+++ b/recipes/qmake/files/qmake-hack.diff
@@ -0,0 +1,15 @@
+--- /tmp/configure	2010-02-10 15:41:58.000000000 +0100
++++ qt-embedded-linux-opensource-src-4.4.3/configure	2010-02-10 15:42:01.000000000 +0100
+@@ -3946,6 +3946,12 @@
+     [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
+     [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
+     [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
++
++# OE
++if [ x$CROSSHACK = xtrue ] ; then
++	echo "Exiting now, since we have what we want: a qmake binary"
++	exit 0
++fi
+ fi # Build qmake
+ 
+ #-------------------------------------------------------------------------------
diff --git a/recipes/qmake/qmake2-native.inc b/recipes/qmake/qmake2-native.inc
deleted file mode 100644
index 9908200..0000000
--- a/recipes/qmake/qmake2-native.inc
+++ /dev/null
@@ -1,67 +0,0 @@
-DESCRIPTION = "TrollTech Makefile Generator"
-PRIORITY = "optional"
-HOMEPAGE = "http://www.trolltech.com"
-SECTION = "devel"
-LICENSE = "GPL"
-PR = "r7"
-
-# We call 'moc' during the build 
-DEPENDS = "uicmoc4-native"
-
-QTVER = "qt-embedded-linux-opensource-src-${QTVERSION}"
-
-SRC_URI = "ftp://ftp.trolltech.com/qt/source/${QTVER}.tar.bz2 \
-           file://0001-fix-mkspecs.patch;patch=1 \
-           file://qt-config.patch;patch=1 \
-           file://use-lflags-last.patch;patch=1 \
-           file://linux-oe-qmake.conf"
-S = "${WORKDIR}/${QTVER}"
-
-inherit autotools  
-
-export QTDIR = "${S}"
-EXTRA_OEMAKE = "-e"
-
-do_configure() {
-    # Make sure we regenerate all Makefiles 
-    find ${S} -name "Makefile" | xargs rm
-    # Install the OE build templates
-    for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++ linux-uclibceabi-oe-g++
-    do
-        install -d ${S}/mkspecs/$template
-        install -m 0644 ${WORKDIR}/linux-oe-qmake.conf ${S}/mkspecs/$template/qmake.conf
-        ln -sf ../linux-g++/qplatformdefs.h ${S}/mkspecs/$template/qplatformdefs.h
-    done
-
-    QMAKESPEC=
-    PLATFORM=${HOST_OS}-oe-g++
-    export PLATFORM
-    export OE_QMAKE_CC="${CC}"
-    export OE_QMAKE_CFLAGS="${CFLAGS}"
-    export OE_QMAKE_CXX="${CXX}"
-    export OE_QMAKE_CXXFLAGS="-fno-exceptions -fno-rtti ${CXXFLAGS}"
-    export OE_QMAKE_LDFLAGS="${LDFLAGS}"
-    export OE_QMAKE_LINK="${CCLD}"
-    export OE_QMAKE_AR="${AR}"
-    export OE_QMAKE_STRIP="${STRIP}"
-    export OE_QMAKE_UIC="${STAGING_BINDIR_NATIVE}/uic4"
-    export OE_QMAKE_MOC="${STAGING_BINDIR_NATIVE}/moc4"
-    export QMAKE_MOC="${STAGING_BINDIR_NATIVE}/moc4"
-    export OE_QMAKE_RCC="${STAGING_BINDIR_NATIVE}/rcc4"
-    export QMAKE_RCC="${STAGING_BINDIR_NATIVE}/rcc4"
-    export OE_QMAKE_QMAKE="${STAGING_BINDIR_NATIVE}/qmake"
-    export OE_QMAKE_RPATH="-Wl,-rpath-link,"
-    echo yes | ./configure -prefix ${STAGING_DIR_NATIVE}/qt4 ${EXTRA_OECONF} || die "Configuring qt failed"
-}
-
-do_compile() {
-    :
-}
-
-do_stage() {
-	install -d ${STAGING_BINDIR_NATIVE}	
-	install -m 0755 bin/qmake ${STAGING_BINDIR_NATIVE}/qmake2
-	install -m 0755 bin/qmake ${STAGING_BINDIR_NATIVE}/qmake-qt4
-	install -d ${STAGING_DATADIR_NATIVE}/qt4
-	cp -PfR mkspecs ${STAGING_DATADIR_NATIVE}/qt4/
-}
diff --git a/recipes/qmake/qmake2-native_2.10a.bb b/recipes/qmake/qmake2-native_2.10a.bb
deleted file mode 100644
index 4579838..0000000
--- a/recipes/qmake/qmake2-native_2.10a.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-QTVERSION="4.4.3"
-FILESDIR += "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/qmake2-native"
-
-inherit native
-
-require ${PN}.inc
-
-do_install() {
-    :
-}
-
-
diff --git a/recipes/qmake/qmake2-sdk_2.10a.bb b/recipes/qmake/qmake2-sdk_2.10a.bb
deleted file mode 100644
index 6ed9ebd..0000000
--- a/recipes/qmake/qmake2-sdk_2.10a.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-QTVERSION="4.4.3"
-require qmake2-native.inc
-
-inherit sdk
-
-do_install () {
-	install -d ${D}/${bindir}
-    install -m 0755 bin/qmake ${D}/${bindir}/qmake2
-    install -m 0755 bin/qmake ${D}/${bindir}/qmake-qt4
-    install -d ${D}/${datadir}/qt4
-    cp -PfR mkspecs ${D}/${datadir}/qt4/
-}
-
-
-
-
-
diff --git a/recipes/qmake/qmake2.inc b/recipes/qmake/qmake2.inc
new file mode 100644
index 0000000..6924d1f
--- /dev/null
+++ b/recipes/qmake/qmake2.inc
@@ -0,0 +1,69 @@
+DESCRIPTION = "TrollTech Makefile Generator"
+PRIORITY = "optional"
+HOMEPAGE = "http://www.trolltech.com"
+SECTION = "devel"
+LICENSE = "GPL"
+PR = "r8"
+
+# We call 'moc' during the build 
+DEPENDS = "uicmoc4-native"
+
+QTVER = "qt-embedded-linux-opensource-src-${QTVERSION}"
+
+SRC_URI = "ftp://ftp.trolltech.com/qt/source/${QTVER}.tar.bz2 \
+           file://0001-fix-mkspecs.patch;patch=1 \
+           file://qt-config.patch;patch=1 \
+           file://use-lflags-last.patch;patch=1 \
+           file://linux-oe-qmake.conf"
+S = "${WORKDIR}/${QTVER}"
+
+inherit autotools  
+
+CROSSHACK = "true"
+CROSSHACK_virtclass-native = ""
+CROSSHACK_virtclass-nativesdk = ""
+
+export CROSSHACK
+export QTDIR = "${S}"
+EXTRA_OEMAKE = "-e"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_configure() {
+
+    # Make sure we regenerate all Makefiles 
+    find ${S} -name "Makefile" | xargs rm
+    # Install the OE build templates
+    for template in linux-oe-g++ linux-uclibc-oe-g++ linux-gnueabi-oe-g++ linux-uclibceabi-oe-g++
+    do
+        install -d ${S}/mkspecs/$template
+        install -m 0644 ${WORKDIR}/linux-oe-qmake.conf ${S}/mkspecs/$template/qmake.conf
+        ln -sf ../linux-g++/qplatformdefs.h ${S}/mkspecs/$template/qplatformdefs.h
+    done
+
+    QMAKESPEC=
+    PLATFORM=${HOST_OS}-oe-g++
+    export PLATFORM
+    export OE_QMAKE_CC="${CC}"
+    export OE_QMAKE_CFLAGS="${CFLAGS}"
+    export OE_QMAKE_CXX="${CXX}"
+    export OE_QMAKE_CXXFLAGS="-fno-exceptions -fno-rtti ${CXXFLAGS}"
+    export OE_QMAKE_LDFLAGS="${LDFLAGS}"
+    export OE_QMAKE_LINK="${CCLD}"
+    export OE_QMAKE_AR="${AR}"
+    export OE_QMAKE_STRIP="${STRIP}"
+    export OE_QMAKE_UIC="${STAGING_BINDIR_NATIVE}/uic4"
+    export OE_QMAKE_MOC="${STAGING_BINDIR_NATIVE}/moc4"
+    export QMAKE_MOC="${STAGING_BINDIR_NATIVE}/moc4"
+    export OE_QMAKE_RCC="${STAGING_BINDIR_NATIVE}/rcc4"
+    export QMAKE_RCC="${STAGING_BINDIR_NATIVE}/rcc4"
+    export OE_QMAKE_QMAKE="${STAGING_BINDIR_NATIVE}/qmake"
+    export OE_QMAKE_RPATH="-Wl,-rpath-link,"
+    echo yes | ./configure -prefix ${STAGING_DIR_NATIVE}/qt4 ${EXTRA_OECONF} || die "Configuring qt failed"
+}
+
+do_compile() {
+    :
+}
+
+FILES_${PN} += "${datadir}/qt4/"
diff --git a/recipes/qmake/qmake2-native/linux-oe-qmake.conf b/recipes/qmake/qmake2/linux-oe-qmake.conf
similarity index 100%
rename from recipes/qmake/qmake2-native/linux-oe-qmake.conf
rename to recipes/qmake/qmake2/linux-oe-qmake.conf
diff --git a/recipes/qmake/qmake2_2.10a.bb b/recipes/qmake/qmake2_2.10a.bb
new file mode 100644
index 0000000..abf4380
--- /dev/null
+++ b/recipes/qmake/qmake2_2.10a.bb
@@ -0,0 +1,18 @@
+QTVERSION="4.4.3"
+FILESDIR += "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/qmake2"
+
+BBCLASSEXTEND = "native sdk"
+
+require ${PN}.inc
+
+SRC_URI += "file://qmake-hack.diff;patch=1"
+
+do_install() {
+    install -d ${D}/${bindir}
+    install -m 0755 bin/qmake ${D}/${bindir}/qmake2
+    install -m 0755 bin/qmake ${D}/${bindir}/qmake-qt4
+    install -d ${D}/${datadir}/qt4
+    cp -PfR mkspecs ${D}/${datadir}/qt4/
+}
+
+
-- 
1.6.5

