[OE-core] [PATCH 1/1] qt4-x11-demo-image: Fix bug 999

Xiaofeng Yan xiaofeng.yan at windriver.com
Mon Aug 22 11:34:11 UTC 2011


From: Xiaofeng Yan <xiaofeng.yan at windriver.com>

[YOCTO #999]
Add qt4-x11-demo-image for fixing bug 999

Signed-off-by: Xiaofeng Yan <xiaofeng.yan at windriver.com>
---
 meta/classes/palmtop.bbclass                     |   26 ++
 meta/classes/sdk.bbclass                         |   74 ++++
 meta/recipes-qt/images/micro-base-image.bb       |   19 +
 meta/recipes-qt/images/qt4-x11-base-image.bb     |   35 ++
 meta/recipes-qt/images/qt4-x11-demo-image.bb     |   12 +
 meta/recipes-qt/qt-demo/qt-demo-init/qtdemo-init |   55 +++
 meta/recipes-qt/qt-demo/qt-demo-init_0.1.bb      |   20 +
 meta/recipes-qt/qwt/files/qt2-fix.patch          |  408 ++++++++++++++++++++++
 meta/recipes-qt/qwt/qwt.inc                      |   33 ++
 meta/recipes-qt/qwt/qwt_5.2.1.bb                 |   13 +
 meta/recipes-qt/tasks/task-qt4-x11.bb            |   52 +++
 meta/recipes-qt/tasks/task-sdk-host.bb           |   21 ++
 12 files changed, 768 insertions(+), 0 deletions(-)
 create mode 100644 meta/classes/palmtop.bbclass
 create mode 100644 meta/classes/sdk.bbclass
 create mode 100644 meta/recipes-qt/images/micro-base-image.bb
 create mode 100644 meta/recipes-qt/images/qt4-x11-base-image.bb
 create mode 100644 meta/recipes-qt/images/qt4-x11-demo-image.bb
 create mode 100644 meta/recipes-qt/qt-demo/qt-demo-init/qtdemo-init
 create mode 100644 meta/recipes-qt/qt-demo/qt-demo-init_0.1.bb
 create mode 100644 meta/recipes-qt/qwt/files/qt2-fix.patch
 create mode 100644 meta/recipes-qt/qwt/qwt.inc
 create mode 100644 meta/recipes-qt/qwt/qwt_5.2.1.bb
 create mode 100644 meta/recipes-qt/tasks/task-qt4-x11.bb
 create mode 100644 meta/recipes-qt/tasks/task-sdk-host.bb

diff --git a/meta/classes/palmtop.bbclass b/meta/classes/palmtop.bbclass
new file mode 100644
index 0000000..8cbbf80
--- /dev/null
+++ b/meta/classes/palmtop.bbclass
@@ -0,0 +1,26 @@
+# this build class sets up qmake variables to
+#   * build using the Qt Windowing System (QWS)
+#   * use qt
+#   * link against supc++ instead of stdc++  
+#   * use threads, if requested via PALMTOP_USE_MULTITHREADED_QT = "yes"
+# inherit this class to build programs against libqpe
+# inherit opie if you want to build programs against libopie2
+# don't override EXTRA_QMAKEVARS_POST, if you use inherit this class
+
+inherit qmake2
+
+# special case for DISTRO = sharprom
+CPP_SUPPORT_LIB = "LIBS-=-lstdc++ LIBS+=-lsupc++"
+CPP_SUPPORT_LIB_sharprom-compatible = "LIBS+=-lstdc++"
+EXTRA_QMAKEVARS_POST += "DEFINES+=QWS CONFIG+=qt ${CPP_SUPPORT_LIB}"
+EXTRA_QMAKEVARS_POST += '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "CONFIG+=thread", "CONFIG-=thread",d)}'
+EXTRA_QMAKEVARS_POST += "${@["LIBS+=-lqpe ", ""][(bb.data.getVar('PN', d, 1) == 'libqpe-opie')]}"
+DEPENDS_prepend = "${@["virtual/libqpe1 uicmoc-native ", ""][(bb.data.getVar('PN', d, 1) == 'libqpe-opie')]}"
+QT_LIBRARY = '${@base_conditional("PALMTOP_USE_MULTITHREADED_QT", "yes", "qte-mt", "qte", d)}'
+EXTRA_QMAKEVARS_POST += " DEFINES+=OPIE_BINDIR='\"${bindir}\"' DEFINES+=OPIE_LIBDIR='\"${libdir}/opie/lib\"' DEFINES+=OPIE_QTDIR='\"${libdir}/opie\"' "
+
+PACKAGES = "${PN}-dbg ${PN}-dev ${PN} ${PN}-doc ${PN}-locale"
+FILES_${PN} += " ${palmtopdir} "
+FILES_${PN}-dbg += " ${palmtopdir}/lib/.debug \
+                     ${palmtopdir}/bin/.debug \
+                     ${palmtopdir}/plugins/*/.debug "
diff --git a/meta/classes/sdk.bbclass b/meta/classes/sdk.bbclass
new file mode 100644
index 0000000..8d5b3dc
--- /dev/null
+++ b/meta/classes/sdk.bbclass
@@ -0,0 +1,74 @@
+#
+# Note this class is deprecated and replaced by nativesdk.bbclass
+#
+
+
+# SDK packages are built either explicitly by the user,
+# or indirectly via dependency.  No need to be in 'world'.
+EXCLUDE_FROM_WORLD = "1"
+target_includedir := "${includedir}"
+target_libdir := "${libdir}"
+
+# Save MULTIMACH_ARCH
+OLD_MULTIMACH_ARCH := "${MULTIMACH_ARCH}"
+# Save PACKAGE_ARCH
+OLD_PACKAGE_ARCH := ${PACKAGE_ARCH}
+PACKAGE_ARCH = "${BUILD_ARCH}-${OLD_PACKAGE_ARCH}-sdk"
+# Also save BASE_PACKAGE_ARCH since HOST_ARCH can influence it
+OLD_BASE_PACKAGE_ARCH := "${BASE_PACKAGE_ARCH}"
+BASE_PACKAGE_ARCH = "${OLD_BASE_PACKAGE_ARCH}"
+
+STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}-sdk"
+STAGING_DIR_TARGET = "${STAGING_DIR}/${OLD_MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
+
+HOST_ARCH = "${BUILD_ARCH}"
+HOST_VENDOR = "${BUILD_VENDOR}"
+HOST_OS = "${BUILD_OS}"
+HOST_PREFIX = "${BUILD_PREFIX}"
+HOST_CC_ARCH = "${BUILD_CC_ARCH}"
+#HOST_SYS = "${HOST_ARCH}${TARGET_VENDOR}-${HOST_OS}"
+HOST_EXEEXT = "${BUILD_EXEEXT}"
+
+CPPFLAGS = "${BUILD_CPPFLAGS}"
+CFLAGS = "${BUILD_CFLAGS}"
+CXXFLAGS = "${BUILD_CFLAGS}"
+LDFLAGS = "${BUILD_LDFLAGS}"
+
+TOOLCHAIN_OPTIONS = ""
+
+# Path prefixes
+prefix = "${SDK_PATH}"
+exec_prefix = "${prefix}"
+base_prefix = "${prefix}"
+
+# Base paths
+export base_bindir = "${prefix}/bin"
+export base_sbindir = "${prefix}/bin"
+export base_libdir = "${prefix}/lib"
+
+# Architecture independent paths
+export datadir = "${prefix}/share"
+export sysconfdir = "${prefix}/etc"
+export sharedstatedir = "${datadir}/com"
+export localstatedir = "${prefix}/var"
+export infodir = "${datadir}/info"
+export mandir = "${datadir}/man"
+export docdir = "${datadir}/doc"
+export servicedir = "${prefix}/srv"
+
+# Architecture dependent paths
+export bindir = "${prefix}/bin"
+export sbindir = "${prefix}/bin"
+export libexecdir = "${prefix}/libexec"
+export libdir = "${prefix}/lib"
+export includedir = "${prefix}/include"
+export oldincludedir = "${prefix}/include"
+
+FILES_${PN} = "${prefix}"
+FILES_${PN}-dbg += "${prefix}/.debug \
+                    ${prefix}/bin/.debug \
+                   "
+
+export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR_HOST}"
+
+OVERRIDES =. "virtclass-sdk:"
diff --git a/meta/recipes-qt/images/micro-base-image.bb b/meta/recipes-qt/images/micro-base-image.bb
new file mode 100644
index 0000000..a960d30
--- /dev/null
+++ b/meta/recipes-qt/images/micro-base-image.bb
@@ -0,0 +1,19 @@
+# micro-base-image
+#
+# Image configuration for the OE Micro Linux Distribuion (micro, micro-uclibc)
+#
+
+# Install basic files only
+IMAGE_INSTALL = "base-files base-passwd dropbear netbase"
+IMAGE_LINGUAS = ""
+
+# Use busybox as login manager
+IMAGE_LOGIN_MANAGER = "busybox"
+
+# Include minimum init and init scripts
+IMAGE_DEV_MANAGER = "busybox-mdev"
+IMAGE_INIT_MANAGER = "sysvinit sysvinit-pidof"
+IMAGE_INITSCRIPTS = ""
+
+inherit image
+
diff --git a/meta/recipes-qt/images/qt4-x11-base-image.bb b/meta/recipes-qt/images/qt4-x11-base-image.bb
new file mode 100644
index 0000000..8f290c7
--- /dev/null
+++ b/meta/recipes-qt/images/qt4-x11-base-image.bb
@@ -0,0 +1,35 @@
+require micro-base-image.bb
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
+                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+
+TOUCH = ' ${@base_contains("MACHINE_FEATURES", "touchscreen", "tslib tslib-calibrate tslib-tests", "",d)}'
+
+XSERVER ?= "xserver-xorg \
+           xf86-input-evdev \
+           xf86-input-tslib \
+           xf86-video-fbdev "
+
+DEPENDS += "task-qt4-x11"
+
+RDEPENDS_${PN} += " \
+        task-qt4-x11-base \
+	task-qt4-x11-qwt \
+        "
+
+IMAGE_INSTALL += "\
+	initscripts \
+	kernel-modules \
+	gdbserver \
+	strace \
+	module-init-tools \
+	task-qt4-x11-base \
+	task-qt4-x11-qwt \
+	${TOUCH} \
+	pointercal \
+	${XSERVER} \
+	xauth xhost xset xrandr \
+"
+
+
+#	ttf-liberation-sans ttf-liberation-serif ttf-liberation-mono \
diff --git a/meta/recipes-qt/images/qt4-x11-demo-image.bb b/meta/recipes-qt/images/qt4-x11-demo-image.bb
new file mode 100644
index 0000000..771e62b
--- /dev/null
+++ b/meta/recipes-qt/images/qt4-x11-demo-image.bb
@@ -0,0 +1,12 @@
+require qt4-x11-base-image.bb
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
+                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+
+IMAGE_INSTALL += "\
+        qt4-demos qt4-examples qt-demo-init \
+        qt4-assistant \
+        qwt-examples \
+"
+
+
diff --git a/meta/recipes-qt/qt-demo/qt-demo-init/qtdemo-init b/meta/recipes-qt/qt-demo/qt-demo-init/qtdemo-init
new file mode 100644
index 0000000..affb958
--- /dev/null
+++ b/meta/recipes-qt/qt-demo/qt-demo-init/qtdemo-init
@@ -0,0 +1,55 @@
+#!/bin/sh
+
+set -e
+
+if [ -f /usr/bin/qtdemo ]; then
+	QTDEMO="qtdemo > /var/log/Xsession.log 2> &1"
+else
+	QTDEMO="qtdemoE -qws"
+fi
+
+case "$1" in
+  start)
+	echo "Starting qtdemo"
+	if [ -f /etc/profile.d/tslib.sh ]; then
+		source /etc/profile.d/tslib.sh
+	fi
+	if [ -e $TSLIB_TSDEVICE ]; then
+		if [ ! -f /etc/pointercal ]; then
+			/usr/bin/ts_calibrate
+		fi
+		if [ $QTDEMO == qtdemo ]; then
+			Xorg &
+			export DISPLAY=:0
+			$QTDEMO &
+		else
+			QWS_MOUSE_PROTO=tslib:$TSLIB_TSDEVICE $QTDEMO &
+		fi
+	else
+		if [ $QTDEMO == qtdemo ]; then
+			Xorg &
+			export DISPLAY=:0
+		fi
+		$QTDEMO &
+	fi
+	;;
+  stop)
+	echo "Stopping qtdemo"
+	if [ $QTDEMO == qtdemo ]; then
+		killall Xorg
+		killall qtdemo
+	else
+		killall qtdemoE
+	fi
+	;;
+  restart)
+	$0 stop
+	$0 start
+	;;
+  *)
+	echo "usage: $0 { start | stop | restart }" >&2
+	exit 1
+	;;
+esac
+
+exit 0
diff --git a/meta/recipes-qt/qt-demo/qt-demo-init_0.1.bb b/meta/recipes-qt/qt-demo/qt-demo-init_0.1.bb
new file mode 100644
index 0000000..3b1a92c
--- /dev/null
+++ b/meta/recipes-qt/qt-demo/qt-demo-init_0.1.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Init script for qtdemo"
+LICENSE = "MIT"
+SRC_URI = "file://qtdemo-init"
+PR = "r2"
+
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
+                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+
+PACKAGE_ARCH = "all"
+
+do_install() {
+	install -d ${D}${sysconfdir}/init.d/
+	install -m 0755 ${WORKDIR}/qtdemo-init ${D}${sysconfdir}/init.d/qtdemo
+}
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "qtdemo"
+INITSCRIPT_PARAMS = "start 99 5 2 . stop 19 0 1 6 ."
diff --git a/meta/recipes-qt/qwt/files/qt2-fix.patch b/meta/recipes-qt/qwt/files/qt2-fix.patch
new file mode 100644
index 0000000..821846a
--- /dev/null
+++ b/meta/recipes-qt/qwt/files/qt2-fix.patch
@@ -0,0 +1,408 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qwt-4.2.0rc1/include/qwt_global.h~qt2-fix
++++ qwt-4.2.0rc1/include/qwt_global.h
+@@ -58,7 +58,7 @@
+ #define QWT_EXPORT
+ #endif
+ 
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ // Use old QArray instead of QMemArray
+ #define QWT_NO_MEMARRAY 
+ #endif
+@@ -68,7 +68,7 @@
+ #undef QWT_NO_STL
+ // #define QWT_NO_STL // disable Standard Template Library based classes
+ #if defined(_MSC_VER)
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ // tmake does not produce the missing -GX flag for exception handling
+ #define QWT_NO_STL
+ #else
+--- qwt-4.2.0rc1/include/qwt_picker.h~qt2-fix
++++ qwt-4.2.0rc1/include/qwt_picker.h
+@@ -89,7 +89,7 @@
+     Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode)
+     Q_PROPERTY(bool isEnabled READ isEnabled WRITE setEnabled)
+ 
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+     // Unfortunately moc is not aware of #ifdefs. To enable the QPen
+     // attributes as properties uncomment the following lines.
+ 
+--- qwt-4.2.0rc1/src/qwt_text.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_text.cpp
+@@ -337,7 +337,7 @@
+ //! Set the font
+ void QwtRichText::setFont(const QFont &font)
+ {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+     d_doc->setDefaultFont(font);
+ #endif
+     QwtText::setFont(font);
+@@ -359,7 +359,7 @@
+ */
+ int QwtRichText::heightForWidth(int width) const
+ {
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+     const QFont defaultFont = QFont::defaultFont();
+     QFont::setDefaultFont(font());
+ #endif
+@@ -367,7 +367,7 @@
+     const QwtLayoutMetrics metrics(QwtPainter::metricsMap());
+     const int height = metrics.heightForWidth(*d_doc, width);
+ 
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+     QFont::setDefaultFont(defaultFont);
+ #endif
+ 
+@@ -390,7 +390,7 @@
+     painter->save();
+ 
+     painter->setPen(color());
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+     const QFont defaultFont = QFont::defaultFont();
+     QFont::setDefaultFont(font());
+ #else
+@@ -399,7 +399,7 @@
+ 
+     QwtPainter::drawSimpleRichText(painter, rect, alignment(), *d_doc);
+ 
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+     QFont::setDefaultFont(defaultFont);
+ #endif
+     painter->restore();
+@@ -407,7 +407,7 @@
+ 
+ QRect QwtRichText::boundingRect(QPainter *painter) const
+ {
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+     const QFont defaultFont = QFont::defaultFont();
+     QFont::setDefaultFont(font());
+ #endif
+@@ -415,7 +415,7 @@
+     const QwtLayoutMetrics metrics(QwtPainter::metricsMap());
+     const QRect rect = metrics.boundingRect(*d_doc, alignment(), painter);
+ 
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+     QFont::setDefaultFont(defaultFont);
+ #endif
+ 
+@@ -428,7 +428,7 @@
+     QString rich = text;
+ 
+     // By default QwtSimpleRichText is Qt::AlignLeft
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+     if (align & Qt::AlignJustify) 
+     {
+         rich.prepend("<div align=\"justify\">");
+--- qwt-4.2.0rc1/src/qwt_push_button.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_push_button.cpp
+@@ -88,7 +88,7 @@
+                 !(d_button->alignment() & Qt::AlignCenter))
+             {
+                 const QRect contentsRect =
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+                     d_button->style().subRect( 
+                         QStyle::SR_PushButtonContents, d_button);
+ #else
+@@ -103,7 +103,7 @@
+                 // Many styles move the label right/down
+                 // when the button is down.
+ 
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+                 const QRect &r = *((QRect *)param[0].rect);
+ #else
+                 const QRect r(*param[0].point, param[1].pixmap->size());
+@@ -133,7 +133,7 @@
+                 d_inFilter = TRUE;
+ 
+                 d_button->style().drawItem(painter, 
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+                     pixRect,
+ #else
+                     pixRect.x(), pixRect.y(), 
+@@ -150,7 +150,7 @@
+                 // We save the position of the icon. We need it later
+                 // to align the label pixmap. Hope that there are no styles
+                 // that paint the pixmap before the icon.
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+                 d_iconRect = QRect(*param[0].point, param[1].pixmap->size());
+ #else
+                 d_iconRect = *param[0].rect;
+@@ -427,7 +427,7 @@
+ 
+     QPainter picPainter(&paintFilter);
+ 
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+     // When painting to QPicture the dotted line of the focus rect is
+     // set to solid. ( 06.08.2003 )
+     // So we don´t set the Style_HasFocus flag and paint the focus rect
+@@ -459,7 +459,7 @@
+ 
+     paintFilter.play(painter); 
+ 
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+     if (hasFocus())
+     {
+         // Paint the focus rect on top of the button label.
+--- qwt-4.2.0rc1/src/qwt_layout_metrics.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_layout_metrics.cpp
+@@ -212,7 +212,7 @@
+ QRect QwtMetricsMap::translate(
+     const QWMatrix &m, const QRect &rect) 
+ {
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+     return m.map(rect.normalize());
+ #else
+     return m.mapRect(rect);
+@@ -227,7 +227,7 @@
+ QPointArray QwtMetricsMap::translate(
+     const QWMatrix &m, const QPointArray &pa) 
+ {
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+     return m.map(pa);
+ #else
+     return m * pa;
+--- qwt-4.2.0rc1/src/qwt_slider.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_slider.cpp
+@@ -353,7 +353,7 @@
+     {
+         const QRect rect = d_sliderRect;
+ 
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+         style().drawFocusRect(painter, rect, colorGroup());
+ #else
+         style().drawPrimitive(QStyle::PE_FocusRect, painter,
+--- qwt-4.2.0rc1/src/qwt_counter.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_counter.cpp
+@@ -330,7 +330,7 @@
+     // QLineEdit::minimumSizeHint is for one char. Subtracting
+     // the size for the char we get all the margins, frames ...
+ 
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+     w += d_valueEdit->minimumSizeHint().width() - fm.maxWidth();
+ #else
+     w += 2 * d_valueEdit->frameWidth() + 
+--- qwt-4.2.0rc1/src/qwt_paint
++++ /dev/null
+--- qwt-4.2.0rc1/src/qwt_painter.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_painter.cpp
+@@ -201,7 +201,7 @@
+     QColorGroup cg;
+     cg.setColor(QColorGroup::Text, painter->pen().color());
+ 
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+     const QFont defaultFont = QFont::defaultFont();
+     QFont::setDefaultFont(painter->font());
+ #endif
+@@ -220,7 +220,7 @@
+ 
+     text.draw(painter, scaledRect.x(), y, scaledRect, cg);
+ 
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+     QFont::setDefaultFont(defaultFont);
+ #endif
+ }
+--- qwt-4.2.0rc1/src/qwt_dial.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_dial.cpp
+@@ -491,7 +491,7 @@
+         // because round objects doesn´t cover all pixels.
+ 
+         QRect br = boundingRect();
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+ #ifdef _WS_WIN32_
+         // Qt-230-NC draws ellipses not as nicely as Qt-2.3.x on X Windows
+         br.setTop(br.top()-1);
+@@ -1044,7 +1044,7 @@
+ {
+     if ( isReadOnly() )
+     {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+         e->ignore();
+ #endif
+         return;
+@@ -1078,7 +1078,7 @@
+             setValue(maxValue());
+             break;
+         default:;
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+             e->ignore();
+ #endif
+     }
+--- qwt-4.2.0rc1/src/qwt_knob.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_knob.cpp
+@@ -279,7 +279,7 @@
+     {
+         QRect r = rect();
+ 
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+         style().drawFocusRect(painter, r, colorGroup());
+ #else
+         style().drawPrimitive(QStyle::PE_FocusRect, painter,
+--- qwt-4.2.0rc1/src/qwt_arrbtn.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_arrbtn.cpp
+@@ -58,7 +58,7 @@
+ QRect QwtArrowButton::labelRect() const
+ {
+     QRect r =
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+         style().buttonRect(rect().x(), rect().y(),
+         rect().width(), rect().height());
+ #else
+@@ -71,7 +71,7 @@
+     if ( isDown() )
+     {
+         int ph, pv;
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+         style().getButtonShift(ph, pv);
+ #else
+         ph = style().pixelMetric(
+@@ -135,7 +135,7 @@
+     }
+     p->restore();
+ 
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+     if ( hasFocus() )
+     {
+         const QRect focusRect =  
+@@ -218,7 +218,7 @@
+     if ( d_arrowType == Qt::UpArrow || d_arrowType == Qt::DownArrow )
+         sz.transpose();
+ 
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+     int bm = style().buttonMargin() - 1;
+     sz += QSize(2 * bm, 2 * bm);
+ #else
+--- qwt-4.2.0rc1/src/qwt_wheel.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_wheel.cpp
+@@ -453,7 +453,7 @@
+     {
+         QRect r = rect();
+     
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+         style().drawFocusRect(painter, r, colorGroup());
+ #else
+         style().drawPrimitive(QStyle::PE_FocusRect, painter,
+--- qwt-4.2.0rc1/src/qwt_plot_canvas.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_plot_canvas.cpp
+@@ -195,7 +195,7 @@
+ 
+ void QwtPlotCanvas::drawFocusIndicator(QPainter *painter, const QRect &rect)
+ {
+-#if QT_VERSION < 300
++#if QT_VERSION < 0x030000
+         style().drawFocusRect(painter, rect, colorGroup());
+ #else
+         style().drawPrimitive(QStyle::PE_FocusRect, painter,
+--- qwt-4.2.0rc1/src/qwt_sldbase.cpp~qt2-fix
++++ qwt-4.2.0rc1/src/qwt_sldbase.cpp
+@@ -115,7 +115,7 @@
+ {
+     if ( isReadOnly() )
+     {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+         e->ignore();
+ #endif
+         return;
+@@ -166,7 +166,7 @@
+ {
+     if ( isReadOnly() )
+     {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+         e->ignore();
+ #endif
+         return;
+@@ -274,7 +274,7 @@
+ {
+     if ( isReadOnly() )
+     {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+         e->ignore();
+ #endif
+         return;
+@@ -304,7 +304,7 @@
+ {
+     if ( isReadOnly() )
+     {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+         e->ignore();
+ #endif
+         return;
+@@ -341,7 +341,7 @@
+ {
+     if ( isReadOnly() )
+     {
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+         e->ignore();
+ #endif
+         return;
+@@ -370,7 +370,7 @@
+                 increment = 1;
+             break;
+         default:;
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+             e->ignore();
+ #endif
+     }
+--- qwt-4.2.0rc1/examples/realtime_plot/scrollbar.cpp~qt2-fix
++++ qwt-4.2.0rc1/examples/realtime_plot/scrollbar.cpp
+@@ -154,7 +154,7 @@
+ int ScrollBar::extent() const
+ {
+     int dim;
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+     dim = style().pixelMetric(QStyle::PM_ScrollBarExtent, this);
+ #else
+     const QSize sz = style().scrollBarExtent();
+--- qwt-4.2.0rc1/examples/event_filter/colorbar.cpp~qt2-fix
++++ qwt-4.2.0rc1/examples/event_filter/colorbar.cpp
+@@ -48,7 +48,7 @@
+         const QRgb rgb = pm.convertToImage().pixel(e->x(), e->y());
+     
+         emit selected(QColor(rgb));
+-#if QT_VERSION >= 300
++#if QT_VERSION >= 0x030000
+         e->accept();
+ #endif
+     }
diff --git a/meta/recipes-qt/qwt/qwt.inc b/meta/recipes-qt/qwt/qwt.inc
new file mode 100644
index 0000000..8a1fe02
--- /dev/null
+++ b/meta/recipes-qt/qwt/qwt.inc
@@ -0,0 +1,33 @@
+DESCRIPTION = "Qt Widget Extension for Technical Applications"
+SECTION = "libs"
+PRIORITY = "optional"
+
+# LGPLv2.1 + some exceptions
+LICENSE = "QWTv1.0"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/qwt/qwt-${PV}.tar.bz2;name=qwt"
+
+S = "${WORKDIR}/qwt-${PV}"
+
+do_configure_prepend() {
+	sed -i -e 's:RELEASE_SUFFIX      = :RELEASE_SUFFIX      = ${QT_LIBINFIX} :' *.pri
+	sed -i -e s:lqwt:lqwt${QT_LIBINFIX}:g -e s:/usr/local/qwt-$\${QwtVersion}:${prefix}:g *.prf
+	sed -e 's/#CONFIG     += QwtExamples/CONFIG     += QwtExamples/g' -i qwtconfig.pri
+	sed -i -e s:/usr/local/qwt-${PV}:${D}${prefix}:g ${S}/*.pri
+}
+
+do_install() {
+	oe_runmake -e install
+	install -d ${D}${datadir}/doc/${PN}
+	mv ${D}${prefix}/doc/* ${D}${datadir}/doc/${PN}/
+	cd ${S}/examples
+	install -d ${D}/${bindir}
+	cd ${S}/examples/bin${QT_LIBINFIX}/
+	for i in * ; do
+		cp -pPR ${i} ${D}/${bindir}/${i}${QT_LIBINFIX}
+	done
+}
+
+PACKAGES_prepend = "${PN}-examples "
+FILES_${PN}-examples = "${bindir}/*"
+
diff --git a/meta/recipes-qt/qwt/qwt_5.2.1.bb b/meta/recipes-qt/qwt/qwt_5.2.1.bb
new file mode 100644
index 0000000..b20229f
--- /dev/null
+++ b/meta/recipes-qt/qwt/qwt_5.2.1.bb
@@ -0,0 +1,13 @@
+LICENSE = "LGPL"
+PR = "r1"
+
+inherit qt4x11
+
+require qwt.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=dac2743472b0462ff3cfb4af42051c88"
+
+SRC_URI[qwt.md5sum] = "4a595b8db0ec3856b117836c1d60cb27"
+SRC_URI[qwt.sha256sum] = "e2b8bb755404cb3dc99e61f3e2d7262152193488f5fbe88524eb698e11ac569f"
+
+RPROVIDES_${PN}-dev = "libqwt-dev"
diff --git a/meta/recipes-qt/tasks/task-qt4-x11.bb b/meta/recipes-qt/tasks/task-qt4-x11.bb
new file mode 100644
index 0000000..dcedd58
--- /dev/null
+++ b/meta/recipes-qt/tasks/task-qt4-x11.bb
@@ -0,0 +1,52 @@
+DESCRIPTION = "QT4-X11 base Image Feed"
+PR = "r1"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
+                    file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+inherit task
+
+PACKAGES += " \
+	${PN}-base \
+	${PN}-qwt \
+"
+
+RDEPENDS_${PN}-base = " \
+	busybox \
+	libx11 \
+	qt4-x11-free \
+        libqt3support4 \
+        libqtclucene4 \
+        libqtcore4 \
+        libqtdbus4 \
+        libqtgui4 \
+        libqthelp4 \
+        libqtmultimedia4 \
+        libqtnetwork4 \
+        libqtscript4 \
+        libqtscripttools4 \
+        libqtsql4 \
+        libqtsvg4 \
+        libqttest4 \
+        libqtwebkit4 \
+        libqtxml4 \
+        qt4-fonts \
+        qt4-plugin-iconengine-svgicon \
+        qt4-plugin-imageformat-gif \
+        qt4-plugin-imageformat-ico \
+        qt4-plugin-imageformat-jpeg \
+        qt4-plugin-imageformat-mng \
+        qt4-plugin-imageformat-svg \
+        qt4-plugin-imageformat-tiff \
+        qt4-plugin-phonon-backend-gstreamer \
+        qt4-plugin-script-dbus \
+        qt4-plugin-sqldriver-sqlite \
+"
+
+RRECOMMENDS_${PN}-base = " \
+        libqtxmlpatterns4 \
+"
+
+RDEPENDS_${PN}-qwt = "\
+        qwt \
+"
diff --git a/meta/recipes-qt/tasks/task-sdk-host.bb b/meta/recipes-qt/tasks/task-sdk-host.bb
new file mode 100644
index 0000000..3707259
--- /dev/null
+++ b/meta/recipes-qt/tasks/task-sdk-host.bb
@@ -0,0 +1,21 @@
+#
+# Copyright (C) 2007 OpenedHand Ltd
+#
+
+DESCRIPTION = "Host packages for the standalone SDK or external toolchain"
+PR = "r3"
+LICENSE = "MIT"
+ALLOW_EMPTY = "1"
+
+inherit sdk
+
+PACKAGES = "${PN}"
+
+RDEPENDS_${PN} = "\
+    binutils-cross-sdk \
+    gcc-cross-sdk \
+    gdb-cross-sdk \
+    pkgconfig-sdk \
+    opkg-sdk \
+    libtool-sdk \
+    "
-- 
1.7.0.4





More information about the Openembedded-core mailing list