From 7217b0c316ec2caacf1d1d7d8eeb539f86dc16e0 Mon Sep 17 00:00:00 2001 From: Holger Freyther Date: Mon, 3 Sep 2007 12:22:20 +0000 Subject: classes/{qmake*,qt4x11}.bbclass: Add a qmake2.bbclass to use qmake version two Add a qmake2.bbclass which currently takes over the role of qt4x11.bbclass with setting the QTDIR, MOC, UIC properly. qmake2 and qmake now share qmake-base.bbclass this is why some var assignments and functions have been moved around. Make webkit-gtk use qmake2 to eliminate the Qt3 and Qt4/X11 dependency. --- classes/qmake-base.bbclass | 66 ++++++++++++++++++++++++++++++++++++++-------- classes/qmake.bbclass | 65 ++++++++------------------------------------- classes/qmake2.bbclass | 20 ++++++++++++++ classes/qt4x11.bbclass | 19 ++----------- 4 files changed, 88 insertions(+), 82 deletions(-) create mode 100644 classes/qmake2.bbclass (limited to 'classes') diff --git a/classes/qmake-base.bbclass b/classes/qmake-base.bbclass index b623b34aaa..52f6d830a0 100644 --- a/classes/qmake-base.bbclass +++ b/classes/qmake-base.bbclass @@ -1,4 +1,3 @@ -DEPENDS_prepend = "qmake-native " OE_QMAKE_PLATFORM = "${TARGET_OS}-oe-g++" QMAKESPEC := "${QMAKE_MKSPEC_PATH}/${OE_QMAKE_PLATFORM}" @@ -9,22 +8,12 @@ EXTRA_OEMAKE = ' MAKEFLAGS= ' 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="echo" -export OE_QMAKE_UIC="${STAGING_BINDIR_NATIVE}/uic" -export OE_QMAKE_MOC="${STAGING_BINDIR_NATIVE}/moc" -export OE_QMAKE_RCC="non-existant" -export OE_QMAKE_QMAKE="${STAGING_BINDIR_NATIVE}/qmake" export OE_QMAKE_RPATH="-Wl,-rpath-link," # default to qte2 via bb.conf, inherit qt3x11 to configure for qt3x11 -export OE_QMAKE_INCDIR_QT="${QTDIR}/include" -export OE_QMAKE_LIBDIR_QT="${QTDIR}/lib" -export OE_QMAKE_LIBS_QT="qte" -export OE_QMAKE_LIBS_X11="" oe_qmake_mkspecs () { mkdir -p mkspecs/${OE_QMAKE_PLATFORM} @@ -42,3 +31,58 @@ oe_qmake_mkspecs () { done } +qmake-base_do_configure() { + case ${QMAKESPEC} in + *linux-oe-g++|*linux-uclibc-oe-g++|*linux-gnueabi-oe-g++) + ;; + *-oe-g++) + die Unsupported target ${TARGET_OS} for oe-g++ qmake spec + ;; + *) + oenote Searching for qmake spec file + paths="${QMAKE_MKSPEC_PATH}/qws/${TARGET_OS}-${TARGET_ARCH}-g++" + paths="${QMAKE_MKSPEC_PATH}/${TARGET_OS}-g++ $paths" + + if (echo "${TARGET_ARCH}"|grep -q 'i.86'); then + paths="${QMAKE_MKSPEC_PATH}/qws/${TARGET_OS}-x86-g++ $paths" + fi + for i in $paths; do + if test -e $i; then + export QMAKESPEC=$i + break + fi + done + ;; + esac + + oenote "using qmake spec in ${QMAKESPEC}, using profiles '${QMAKE_PROFILES}'" + + if [ -z "${QMAKE_PROFILES}" ]; then + PROFILES="`ls *.pro`" + else + PROFILES="${QMAKE_PROFILES}" + fi + + if [ -z "$PROFILES" ]; then + die "QMAKE_PROFILES not set and no profiles found in $PWD" + fi + + if [ ! -z "${EXTRA_QMAKEVARS_POST}" ]; then + AFTER="-after" + QMAKE_VARSUBST_POST="${EXTRA_QMAKEVARS_POST}" + oenote "qmake postvar substitution: ${EXTRA_QMAKEVARS_POST}" + fi + + if [ ! -z "${EXTRA_QMAKEVARS_PRE}" ]; then + QMAKE_VARSUBST_PRE="${EXTRA_QMAKEVARS_PRE}" + oenote "qmake prevar substitution: ${EXTRA_QMAKEVARS_PRE}" + fi + +#oenote "Calling '${OE_QMAKE_QMAKE} -makefile -spec ${QMAKESPEC} -o Makefile $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST'" + unset QMAKESPEC || true + ${OE_QMAKE_QMAKE} -makefile -spec ${QMAKESPEC} -o Makefile $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST || die "Error calling ${OE_QMAKE_QMAKE} on $PROFILES" +} + +EXPORT_FUNCTIONS do_configure + +addtask configure after do_unpack do_patch before do_compile diff --git a/classes/qmake.bbclass b/classes/qmake.bbclass index 4f2fceff35..b45e54ca6a 100644 --- a/classes/qmake.bbclass +++ b/classes/qmake.bbclass @@ -1,57 +1,14 @@ inherit qmake-base -qmake_do_configure() { - case ${QMAKESPEC} in - *linux-oe-g++|*linux-uclibc-oe-g++|*linux-gnueabi-oe-g++) - ;; - *-oe-g++) - die Unsupported target ${TARGET_OS} for oe-g++ qmake spec - ;; - *) - oenote Searching for qmake spec file - paths="${QMAKE_MKSPEC_PATH}/qws/${TARGET_OS}-${TARGET_ARCH}-g++" - paths="${QMAKE_MKSPEC_PATH}/${TARGET_OS}-g++ $paths" +DEPENDS_prepend = "qmake-native " + +export OE_QMAKE_UIC="${STAGING_BINDIR_NATIVE}/uic" +export OE_QMAKE_MOC="${STAGING_BINDIR_NATIVE}/moc" +export OE_QMAKE_QMAKE="${STAGING_BINDIR_NATIVE}/qmake" +export OE_QMAKE_CXXFLAGS="-fno-exceptions -fno-rtti ${CXXFLAGS}" +export OE_QMAKE_LINK="${CCLD}" +export OE_QMAKE_INCDIR_QT="${QTDIR}/include" +export OE_QMAKE_LIBDIR_QT="${QTDIR}/lib" +export OE_QMAKE_LIBS_QT="qte" +export OE_QMAKE_LIBS_X11="" - if (echo "${TARGET_ARCH}"|grep -q 'i.86'); then - paths="${QMAKE_MKSPEC_PATH}/qws/${TARGET_OS}-x86-g++ $paths" - fi - for i in $paths; do - if test -e $i; then - export QMAKESPEC=$i - break - fi - done - ;; - esac - - oenote "using qmake spec in ${QMAKESPEC}, using profiles '${QMAKE_PROFILES}'" - - if [ -z "${QMAKE_PROFILES}" ]; then - PROFILES="`ls *.pro`" - else - PROFILES="${QMAKE_PROFILES}" - fi - - if [ -z "$PROFILES" ]; then - die "QMAKE_PROFILES not set and no profiles found in $PWD" - fi - - if [ ! -z "${EXTRA_QMAKEVARS_POST}" ]; then - AFTER="-after" - QMAKE_VARSUBST_POST="${EXTRA_QMAKEVARS_POST}" - oenote "qmake postvar substitution: ${EXTRA_QMAKEVARS_POST}" - fi - - if [ ! -z "${EXTRA_QMAKEVARS_PRE}" ]; then - QMAKE_VARSUBST_PRE="${EXTRA_QMAKEVARS_PRE}" - oenote "qmake prevar substitution: ${EXTRA_QMAKEVARS_PRE}" - fi - -#oenote "Calling '${OE_QMAKE_QMAKE} -makefile -spec ${QMAKESPEC} -o Makefile $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST'" - unset QMAKESPEC || true - ${OE_QMAKE_QMAKE} -makefile -spec ${QMAKESPEC} -o Makefile $QMAKE_VARSUBST_PRE $AFTER $PROFILES $QMAKE_VARSUBST_POST || die "Error calling ${OE_QMAKE_QMAKE} on $PROFILES" -} - -EXPORT_FUNCTIONS do_configure - -addtask configure after do_unpack do_patch before do_compile diff --git a/classes/qmake2.bbclass b/classes/qmake2.bbclass new file mode 100644 index 0000000000..86f1439b30 --- /dev/null +++ b/classes/qmake2.bbclass @@ -0,0 +1,20 @@ +# +# QMake variables for Qt4 +# +inherit qmake-base + +DEPENDS_prepend = "qmake2-native uicmoc4-native " + +export QTDIR = "${STAGING_DIR}/${HOST_SYS}/qt4" +export QMAKESPEC = "${QTDIR}/mkspecs/${TARGET_OS}-oe-g++" +export OE_QMAKE_UIC = "${STAGING_BINDIR_NATIVE}/uic4" +export OE_QMAKE_UIC3 = "${STAGING_BINDIR_NATIVE}/uic34" +export OE_QMAKE_MOC = "${STAGING_BINDIR_NATIVE}/moc4" +export OE_QMAKE_RCC = "${STAGING_BINDIR_NATIVE}/rcc4" +export OE_QMAKE_QMAKE = "${STAGING_BINDIR_NATIVE}/qmake2" +export OE_QMAKE_LINK = "${CXX}" +export OE_QMAKE_CXXFLAGS = "${CXXFLAGS}" +export OE_QMAKE_INCDIR_QT = "${QTDIR}/include" +export OE_QMAKE_LIBDIR_QT = "${QTDIR}/lib" +export OE_QMAKE_LIBS_QT = "qt" +export OE_QMAKE_LIBS_X11 = "-lXext -lX11 -lm" diff --git a/classes/qt4x11.bbclass b/classes/qt4x11.bbclass index 7046ef1cb9..76a45c33cb 100644 --- a/classes/qt4x11.bbclass +++ b/classes/qt4x11.bbclass @@ -1,18 +1,3 @@ -DEPENDS_prepend = "qmake2-native " DEPENDS_prepend = "${@["qt4x11 ", ""][(bb.data.getVar('PN', d, 1) == 'qt4-x11-free')]}" -# -# override variables set by qmake-base to compile Qt4/X11 apps -# -export QTDIR = "${STAGING_DIR}/${HOST_SYS}/qt4" -export QMAKESPEC = "${QTDIR}/mkspecs/${TARGET_OS}-oe-g++" -export OE_QMAKE_UIC = "${STAGING_BINDIR_NATIVE}/uic4" -export OE_QMAKE_UIC3 = "${STAGING_BINDIR_NATIVE}/uic34" -export OE_QMAKE_MOC = "${STAGING_BINDIR_NATIVE}/moc4" -export OE_QMAKE_RCC = "${STAGING_BINDIR_NATIVE}/rcc4" -export OE_QMAKE_QMAKE = "${STAGING_BINDIR_NATIVE}/qmake2" -export OE_QMAKE_LINK = "${CXX}" -export OE_QMAKE_CXXFLAGS = "${CXXFLAGS}" -export OE_QMAKE_INCDIR_QT = "${QTDIR}/include" -export OE_QMAKE_LIBDIR_QT = "${QTDIR}/lib" -export OE_QMAKE_LIBS_QT = "qt" -export OE_QMAKE_LIBS_X11 = "-lXext -lX11 -lm" + +inherit qmake2 -- cgit 1.2.3-korg