summaryrefslogtreecommitdiffstats
path: root/meta/recipes-qt
diff options
context:
space:
mode:
authorTudor Florea <tudor.florea@enea.com>2015-10-09 22:59:03 +0200
committerTudor Florea <tudor.florea@enea.com>2015-10-09 22:59:03 +0200
commit972dcfcdbfe75dcfeb777150c136576cf1a71e99 (patch)
tree97a61cd7e293d7ae9d56ef7ed0f81253365bb026 /meta/recipes-qt
downloadpoky-972dcfcdbfe75dcfeb777150c136576cf1a71e99.tar.gz
initial commit for Enea Linux 5.0 arm
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
Diffstat (limited to 'meta/recipes-qt')
-rw-r--r--meta/recipes-qt/images/qt4e-demo-image.bb14
-rw-r--r--meta/recipes-qt/meta/meta-toolchain-qt.bb5
-rw-r--r--meta/recipes-qt/meta/meta-toolchain-qt.inc35
-rw-r--r--meta/recipes-qt/meta/meta-toolchain-qte.bb6
-rw-r--r--meta/recipes-qt/packagegroups/nativesdk-packagegroup-qt-toolchain-host.bb3
-rw-r--r--meta/recipes-qt/packagegroups/nativesdk-packagegroup-qt-toolchain-host.inc6
-rw-r--r--meta/recipes-qt/packagegroups/nativesdk-packagegroup-qte-toolchain-host.bb3
-rw-r--r--meta/recipes-qt/packagegroups/packagegroup-core-qt.bb19
-rw-r--r--meta/recipes-qt/packagegroups/packagegroup-core-qt4e.bb52
-rw-r--r--meta/recipes-qt/packagegroups/packagegroup-qt-toolchain-target.bb11
-rw-r--r--meta/recipes-qt/packagegroups/packagegroup-qt-toolchain-target.inc36
-rw-r--r--meta/recipes-qt/packagegroups/packagegroup-qte-toolchain-target.bb7
-rw-r--r--meta/recipes-qt/qt-apps/fotowall/ExportWizard-depends-on-ui_wizard.patch18
-rw-r--r--meta/recipes-qt/qt-apps/fotowall_0.9.bb31
-rw-r--r--meta/recipes-qt/qt-apps/qmmp/no-host-paths.patch26
-rw-r--r--meta/recipes-qt/qt-apps/qmmp_0.7.7.bb77
-rw-r--r--meta/recipes-qt/qt-apps/quicky_0.4.bb19
-rw-r--r--meta/recipes-qt/qt-demo/qt-demo-init/qtdemo-init55
-rw-r--r--meta/recipes-qt/qt-demo/qt-demo-init_0.1.bb17
-rw-r--r--meta/recipes-qt/qt4-graphics-system/qt4-graphics-system_1.0.bb25
-rw-r--r--meta/recipes-qt/qt4/nativesdk-qt4-tools.inc127
-rw-r--r--meta/recipes-qt/qt4/nativesdk-qt4-tools_4.8.6.bb6
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6.inc74
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0001-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch43
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0002-qkbdtty_qws-fix-build-with-old-kernel-headers.patch50
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0003-webkit2-set-OUTPUT_DIR-value-if-empty.patch34
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0004-configure-qmake-is-already-built-in-qt4-tools-native.patch29
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0005-configure-set-LFLAGS-to-pick-up-zlib-from-staging.patch28
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0006-configure-Use-OE_QMAKE_-values-to-specify-Qt-utility.patch38
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0007-dbus-Remove-const-usage-that-causes-compile-failure-.patch34
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0008-qmake.pro-Allow-building-a-separate-qmake-for-the-ta.patch29
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0009-qmake-fix-source-file-references-in-qmake.pri.patch52
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0010-configure-Hack-to-not-use-the-pg_config-of-the-host-.patch42
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0011-freetype-host-includes.patch29
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0012-Add-2bpp-support.patch318
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0013-configure-add-crossarch-option.patch47
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0014-translations-fix-phony-translation-linking-error.patch41
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0015-configure-add-nostrip-for-debug-packages.patch32
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0016-configure-eval-QMAKE_CXX.patch37
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0017-configure-ensure-we-identify-the-compiler-as-g-in-co.patch46
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0018-configure-make-pulseaudio-a-configurable-option.patch46
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0019-Fixes-for-gcc-4.7.0-particularly-on-qemux86.patch63
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0021-configure-make-qt4-native-work-with-long-building-pa.patch95
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0027-tools.pro-disable-qmeegographicssystemhelper.patch28
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0028-Don-t-crash-on-broken-GIF-images.patch47
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0029-aarch64_arm64_fix_arch_detection.patch53
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0030-aarch64_arm64_qatomic_support.patch491
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0031-aarch64_arm64_mkspecs.patch124
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0032-aarch64_add_header.patch18
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0033-configure-support-c-0x-standard-for-directfd.patch40
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/0034-Fix-a-division-by-zero-when-processing-malformed-BMP.patch44
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/Fix-QWSLock-invalid-argument-logs.patch98
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/add_check_for_aarch64_32.patch55
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/g++.conf40
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/linux.conf66
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.6/qte.sh7
-rw-r--r--meta/recipes-qt/qt4/qt4-embedded.inc75
-rw-r--r--meta/recipes-qt/qt4/qt4-embedded_4.8.6.bb9
-rw-r--r--meta/recipes-qt/qt4/qt4-native.inc118
-rw-r--r--meta/recipes-qt/qt4/qt4-native_4.8.6.bb6
-rw-r--r--meta/recipes-qt/qt4/qt4-x11-free.inc40
-rw-r--r--meta/recipes-qt/qt4/qt4-x11-free_4.8.6.bb9
-rw-r--r--meta/recipes-qt/qt4/qt4.inc394
-rw-r--r--meta/recipes-qt/qt4/qt4_arch.inc22
64 files changed, 3589 insertions, 0 deletions
diff --git a/meta/recipes-qt/images/qt4e-demo-image.bb b/meta/recipes-qt/images/qt4e-demo-image.bb
new file mode 100644
index 0000000000..4451848656
--- /dev/null
+++ b/meta/recipes-qt/images/qt4e-demo-image.bb
@@ -0,0 +1,14 @@
1DESCRIPTION = "An image that will launch into the demo application for the embedded (not based on X11) version of Qt."
2LICENSE = "MIT"
3PR = "r3"
4
5LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
6 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
7
8IMAGE_INSTALL += "\
9 ${CORE_IMAGE_BASE_INSTALL} \
10 packagegroup-core-qt4e \
11"
12
13inherit core-image
14
diff --git a/meta/recipes-qt/meta/meta-toolchain-qt.bb b/meta/recipes-qt/meta/meta-toolchain-qt.bb
new file mode 100644
index 0000000000..a10103a39f
--- /dev/null
+++ b/meta/recipes-qt/meta/meta-toolchain-qt.bb
@@ -0,0 +1,5 @@
1# Qt toolchain
2QTNAME = "qt"
3QT_DIR_NAME = "qt4"
4
5require meta-toolchain-qt.inc
diff --git a/meta/recipes-qt/meta/meta-toolchain-qt.inc b/meta/recipes-qt/meta/meta-toolchain-qt.inc
new file mode 100644
index 0000000000..7e75d93b14
--- /dev/null
+++ b/meta/recipes-qt/meta/meta-toolchain-qt.inc
@@ -0,0 +1,35 @@
1TOOLCHAIN_HOST_TASK = "nativesdk-packagegroup-${QTNAME}-toolchain-host packagegroup-cross-canadian-${MACHINE}"
2TOOLCHAIN_TARGET_TASK = "packagegroup-${QTNAME}-toolchain-target"
3TOOLCHAIN_OUTPUTNAME = "${SDK_NAME}-toolchain-${QTNAME}-${DISTRO_VERSION}"
4
5require recipes-core/meta/meta-toolchain.bb
6
7QT_TOOLS_PREFIX = "$OECORE_NATIVE_SYSROOT${bindir_nativesdk}"
8
9create_sdk_files_append() {
10 mkdir -p ${SDK_OUTPUT}${SDKPATHNATIVE}/environment-setup.d/
11 script=${SDK_OUTPUT}${SDKPATHNATIVE}/environment-setup.d/${QT_DIR_NAME}.sh
12
13 echo 'export OE_QMAKE_CFLAGS="$CFLAGS"' > $script
14 echo 'export OE_QMAKE_CXXFLAGS="$CXXFLAGS"' >> $script
15 echo 'export OE_QMAKE_LDFLAGS="$LDFLAGS"' >> $script
16 echo 'export OE_QMAKE_CC=$CC' >> $script
17 echo 'export OE_QMAKE_CXX=$CXX' >> $script
18 echo 'export OE_QMAKE_LINK=$CXX' >> $script
19 echo 'export OE_QMAKE_AR=$AR' >> $script
20 echo 'export OE_QMAKE_LIBDIR_QT=$OECORE_TARGET_SYSROOT${libdir}' >> $script
21 echo 'export OE_QMAKE_INCDIR_QT=$OECORE_TARGET_SYSROOT${includedir}/${QT_DIR_NAME}' >> $script
22 echo 'export OE_QMAKE_MOC=${QT_TOOLS_PREFIX}/moc4' >> $script
23 echo 'export OE_QMAKE_UIC=${QT_TOOLS_PREFIX}/uic4' >> $script
24 echo 'export OE_QMAKE_UIC3=${QT_TOOLS_PREFIX}/uic34' >> $script
25 echo 'export OE_QMAKE_RCC=${QT_TOOLS_PREFIX}/rcc4' >> $script
26 echo 'export OE_QMAKE_QDBUSCPP2XML=${QT_TOOLS_PREFIX}/qdbuscpp2xml4' >> $script
27 echo 'export OE_QMAKE_QDBUSXML2CPP=${QT_TOOLS_PREFIX}/qdbusxml2cpp4' >> $script
28 echo 'export OE_QMAKE_QT_CONFIG=$OECORE_TARGET_SYSROOT${datadir}/${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $script
29 echo 'export QMAKESPEC=$OECORE_TARGET_SYSROOT${datadir}/${QT_DIR_NAME}/mkspecs/linux-g++' >> $script
30 echo 'export QT_CONF_PATH=$OECORE_NATIVE_SYSROOT${sysconfdir}/qt.conf' >> $script
31
32 # make a symbolic link to mkspecs for compatibility with Qt SDK
33 # and Qt Creator
34 (cd ${SDK_OUTPUT}/${SDKPATHNATIVE}${bindir_nativesdk}/..; ln -s ${SDKTARGETSYSROOT}/usr/share/${QT_DIR_NAME}/mkspecs mkspecs;)
35}
diff --git a/meta/recipes-qt/meta/meta-toolchain-qte.bb b/meta/recipes-qt/meta/meta-toolchain-qte.bb
new file mode 100644
index 0000000000..9113f48ed8
--- /dev/null
+++ b/meta/recipes-qt/meta/meta-toolchain-qte.bb
@@ -0,0 +1,6 @@
1# Qt Embedded toolchain
2PR = "r6"
3QTNAME = "qte"
4QT_DIR_NAME = "qtopia"
5
6require meta-toolchain-qt.inc
diff --git a/meta/recipes-qt/packagegroups/nativesdk-packagegroup-qt-toolchain-host.bb b/meta/recipes-qt/packagegroups/nativesdk-packagegroup-qt-toolchain-host.bb
new file mode 100644
index 0000000000..b95cc5e594
--- /dev/null
+++ b/meta/recipes-qt/packagegroups/nativesdk-packagegroup-qt-toolchain-host.bb
@@ -0,0 +1,3 @@
1require nativesdk-packagegroup-qt-toolchain-host.inc
2
3SUMMARY = "Host packages for Qt SDK"
diff --git a/meta/recipes-qt/packagegroups/nativesdk-packagegroup-qt-toolchain-host.inc b/meta/recipes-qt/packagegroups/nativesdk-packagegroup-qt-toolchain-host.inc
new file mode 100644
index 0000000000..a3c275fd97
--- /dev/null
+++ b/meta/recipes-qt/packagegroups/nativesdk-packagegroup-qt-toolchain-host.inc
@@ -0,0 +1,6 @@
1require recipes-core/packagegroups/nativesdk-packagegroup-sdk-host.bb
2
3DESCRIPTION = "Host packages for Qt Embedded SDK"
4LICENSE = "MIT"
5
6RDEPENDS_${PN} += "nativesdk-qt4-tools"
diff --git a/meta/recipes-qt/packagegroups/nativesdk-packagegroup-qte-toolchain-host.bb b/meta/recipes-qt/packagegroups/nativesdk-packagegroup-qte-toolchain-host.bb
new file mode 100644
index 0000000000..296e4b803c
--- /dev/null
+++ b/meta/recipes-qt/packagegroups/nativesdk-packagegroup-qte-toolchain-host.bb
@@ -0,0 +1,3 @@
1require nativesdk-packagegroup-qt-toolchain-host.inc
2
3SUMMARY = "Host packages for Qt Embedded SDK"
diff --git a/meta/recipes-qt/packagegroups/packagegroup-core-qt.bb b/meta/recipes-qt/packagegroups/packagegroup-core-qt.bb
new file mode 100644
index 0000000000..5f6916a430
--- /dev/null
+++ b/meta/recipes-qt/packagegroups/packagegroup-core-qt.bb
@@ -0,0 +1,19 @@
1#
2# Copyright (C) 2010 Intel Corporation. All rights reserved
3#
4
5SUMMARY = "Qt package groups"
6LICENSE = "MIT"
7PR = "r4"
8
9# Qt4 could NOT be built on MIPS64 with 64 bits userspace
10COMPATIBLE_HOST_mips64 = "null"
11
12inherit packagegroup
13
14PACKAGES = "${PN}-demoapps"
15
16QTDEMOS ?= "quicky ${COMMERCIAL_QT} fotowall"
17
18SUMMARY_${PN}-demoapps = "Qt demo applications"
19RDEPENDS_${PN}-demoapps = "${QTDEMOS}"
diff --git a/meta/recipes-qt/packagegroups/packagegroup-core-qt4e.bb b/meta/recipes-qt/packagegroups/packagegroup-core-qt4e.bb
new file mode 100644
index 0000000000..d4f0fd1d8c
--- /dev/null
+++ b/meta/recipes-qt/packagegroups/packagegroup-core-qt4e.bb
@@ -0,0 +1,52 @@
1SUMMARY = "Qt for Embedded Linux (Qt without X11)"
2PR = "r2"
3LICENSE = "MIT"
4
5# Qt4 could NOT be built on MIPS64 with 64 bits userspace
6COMPATIBLE_HOST_mips64 = "null"
7
8inherit packagegroup
9
10TOUCH = ' ${@bb.utils.contains("MACHINE_FEATURES", "touchscreen", "tslib tslib-calibrate tslib-tests", "",d)}'
11
12RDEPENDS_${PN} = " \
13 qt4-embedded \
14 libqt-embedded3support4 \
15 libqt-embeddedclucene4 \
16 libqt-embeddedcore4 \
17 libqt-embeddeddbus4 \
18 libqt-embeddedgui4 \
19 libqt-embeddedhelp4 \
20 libqt-embeddedmultimedia4 \
21 libqt-embeddednetwork4 \
22 libqt-embeddedscript4 \
23 libqt-embeddedscripttools4 \
24 libqt-embeddedsql4 \
25 libqt-embeddedsvg4 \
26 libqt-embeddedtest4 \
27 libqt-embeddedwebkit4 \
28 libqt-embeddedxml4 \
29 qt4-embedded-fonts-ttf-dejavu \
30 qt4-embedded-fonts-ttf-vera \
31 qt4-embedded-plugin-iconengine-svgicon \
32 qt4-embedded-plugin-imageformat-gif \
33 qt4-embedded-plugin-imageformat-ico \
34 qt4-embedded-plugin-imageformat-jpeg \
35 qt4-embedded-plugin-imageformat-mng \
36 qt4-embedded-plugin-imageformat-svg \
37 qt4-embedded-plugin-imageformat-tiff \
38 qt4-embedded-plugin-mousedriver-tslib \
39 qt4-embedded-plugin-phonon-backend-gstreamer \
40 qt4-embedded-plugin-script-dbus \
41 qt4-embedded-plugin-sqldriver-sqlite \
42 ${TOUCH} \
43 qt4-embedded-demos \
44 qt4-embedded-examples \
45 qt-demo-init \
46 qt4-embedded-assistant \
47"
48
49RRECOMMENDS_${PN} = " \
50 libqt-embeddedxmlpatterns4 \
51"
52
diff --git a/meta/recipes-qt/packagegroups/packagegroup-qt-toolchain-target.bb b/meta/recipes-qt/packagegroups/packagegroup-qt-toolchain-target.bb
new file mode 100644
index 0000000000..0e7c800946
--- /dev/null
+++ b/meta/recipes-qt/packagegroups/packagegroup-qt-toolchain-target.bb
@@ -0,0 +1,11 @@
1SUMMARY = "Target packages for Qt SDK"
2
3QTLIBPREFIX = ""
4
5require packagegroup-qt-toolchain-target.inc
6
7RDEPENDS_${PN} += " \
8 qt4-x11-free-dev \
9 ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'libqtopengl4-dev', '', d)} \
10 ${@bb.utils.contains('DISTRO_FEATURES', 'openvg', 'libqtopenvg4-dev', '', d)} \
11 "
diff --git a/meta/recipes-qt/packagegroups/packagegroup-qt-toolchain-target.inc b/meta/recipes-qt/packagegroups/packagegroup-qt-toolchain-target.inc
new file mode 100644
index 0000000000..02a032658d
--- /dev/null
+++ b/meta/recipes-qt/packagegroups/packagegroup-qt-toolchain-target.inc
@@ -0,0 +1,36 @@
1LICENSE = "MIT"
2
3# Qt4 could NOT be built on MIPS64 with 64 bits userspace
4COMPATIBLE_HOST_mips64 = "null"
5
6inherit packagegroup
7
8PACKAGEGROUP_DISABLE_COMPLEMENTARY = "1"
9
10RDEPENDS_${PN} += " \
11 packagegroup-core-standalone-sdk-target \
12 qt4${QTLIBPREFIX}-mkspecs \
13 libqt${QTLIBPREFIX}multimedia4-dev \
14 libqt${QTLIBPREFIX}phonon4-dev \
15 libqt${QTLIBPREFIX}3support4-dev \
16 libqt${QTLIBPREFIX}clucene4-dev \
17 libqt${QTLIBPREFIX}core4-dev \
18 libqt${QTLIBPREFIX}dbus4-dev \
19 libqt${QTLIBPREFIX}designercomponents4-dev \
20 libqt${QTLIBPREFIX}designer4-dev \
21 libqt${QTLIBPREFIX}uitools4-dev \
22 libqt${QTLIBPREFIX}gui4-dev \
23 libqt${QTLIBPREFIX}help4-dev \
24 libqt${QTLIBPREFIX}network4-dev \
25 libqt${QTLIBPREFIX}script4-dev \
26 libqt${QTLIBPREFIX}scripttools4-dev \
27 libqt${QTLIBPREFIX}sql4-dev \
28 libqt${QTLIBPREFIX}svg4-dev \
29 libqt${QTLIBPREFIX}test4-dev \
30 libqt${QTLIBPREFIX}webkit4-dev \
31 libqt${QTLIBPREFIX}xml4-dev \
32 libqt${QTLIBPREFIX}declarative4-dev \
33 libqt${QTLIBPREFIX}xmlpatterns4-dev \
34 libsqlite3-dev \
35 expat-dev \
36 "
diff --git a/meta/recipes-qt/packagegroups/packagegroup-qte-toolchain-target.bb b/meta/recipes-qt/packagegroups/packagegroup-qte-toolchain-target.bb
new file mode 100644
index 0000000000..92ed237d3b
--- /dev/null
+++ b/meta/recipes-qt/packagegroups/packagegroup-qte-toolchain-target.bb
@@ -0,0 +1,7 @@
1SUMMARY = "Target packages for Qt Embedded SDK"
2
3PR = "r7"
4
5QTLIBPREFIX = "-embedded"
6
7require packagegroup-qt-toolchain-target.inc
diff --git a/meta/recipes-qt/qt-apps/fotowall/ExportWizard-depends-on-ui_wizard.patch b/meta/recipes-qt/qt-apps/fotowall/ExportWizard-depends-on-ui_wizard.patch
new file mode 100644
index 0000000000..d8b2b2347b
--- /dev/null
+++ b/meta/recipes-qt/qt-apps/fotowall/ExportWizard-depends-on-ui_wizard.patch
@@ -0,0 +1,18 @@
1App/ExportWizard.cpp depends on wizard.h which depends on ui_wizard. The last one
2should be already generated before compiling ExportWizard.cpp.
3
4Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
5Upstream-Status: Pending
6
7Index: Fotowall-0.9/App/ExportWizard.cpp
8===================================================================
9--- Fotowall-0.9.orig/App/ExportWizard.cpp 2009-11-30 13:21:31.000000000 +0200
10+++ Fotowall-0.9/App/ExportWizard.cpp 2012-05-10 17:12:06.765230830 +0300
11@@ -23,6 +23,7 @@
12 #include "imageloaderqt.h"
13 #include "posterazorcore.h"
14 #include "wizard.h"
15+#include "ui_wizard.h"
16
17 #include <QDesktopServices>
18 #include <QDesktopWidget>
diff --git a/meta/recipes-qt/qt-apps/fotowall_0.9.bb b/meta/recipes-qt/qt-apps/fotowall_0.9.bb
new file mode 100644
index 0000000000..48dcc02e2a
--- /dev/null
+++ b/meta/recipes-qt/qt-apps/fotowall_0.9.bb
@@ -0,0 +1,31 @@
1SUMMARY = "Creative photo display application"
2DESCRIPTION = "Fotowall is a creative tool that allows you to layout your photos or pictures \
3in a personal way. You can add pictures, then resize, move, change colors, text, shadows, etc.."
4
5HOMEPAGE = "http://www.enricoros.com/opensource/fotowall"
6LICENSE = "GPLv2+"
7LIC_FILES_CHKSUM = "file://GPL_V2;md5=79808397c3355f163c012616125c9e26 \
8 file://main.cpp;beginline=6;endline=11;md5=b569acc2bf8974a3082b58fc53b9d8dc"
9SECTION = "x11/apps"
10
11PR = "r4"
12
13SRC_URI = "http://qt-apps.org/CONTENT/content-files/71316-Fotowall-0.9.tar.bz2 \
14 file://ExportWizard-depends-on-ui_wizard.patch \
15 "
16
17SRC_URI[md5sum] = "142ef697332e0777c6d22c5bc96cc438"
18SRC_URI[sha256sum] = "e4d0c005d2cb1d7c09438bfc3098eadebc08946e4fbc0655b7fc8b046de3810d"
19
20S = "${WORKDIR}/Fotowall-${PV}"
21
22inherit qt4x11
23
24EXTRA_QMAKEVARS_PRE = "CONFIG+=no-webcam"
25
26do_install() {
27 oe_runmake INSTALL_ROOT=${D} install
28}
29
30# Ensure we have some plugins for some useful image formats
31RRECOMMENDS_${PN} += "qt4-plugin-imageformat-gif qt4-plugin-imageformat-jpeg qt4-plugin-imageformat-tiff"
diff --git a/meta/recipes-qt/qt-apps/qmmp/no-host-paths.patch b/meta/recipes-qt/qt-apps/qmmp/no-host-paths.patch
new file mode 100644
index 0000000000..2bb5bb11cc
--- /dev/null
+++ b/meta/recipes-qt/qt-apps/qmmp/no-host-paths.patch
@@ -0,0 +1,26 @@
1Do not include /usr/include host paths
2
3These were added upstream apparently for freebsd support, but trigger
4compiler warnings during the build and could be dangerous, so remove
5them.
6
7Upstream-Status: Inappropriate [cross]
8
9Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
10
11Update patch for version 0.7.4.
12
13Signed-off-by: Kai Kang <kai.kang@windriver.com>
14
15--- qmmp-0.7.4/CMakeLists.txt 2014-01-10 09:59:44.971837746 +0800
16+++ qmmp-0.7.4/CMakeLists.txt.new 2014-01-10 10:24:51.855837566 +0800
17@@ -1,9 +1,5 @@
18 cmake_minimum_required(VERSION 2.6.0)
19
20-#freebsd support
21-include_directories(SYSTEM /usr/local/include)
22-SET(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} /usr/local/include)
23-
24 #extract version from qmmp.h
25 FILE(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/src/qmmp/qmmp.h"
26 QMMP_VERSION_DATA REGEX "^#define[ \t]+QMMP_VERSION_[A-Z]+[ \t]+[0-9]+.*$")
diff --git a/meta/recipes-qt/qt-apps/qmmp_0.7.7.bb b/meta/recipes-qt/qt-apps/qmmp_0.7.7.bb
new file mode 100644
index 0000000000..9725b42f66
--- /dev/null
+++ b/meta/recipes-qt/qt-apps/qmmp_0.7.7.bb
@@ -0,0 +1,77 @@
1SUMMARY = "Qt-based Multimedia Player"
2DESCRIPTION = "Qmmp is an audio player, written with the help of the Qt library. The user interface is similar to Winamp or XMMS."
3HOMEPAGE = "http://qmmp.ylsoftware.com"
4LICENSE = "GPLv2"
5LICENSE_FLAGS = "commercial"
6LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
7SECTION = "multimedia"
8
9DEPENDS = "taglib libmad libvorbis libogg alsa-lib libsndfile1 libsamplerate0 curl"
10
11SRC_URI = "http://qmmp.ylsoftware.com/files/${BPN}-${PV}.tar.bz2 \
12 file://no-host-paths.patch \
13 "
14
15SRC_URI[md5sum] = "9376b5d535ed540e97bdff79b42607ae"
16SRC_URI[sha256sum] = "dda66bf60121a8a2cb7175b16b3b948099f8c119ee9a11c671555e8c38caa387"
17
18inherit cmake qt4x11
19
20QMMP_PLUGIN_OPTIONS ??= "\
21 -DUSE_MMS:BOOL=FALSE \
22 -DUSE_MPC:BOOL=FALSE \
23 -DUSE_MODPLUG:BOOL=FALSE \
24 -DUSE_WAVPACK:BOOL=FALSE \
25 -DUSE_FFMPEG:BOOL=FALSE \
26 -DUSE_AAC:BOOL=FALSE \
27 -DUSE_CDA:BOOL=FALSE \
28 -DUSE_MIDI:BOOL=FALSE \
29 -DUSE_GME:BOOL=FALSE \
30 -DUSE_OSS4:BOOL=FALSE \
31 -DUSE_JACK:BOOL=FALSE \
32 -DUSE_BS2B:BOOL=FALSE \
33 -DUSE_PROJECTM:BOOL=FALSE \
34 -DUSE_ENCA:BOOL=FALSE \
35 "
36
37export EXTRA_OECMAKE = "-DQT_QMAKE_EXECUTABLE=${OE_QMAKE_QMAKE} \
38 -DQT_LRELEASE_EXECUTABLE=${OE_QMAKE_LRELEASE} \
39 -DQT_MOC_EXECUTABLE=${OE_QMAKE_MOC} \
40 -DQT_UIC_EXECUTABLE=${OE_QMAKE_UIC} \
41 -DQT_RCC_EXECUTABLE=${OE_QMAKE_RCC} \
42 -DQT_LIBRARY_DIR=${OE_QMAKE_LIBDIR_QT} \
43 -DQT_HEADERS_DIR=${OE_QMAKE_INCDIR_QT} \
44 -DQT_QTCORE_INCLUDE_DIR=${OE_QMAKE_INCDIR_QT}/QtCore \
45 ${QMMP_PLUGIN_OPTIONS} \
46 "
47
48do_configure() {
49 # Ensure we get the cmake configure and not qmake
50 cmake_do_configure
51}
52
53PACKAGES_DYNAMIC += "^qmmp-plugin-.* "
54
55python populate_packages_prepend () {
56 qmmp_libdir = d.expand('${libdir}/qmmp')
57 gd = d.expand('${D}/${libdir}/qmmp')
58 plug_dirs = os.listdir(gd)
59
60 for plug_dir in plug_dirs:
61 g_plug_dir = os.path.join(qmmp_libdir,plug_dir)
62 do_split_packages(d, g_plug_dir, '^lib(.*)\.so$', 'qmmp-plugin-' + plug_dir.lower() + '-%s', 'Qmmp ' + plug_dir + ' plugin for %s')
63}
64
65FILES_${PN} = "\
66 ${bindir}/qmmp \
67 ${libdir}/lib*${SOLIBS} \
68 ${datadir}/icons/* \
69 ${datadir}/qmmp/images/* \
70 ${datadir}/applications/* \
71 "
72
73FILES_${PN}-dbg += "\
74 ${libdir}/qmmp/*/.debug/* \
75 "
76
77RDEPENDS_${PN} += "taglib alsa-lib libmad curl"
diff --git a/meta/recipes-qt/qt-apps/quicky_0.4.bb b/meta/recipes-qt/qt-apps/quicky_0.4.bb
new file mode 100644
index 0000000000..bcaa562dbe
--- /dev/null
+++ b/meta/recipes-qt/qt-apps/quicky_0.4.bb
@@ -0,0 +1,19 @@
1SUMMARY = "A simple note-taking application with Wiki-style syntax and behaviour"
2HOMEPAGE = "http://qt-apps.org/content/show.php/Quicky?content=80325"
3LICENSE = "GPLv2+"
4LIC_FILES_CHKSUM = "file://version.h;endline=19;md5=878bdaff438dab86298301fd1a210e14"
5SECTION = "x11/apps"
6
7PR = "r2"
8
9SRC_URI = "http://qt-apps.org/CONTENT/content-files/80325-quicky-0.4.tar.gz"
10
11SRC_URI[md5sum] = "824d9e477ee9c4994f73a3cb215161d9"
12SRC_URI[sha256sum] = "9c66376e0035d44547612bf629890769a6178c3e7eafbcf95f1c6207ac0f352a"
13
14inherit qt4x11
15
16do_install() {
17 install -d ${D}${bindir}
18 install -m 0755 ${S}/${BPN} ${D}${bindir}
19}
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 0000000000..21f0273e2a
--- /dev/null
+++ b/meta/recipes-qt/qt-demo/qt-demo-init/qtdemo-init
@@ -0,0 +1,55 @@
1#!/bin/sh
2
3set -e
4
5if [ -x /usr/bin/qtdemo ]; then
6 QTDEMO="qtdemo"
7else
8 QTDEMO="qtdemoE -qws"
9fi
10
11case "$1" in
12 start)
13 echo "Starting qtdemo"
14 if [ -f /etc/profile.d/tslib.sh ]; then
15 . /etc/profile.d/tslib.sh
16 fi
17 if [ -e "$TSLIB_TSDEVICE" ]; then
18 if [ ! -f /etc/pointercal ]; then
19 /usr/bin/ts_calibrate
20 fi
21 if [ "$QTDEMO" = "qtdemo" ]; then
22 Xorg &
23 export DISPLAY=:0
24 $QTDEMO &
25 else
26 QWS_MOUSE_PROTO=tslib:$TSLIB_TSDEVICE $QTDEMO &
27 fi
28 else
29 if [ "$QTDEMO" = "qtdemo" ]; then
30 Xorg &
31 export DISPLAY=:0
32 fi
33 $QTDEMO &
34 fi
35 ;;
36 stop)
37 echo "Stopping qtdemo"
38 if [ "$QTDEMO" = "qtdemo" ]; then
39 killall Xorg
40 killall qtdemo
41 else
42 killall qtdemoE
43 fi
44 ;;
45 restart)
46 $0 stop
47 $0 start
48 ;;
49 *)
50 echo "usage: $0 { start | stop | restart }" >&2
51 exit 1
52 ;;
53esac
54
55exit 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 0000000000..fff3620b09
--- /dev/null
+++ b/meta/recipes-qt/qt-demo/qt-demo-init_0.1.bb
@@ -0,0 +1,17 @@
1SUMMARY = "Init script for qtdemo"
2LICENSE = "MIT"
3SRC_URI = "file://qtdemo-init"
4PR = "r3"
5
6LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690 \
7 file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
8
9do_install() {
10 install -d ${D}${sysconfdir}/init.d/
11 install -m 0755 ${WORKDIR}/qtdemo-init ${D}${sysconfdir}/init.d/qtdemo
12}
13
14inherit update-rc.d allarch
15
16INITSCRIPT_NAME = "qtdemo"
17INITSCRIPT_PARAMS = "start 99 5 2 . stop 19 0 1 6 ."
diff --git a/meta/recipes-qt/qt4-graphics-system/qt4-graphics-system_1.0.bb b/meta/recipes-qt/qt4-graphics-system/qt4-graphics-system_1.0.bb
new file mode 100644
index 0000000000..ff3f3da2bd
--- /dev/null
+++ b/meta/recipes-qt/qt4-graphics-system/qt4-graphics-system_1.0.bb
@@ -0,0 +1,25 @@
1SUMMARY = "Sets default Qt4 Graphics System to ${QT_GRAPHICS_SYSTEM}"
2SECTION = "x11/base"
3LICENSE = "MIT-X"
4LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
5
6PR = "r1"
7
8QT_GRAPHICS_SYSTEM ?= "raster"
9
10def _get_extra_rdepends(d):
11 gs = d.getVar('QT_GRAPHICS_SYSTEM', True)
12 if gs == "opengl":
13 return "qt4-plugin-graphicssystems-glgraphicssystem"
14
15 return ""
16
17do_install () {
18 install -d ${D}/${sysconfdir}/profile.d/
19 cfg_file=${D}/${sysconfdir}/profile.d/qt-graphicssystem
20 echo "export QT_GRAPHICSSYSTEM=${QT_GRAPHICS_SYSTEM}" > $cfg_file
21}
22
23RDEPENDS_${PN} = "${@_get_extra_rdepends(d)}"
24
25PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta/recipes-qt/qt4/nativesdk-qt4-tools.inc b/meta/recipes-qt/qt4/nativesdk-qt4-tools.inc
new file mode 100644
index 0000000000..1c9ee2e6ea
--- /dev/null
+++ b/meta/recipes-qt/qt4/nativesdk-qt4-tools.inc
@@ -0,0 +1,127 @@
1SUMMARY = "SDK tools for Qt version 4.x"
2DEPENDS = "nativesdk-zlib nativesdk-dbus nativesdk-libx11 qt4-native"
3SECTION = "libs"
4HOMEPAGE = "http://qt-project.org/"
5LICENSE = "LGPLv2.1 | GPLv3"
6
7INC_PR = "r13"
8
9FILESEXTRAPATHS =. "${FILE_DIRNAME}/qt4-${PV}:"
10
11inherit nativesdk qmake2
12
13SRC_URI = "http://download.qt-project.org/official_releases/qt/4.8/${PV}/qt-everywhere-opensource-src-${PV}.tar.gz \
14 file://0001-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
15 file://0004-configure-qmake-is-already-built-in-qt4-tools-native.patch \
16 file://0005-configure-set-LFLAGS-to-pick-up-zlib-from-staging.patch \
17 file://0006-configure-Use-OE_QMAKE_-values-to-specify-Qt-utility.patch \
18 file://0007-dbus-Remove-const-usage-that-causes-compile-failure-.patch \
19 file://0008-qmake.pro-Allow-building-a-separate-qmake-for-the-ta.patch \
20 file://g++.conf \
21 file://linux.conf"
22
23S = "${WORKDIR}/qt-everywhere-opensource-src-${PV}"
24
25LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=fbc093901857fcd118f065f900982c24 \
26 file://LICENSE.GPL3;md5=6e1694ee338db410417517884918d4d2 \
27 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6"
28
29require qt4_arch.inc
30
31# FIXME: make it work with "${STAGING_BINDIR_NATIVE}/pkg-config --cflags dbus-1"
32EXTRA_OECONF = "-prefix ${prefix} \
33 -qt-libjpeg -system-zlib \
34 -no-libjpeg -no-libpng -no-libmng -no-libtiff \
35 -no-accessibility \
36 -no-cups \
37 -no-exceptions \
38 -no-nas-sound \
39 -no-nis -no-openssl \
40 -verbose -release -fast -static \
41 -platform ${TARGET_OS}-oe-g++ \
42 -xplatform ${TARGET_OS}-oe-g++ \
43 -arch ${QT_ARCH} \
44 -embedded -no-freetype -no-glib -no-iconv \
45 -qt3support \
46 -I${STAGING_DIR_HOST}${SDKPATHNATIVE}/usr/include/dbus-1.0 \
47 -I${STAGING_DIR_HOST}${SDKPATHNATIVE}/usr/lib/dbus-1.0/include"
48
49# yank default -e, otherwise we get the following error:
50# moc_qbuffer.cpp: No such file or directory
51EXTRA_OEMAKE = " "
52
53do_configure() {
54 # Avoid problems with Qt 4.8.0 configure setting QMAKE_LINK from LD (since we want the linker to be g++)
55 unset LD
56
57 if [ ! -e mkspecs/${TARGET_OS}-oe-g++ ]; then
58 ln -sf linux-g++ mkspecs/${TARGET_OS}-oe-g++
59 fi
60
61 cp ../g++.conf mkspecs/common
62 cp ../linux.conf mkspecs/common
63
64 if [ -f mkspecs/common/g++-base.conf ] ; then
65 # don't use host g++ even during configure (4.8.0+)
66 sed -i -e "s#= g++#= ${CXX}#" mkspecs/common/g++-base.conf
67 sed -i -e "s#= gcc#= ${CC}#" mkspecs/common/g++-base.conf
68 fi
69
70 # Use qmake from qt4-native for building
71 if [ ! -e bin/qmake ]; then
72 ln -sf ${STAGING_BINDIR_NATIVE}/qmake2 bin/qmake
73 fi
74 set_arch
75 (echo o; echo yes) | CC="${CC}" CXX="${CXX}" ./configure ${EXTRA_OECONF} || die "Configuring qt failed. EXTRA_OECONF was ${EXTRA_OECONF}"
76}
77
78TOBUILD = "\
79 src/tools/bootstrap \
80 src/tools/moc \
81 src/corelib \
82 src/sql \
83 src/dbus \
84 src/qt3support \
85 src/xml \
86 src/tools/uic \
87 src/tools/rcc \
88 src/network \
89 src/gui \
90 src/tools/uic3 \
91 tools/linguist/lrelease \
92 tools/linguist/lupdate \
93 tools/qdbus \
94"
95
96do_compile() {
97 for i in ${TOBUILD}; do
98 cd ${S}/$i && oe_runmake CC="${CC}" CXX="${CXX}"
99 done
100
101 # Build nativesdk qmake
102 export QMAKESPEC="${S}/mkspecs/${TARGET_OS}-oe-g++"
103 cd ${S}/qmake
104 ${OE_QMAKE_QMAKE}
105 oe_runmake CC="${CC}" CXX="${CXX}"
106 cd ${S}
107}
108
109do_install() {
110 install -d ${D}${bindir}
111 install -m 0755 bin/qmake2 ${D}${bindir}/qmake2
112 for i in moc uic uic3 rcc lrelease lupdate qdbuscpp2xml qdbusxml2cpp; do
113 install -m 0755 bin/${i} ${D}${bindir}/${i}4
114 done
115
116 (cd ${D}${bindir}; \
117 ln -s qmake2 qmake; \
118 for i in moc uic uic3 rcc lrelease lupdate qdbuscpp2xml qdbusxml2cpp; do \
119 ln -s ${i}4 ${i}; \
120 done)
121
122 install -d ${D}${sysconfdir}
123 cat >${D}${sysconfdir}/qt.conf <<EOF
124[Paths]
125Prefix = ${prefix}
126EOF
127}
diff --git a/meta/recipes-qt/qt4/nativesdk-qt4-tools_4.8.6.bb b/meta/recipes-qt/qt4/nativesdk-qt4-tools_4.8.6.bb
new file mode 100644
index 0000000000..00526b891d
--- /dev/null
+++ b/meta/recipes-qt/qt4/nativesdk-qt4-tools_4.8.6.bb
@@ -0,0 +1,6 @@
1require nativesdk-qt4-tools.inc
2
3SRC_URI += "file://0009-qmake-fix-source-file-references-in-qmake.pri.patch"
4
5SRC_URI[md5sum] = "2edbe4d6c2eff33ef91732602f3518eb"
6SRC_URI[sha256sum] = "8b14dd91b52862e09b8e6a963507b74bc2580787d171feda197badfa7034032c"
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6.inc b/meta/recipes-qt/qt4/qt4-4.8.6.inc
new file mode 100644
index 0000000000..0cb7f80928
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6.inc
@@ -0,0 +1,74 @@
1LICENSE = "LGPLv2.1 | GPLv3"
2LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=fbc093901857fcd118f065f900982c24 \
3 file://LICENSE.GPL3;md5=6e1694ee338db410417517884918d4d2 \
4 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6"
5
6FILESEXTRAPATHS =. "${FILE_DIRNAME}/qt4-${PV}:"
7
8SRC_URI = "http://download.qt-project.org/official_releases/qt/4.8/${PV}/qt-everywhere-opensource-src-${PV}.tar.gz \
9 file://0003-webkit2-set-OUTPUT_DIR-value-if-empty.patch \
10 file://0004-configure-qmake-is-already-built-in-qt4-tools-native.patch \
11 file://0008-qmake.pro-Allow-building-a-separate-qmake-for-the-ta.patch \
12 file://0009-qmake-fix-source-file-references-in-qmake.pri.patch \
13 file://0010-configure-Hack-to-not-use-the-pg_config-of-the-host-.patch \
14 file://0011-freetype-host-includes.patch \
15 file://0012-Add-2bpp-support.patch \
16 file://0013-configure-add-crossarch-option.patch \
17 file://0014-translations-fix-phony-translation-linking-error.patch \
18 file://0015-configure-add-nostrip-for-debug-packages.patch \
19 file://0016-configure-eval-QMAKE_CXX.patch \
20 file://0017-configure-ensure-we-identify-the-compiler-as-g-in-co.patch \
21 file://0018-configure-make-pulseaudio-a-configurable-option.patch \
22 file://0019-Fixes-for-gcc-4.7.0-particularly-on-qemux86.patch \
23 file://0027-tools.pro-disable-qmeegographicssystemhelper.patch \
24 file://0028-Don-t-crash-on-broken-GIF-images.patch \
25 file://0029-aarch64_arm64_fix_arch_detection.patch \
26 file://0030-aarch64_arm64_qatomic_support.patch \
27 file://0031-aarch64_arm64_mkspecs.patch \
28 file://0032-aarch64_add_header.patch \
29 file://0034-Fix-a-division-by-zero-when-processing-malformed-BMP.patch \
30 file://Fix-QWSLock-invalid-argument-logs.patch \
31 file://add_check_for_aarch64_32.patch \
32 file://g++.conf \
33 file://linux.conf \
34 "
35
36SRC_URI[md5sum] = "2edbe4d6c2eff33ef91732602f3518eb"
37SRC_URI[sha256sum] = "8b14dd91b52862e09b8e6a963507b74bc2580787d171feda197badfa7034032c"
38
39S = "${WORKDIR}/qt-everywhere-opensource-src-${PV}"
40
41# disable webkit for mips64 n32 temporarily that fails to compile,
42# qt upstream defect:
43# https://bugreports.qt-project.org/browse/QTBUG-39224
44QT_CONFIG_FLAGS_append_mips64n32 = " -no-webkit"
45
46# disable webkit for aarch64 temporarily that fails to compile
47QT_CONFIG_FLAGS_append_aarch64 = " -no-webkit"
48
49FILES_${QT_BASE_NAME}-tools_append = " ${bindir}/qml ${bindir}/qmlplugindump"
50FILES_${QT_BASE_NAME}-tools-dbg_append = " ${bindir}/.debug/qml ${bindir}/.debug/qmlplugindump"
51
52PACKAGES_append = " ${QT_BASE_NAME}-tests-dbg ${QT_BASE_NAME}-tests"
53FILES_${QT_BASE_NAME}-tests-dbg = "${prefix}/tests/qt4/*/.debug"
54FILES_${QT_BASE_NAME}-tests = "${prefix}/tests/qt4/*"
55
56do_configure_prepend() {
57 for pro in $(find ${S} -name "*.pro") ; do
58 sed -i \
59 -e 's:$$QT_BUILD_TREE/bin/lrelease:${OE_QMAKE_LRELEASE}:g' \
60 -e 's:qtPrepareTool(LRELEASE, lrelease):LRELEASE = ${OE_QMAKE_LRELEASE}:g' $pro
61 done
62
63 sed -i s:SEDME:${S}: ${WORKDIR}/linux.conf
64 sed -i \
65 -e /QMAKE_MOC\ /d \
66 -e /QMAKE_UIC\ /d \
67 -e /QMAKE_UIC3\ /d \
68 -e /QMAKE_RCC\ /d \
69 ${S}/configure
70
71 # Avoid problems with Qt 4.8.0 configure setting QMAKE_LINK from LD (since we want the linker to be g++)
72 unset LD
73}
74
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0001-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0001-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
new file mode 100644
index 0000000000..d8b0a09d17
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0001-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch
@@ -0,0 +1,43 @@
1From 55097d27e8b746b3d5ff437939caf1fa43c0d62b Mon Sep 17 00:00:00 2001
2From: Holger Freyther <zecke@selfish.org>
3Date: Wed, 26 Sep 2012 17:22:30 +0200
4Subject: [PATCH 01/21] qlibraryinfo: allow to set qt.conf from the outside
5 using the environment
6
7Allow to set a qt.conf from the outside using the environment. This allows
8to inject new prefixes and other paths into qmake. This is needed when using
9the same qmake binary to build qt/x11 and qt/embedded
10
11Upstream-Status: Pending
12
13Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
14---
15 src/corelib/global/qlibraryinfo.cpp | 5 +++++
16 1 file changed, 5 insertions(+)
17
18diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
19index 180dc39..4adad35 100644
20--- a/src/corelib/global/qlibraryinfo.cpp
21+++ b/src/corelib/global/qlibraryinfo.cpp
22@@ -54,6 +54,7 @@
23 QT_BEGIN_NAMESPACE
24 extern QString qmake_libraryInfoFile();
25 QT_END_NAMESPACE
26+#include <stdlib.h>
27 #else
28 # include "qcoreapplication.h"
29 #endif
30@@ -112,6 +113,10 @@ QSettings *QLibraryInfoPrivate::findConfiguration()
31 #ifdef BOOTSTRAPPING
32 if(!QFile::exists(qtconfig))
33 qtconfig = qmake_libraryInfoFile();
34+ if (!QFile::exists(qtconfig)) {
35+ QByteArray config = getenv("QT_CONF_PATH");
36+ qtconfig = QFile::decodeName(config);
37+ }
38 #else
39 if (!QFile::exists(qtconfig) && QCoreApplication::instance()) {
40 #ifdef Q_OS_MAC
41--
421.8.0
43
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0002-qkbdtty_qws-fix-build-with-old-kernel-headers.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0002-qkbdtty_qws-fix-build-with-old-kernel-headers.patch
new file mode 100644
index 0000000000..98fc88738f
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0002-qkbdtty_qws-fix-build-with-old-kernel-headers.patch
@@ -0,0 +1,50 @@
1From 5e6b1051afa3099a02a758b0596236759d70670e Mon Sep 17 00:00:00 2001
2From: Wenzong Fan <wenzong.fan@windriver.com>
3Date: Wed, 26 Sep 2012 20:18:08 +0200
4Subject: [PATCH 02/21] qkbdtty_qws: fix build with old kernel headers
5
6This issue is that with C++ compiler process an old version of kernel
7header file, coincidently that file has a variable named 'new':
8
9* 'embedded/qkbdtty_qws.cpp' include 'linux/vt.h';
10* '/usr/include/linux/vt.h' has below code on SLED-11.x:
11 + unsigned int new;
12
13On mostly hosts it has been changed to: new -> newev.
14
15Upstream-Status: Pending
16
17Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
18Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
19---
20 src/gui/embedded/qkbdtty_qws.cpp | 12 ++++++++++++
21 1 file changed, 12 insertions(+)
22
23diff --git a/src/gui/embedded/qkbdtty_qws.cpp b/src/gui/embedded/qkbdtty_qws.cpp
24index a46811b..762138f 100644
25--- a/src/gui/embedded/qkbdtty_qws.cpp
26+++ b/src/gui/embedded/qkbdtty_qws.cpp
27@@ -54,8 +54,20 @@
28
29 #if defined Q_OS_LINUX
30 # include <linux/kd.h>
31+
32+/* Workaround kernel headers using "new" as variable name. The problem
33+ is specific to SLED-11, other distros use "newev" rather than "new" */
34+#ifdef __cplusplus
35+#warning "workaround kernel headers using new as variable name on SLED 11"
36+#define new newev
37+#endif
38+
39 # include <linux/vt.h> //TODO: move vt handling somewhere else (QLinuxFbScreen?)
40
41+#ifdef __cplusplus
42+#undef new
43+#endif
44+
45 # include "qscreen_qws.h"
46 # include "qwindowsystem_qws.h"
47 # include "qapplication.h"
48--
491.8.0
50
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0003-webkit2-set-OUTPUT_DIR-value-if-empty.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0003-webkit2-set-OUTPUT_DIR-value-if-empty.patch
new file mode 100644
index 0000000000..ecaea51e08
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0003-webkit2-set-OUTPUT_DIR-value-if-empty.patch
@@ -0,0 +1,34 @@
1From b6805e883c078f7647d9234aca4e3513ebd1c9bf Mon Sep 17 00:00:00 2001
2From: Martin Jansa <Martin.Jansa@gmail.com>
3Date: Tue, 1 May 2012 07:48:15 +0200
4Subject: [PATCH 03/21] webkit2: set OUTPUT_DIR value if empty
5
6Without this do_configure was trying to create /include/WebCore/libdummy.prl in root of build host filesystem
7now it's in proper place ${WORKDIR}/qt-everywhere-opensource-src-4.8.1/src/3rdparty/webkit/include/WebCore/libdummy.prl
8
9First reported here:
10http://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg24436.html
11
12Upstream-Status: Pending
13
14Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
15---
16 src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro | 2 ++
17 1 file changed, 2 insertions(+)
18
19diff --git a/src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro b/src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro
20index 006a88c..5e17193 100644
21--- a/src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro
22+++ b/src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro
23@@ -3,6 +3,8 @@ TARGET = dummy
24
25 CONFIG -= debug_and_release
26
27+isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../..
28+
29 CONFIG(standalone_package) {
30 isEmpty(WEBKIT2_GENERATED_SOURCES_DIR):WEBKIT2_GENERATED_SOURCES_DIR = $$PWD/generated
31 isEmpty(WC_GENERATED_SOURCES_DIR):WC_GENERATED_SOURCES_DIR = $$PWD/../WebCore/generated
32--
331.8.0
34
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0004-configure-qmake-is-already-built-in-qt4-tools-native.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0004-configure-qmake-is-already-built-in-qt4-tools-native.patch
new file mode 100644
index 0000000000..1eb8a5843a
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0004-configure-qmake-is-already-built-in-qt4-tools-native.patch
@@ -0,0 +1,29 @@
1From af699c6e8cf9fb28d6f8b789bf33d53b47edaec7 Mon Sep 17 00:00:00 2001
2From: Michael Krelin <hacker@klever.net>
3Date: Wed, 26 Sep 2012 20:24:20 +0200
4Subject: [PATCH 04/21] configure: qmake is already built in qt4-tools-native,
5 so disable it
6
7Upstream-Status: Inappropriate [configuration]
8
9Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
10---
11 configure | 2 +-
12 1 file changed, 1 insertion(+), 1 deletion(-)
13
14diff --git a/configure b/configure
15index e3d464b..cc04b27 100755
16--- a/configure
17+++ b/configure
18@@ -4899,7 +4899,7 @@ setBootstrapVariable()
19 }
20
21 # build qmake
22-if true; then ###[ '!' -f "$outpath/bin/qmake" ];
23+if false; then ###[ '!' -f "$outpath/bin/qmake" ];
24 echo "Creating qmake. Please wait..."
25
26 OLD_QCONFIG_H=
27--
281.8.0
29
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0005-configure-set-LFLAGS-to-pick-up-zlib-from-staging.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0005-configure-set-LFLAGS-to-pick-up-zlib-from-staging.patch
new file mode 100644
index 0000000000..1a8f2b7f94
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0005-configure-set-LFLAGS-to-pick-up-zlib-from-staging.patch
@@ -0,0 +1,28 @@
1From ac93237bc90ea7773c0ef5275962baba01d4a9c7 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Jeremy=20Lain=C3=A9?= <jeremy.laine@m4x.org>
3Date: Wed, 26 Sep 2012 20:27:44 +0200
4Subject: [PATCH 05/21] configure: set LFLAGS to pick up zlib from staging
5
6Upstream-Status: Pending
7
8Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
9---
10 configure | 2 +-
11 1 file changed, 1 insertion(+), 1 deletion(-)
12
13diff --git a/configure b/configure
14index cc04b27..5a7c4ee 100755
15--- a/configure
16+++ b/configure
17@@ -690,7 +690,7 @@ fi
18 # initalize variables
19 #-------------------------------------------------------------------------------
20
21-SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
22+SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS LFLAGS"
23 for varname in $SYSTEM_VARIABLES; do
24 qmakevarname="${varname}"
25 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
26--
271.8.0
28
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0006-configure-Use-OE_QMAKE_-values-to-specify-Qt-utility.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0006-configure-Use-OE_QMAKE_-values-to-specify-Qt-utility.patch
new file mode 100644
index 0000000000..90ebf75095
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0006-configure-Use-OE_QMAKE_-values-to-specify-Qt-utility.patch
@@ -0,0 +1,38 @@
1From 0bc0db83812b5900dc4e6ffa96bdeab46b6adcae Mon Sep 17 00:00:00 2001
2From: Paul Eggleton <paul.eggleton@linux.intel.com>
3Date: Wed, 26 Sep 2012 20:29:09 +0200
4Subject: [PATCH 06/21] configure: Use OE_QMAKE_* values to specify Qt utility
5 paths
6
7Upstream-Status: Inappropriate [configuration]
8
9Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
10Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
11---
12 configure | 10 +++++-----
13 1 file changed, 5 insertions(+), 5 deletions(-)
14
15diff --git a/configure b/configure
16index 5a7c4ee..db4d044 100755
17--- a/configure
18+++ b/configure
19@@ -8683,11 +8683,11 @@ QMAKE_ABSOLUTE_SOURCE_ROOT = \$\$QT_SOURCE_TREE
20 QMAKE_MOC_SRC = \$\$QT_BUILD_TREE/src/moc
21
22 #local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
23-QMAKE_MOC = \$\$QT_BUILD_TREE/bin/moc
24-QMAKE_UIC = \$\$QT_BUILD_TREE/bin/uic
25-QMAKE_UIC3 = \$\$QT_BUILD_TREE/bin/uic3
26-QMAKE_RCC = \$\$QT_BUILD_TREE/bin/rcc
27-QMAKE_QDBUSXML2CPP = \$\$QT_BUILD_TREE/bin/qdbusxml2cpp
28+QMAKE_MOC = \${OE_QMAKE_MOC}
29+QMAKE_UIC = \${OE_QMAKE_UIC}
30+QMAKE_UIC3 = \${OE_QMAKE_UIC3}
31+QMAKE_RCC = \${OE_QMAKE_RCC}
32+QMAKE_QDBUSXML2CPP = \${OE_QMAKE_QDBUSXML2CPP}
33 QMAKE_INCDIR_QT = \$\$QT_BUILD_TREE/include
34 QMAKE_LIBDIR_QT = \$\$QT_BUILD_TREE/lib
35
36--
371.8.0
38
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0007-dbus-Remove-const-usage-that-causes-compile-failure-.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0007-dbus-Remove-const-usage-that-causes-compile-failure-.patch
new file mode 100644
index 0000000000..1d23c929f4
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0007-dbus-Remove-const-usage-that-causes-compile-failure-.patch
@@ -0,0 +1,34 @@
1From 2011bb8029480af1d1266f258e5a5f5cef7392d3 Mon Sep 17 00:00:00 2001
2From: Pavel Heimlich <tropikhajma@gmail.com>
3Date: Wed, 26 Sep 2012 20:31:10 +0200
4Subject: [PATCH 07/21] dbus: Remove "const" usage that causes compile failure
5 building nativesdk-qt4-tools
6
7Patch has apparently been rejected upstream, not because it is invalid
8but because the submitter did not submit a merge request for it, so the
9validity of the patch upstream is uncertain. For further details see:
10https://bugreports.qt-project.org/browse/QTBUG-17962
11
12Upstream-Status: Denied [possible retry]
13
14Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
15---
16 src/dbus/qdbusintegrator.cpp | 2 +-
17 1 file changed, 1 insertion(+), 1 deletion(-)
18
19diff --git a/src/dbus/qdbusintegrator.cpp b/src/dbus/qdbusintegrator.cpp
20index 0f0b647..aa4cbab 100644
21--- a/src/dbus/qdbusintegrator.cpp
22+++ b/src/dbus/qdbusintegrator.cpp
23@@ -73,7 +73,7 @@ QT_BEGIN_NAMESPACE
24 static bool isDebugging;
25 #define qDBusDebug if (!::isDebugging); else qDebug
26
27-Q_GLOBAL_STATIC_WITH_ARGS(const QString, orgFreedesktopDBusString, (QLatin1String(DBUS_SERVICE_DBUS)))
28+Q_GLOBAL_STATIC_WITH_ARGS(QString, orgFreedesktopDBusString, (QLatin1String(DBUS_SERVICE_DBUS)))
29
30 static inline QString dbusServiceString()
31 { return *orgFreedesktopDBusString(); }
32--
331.8.0
34
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0008-qmake.pro-Allow-building-a-separate-qmake-for-the-ta.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0008-qmake.pro-Allow-building-a-separate-qmake-for-the-ta.patch
new file mode 100644
index 0000000000..ec07f41403
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0008-qmake.pro-Allow-building-a-separate-qmake-for-the-ta.patch
@@ -0,0 +1,29 @@
1From 64ce5d0e7c19436b928a2a0d9d192f56be3c9bb2 Mon Sep 17 00:00:00 2001
2From: Paul Eggleton <paul.eggleton@linux.intel.com>
3Date: Wed, 26 Sep 2012 20:32:41 +0200
4Subject: [PATCH 08/21] qmake.pro: Allow building a separate qmake for the
5 target
6
7Upstream-Status: Inappropriate [config]
8
9Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
10Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
11---
12 qmake/qmake.pro | 1 +
13 1 file changed, 1 insertion(+)
14
15diff --git a/qmake/qmake.pro b/qmake/qmake.pro
16index 38e0fce..53b1ffb 100644
17--- a/qmake/qmake.pro
18+++ b/qmake/qmake.pro
19@@ -7,6 +7,7 @@ CONFIG += console bootstrap
20 CONFIG -= qt shared app_bundle uic
21 DEFINES += QT_BUILD_QMAKE QT_BOOTSTRAPPED
22 DESTDIR = ../bin/
23+TARGET = qmake2
24
25 OBJECTS_DIR = .
26 MOC_DIR = .
27--
281.8.0
29
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0009-qmake-fix-source-file-references-in-qmake.pri.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0009-qmake-fix-source-file-references-in-qmake.pri.patch
new file mode 100644
index 0000000000..45b8c10fbe
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0009-qmake-fix-source-file-references-in-qmake.pri.patch
@@ -0,0 +1,52 @@
1From e129dc0d6cde69dd15d1836c4111e0526fc29161 Mon Sep 17 00:00:00 2001
2From: Paul Eggleton <paul.eggleton@linux.intel.com>
3Date: Wed, 26 Sep 2012 20:33:49 +0200
4Subject: [PATCH 09/21] qmake: fix source file references in qmake.pri
5
6Fix duplicate entries in SOURCES and HEADERS, and fix the source file
7list for the split of qlocale.cpp.
8
9Upstream-Status: Pending
10
11Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
12Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
13---
14 qmake/qmake.pri | 8 ++++----
15 1 file changed, 4 insertions(+), 4 deletions(-)
16
17diff --git a/qmake/qmake.pri b/qmake/qmake.pri
18index 31f67f4..9081669 100644
19--- a/qmake/qmake.pri
20+++ b/qmake/qmake.pri
21@@ -22,8 +22,7 @@ SOURCES += project.cpp property.cpp main.cpp generators/makefile.cpp \
22 generators/symbian/initprojectdeploy_symbian.cpp \
23 generators/integrity/gbuild.cpp \
24 windows/registry.cpp \
25- symbian/epocroot.cpp \
26- generators/integrity/gbuild.cpp
27+ symbian/epocroot.cpp
28
29 HEADERS += project.h property.h generators/makefile.h \
30 generators/unix/unixmake.h meta.h option.h cachekeys.h \
31@@ -40,8 +39,7 @@ HEADERS += project.h property.h generators/makefile.h \
32 generators/symbian/initprojectdeploy_symbian.h \
33 generators/integrity/gbuild.h \
34 windows/registry_p.h \
35- symbian/epocroot_p.h \
36- generators/integrity/gbuild.h
37+ symbian/epocroot_p.h
38
39 contains(QT_EDITION, OpenSource) {
40 DEFINES += QMAKE_OPENSOURCE_EDITION
41@@ -72,6 +70,8 @@ bootstrap { #Qt code
42 qlist.cpp \
43 qlinkedlist.cpp \
44 qlocale.cpp \
45+ qlocale_tools.cpp \
46+ qlocale_unix.cpp \
47 qmalloc.cpp \
48 qmap.cpp \
49 qmetatype.cpp \
50--
511.8.0
52
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0010-configure-Hack-to-not-use-the-pg_config-of-the-host-.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0010-configure-Hack-to-not-use-the-pg_config-of-the-host-.patch
new file mode 100644
index 0000000000..1d2ddab490
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0010-configure-Hack-to-not-use-the-pg_config-of-the-host-.patch
@@ -0,0 +1,42 @@
1From 4888791d1899f781af710dd8813887dea52fda59 Mon Sep 17 00:00:00 2001
2From: Holger Freyther <zecke@selfish.org>
3Date: Wed, 26 Sep 2012 20:36:38 +0200
4Subject: [PATCH 10/21] configure: Hack to not use the pg_config of the host
5 system which will add /usr/include
6
7pg_config is a native binary so using that when cross compiling
8will always fail. The commented out fix would do, but for OE
9our -platform and -xplatform is the same so we are actually not
10really cross compiling. Just comment out the test, we are passing
11the location to the postgres headers and if they are okay we
12will pad.
13
14Upstream-Status: Inappropriate [configuration]
15
16Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
17---
18 configure | 8 ++++----
19 1 file changed, 4 insertions(+), 4 deletions(-)
20
21diff --git a/configure b/configure
22index db4d044..35a8fe7 100755
23--- a/configure
24+++ b/configure
25@@ -5511,10 +5511,10 @@ for _SQLDR in $CFG_SQL_AVAILABLE; do
26 psql)
27 if [ "$CFG_SQL_psql" != "no" ]; then
28 # Be careful not to use native pg_config when cross building.
29- if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
30- QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
31- QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
32- fi
33+# if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
34+# QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
35+# QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
36+# fi
37 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
38 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
39 # But, respect PSQL_LIBS if set
40--
411.8.0
42
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0011-freetype-host-includes.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0011-freetype-host-includes.patch
new file mode 100644
index 0000000000..e0879c5615
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0011-freetype-host-includes.patch
@@ -0,0 +1,29 @@
1From 3fcffa79e6a5f0448cbfe2bb33fe1218f5dae61d Mon Sep 17 00:00:00 2001
2From: Michael Krelin <hacker@klever.net>
3Date: Mon, 4 Jun 2007 14:48:50 +0200
4Subject: [PATCH 11/21] freetype host includes
5
6Host include path should not be used in cross compiling case.
7
8Ported from OE by: Yu Ke <ke.yu@intel.com>
9Upstream-Status: Pending
10
11Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
12---
13 config.tests/unix/freetype/freetype.pri | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/config.tests/unix/freetype/freetype.pri b/config.tests/unix/freetype/freetype.pri
17index 7ef1cf9..b362fcd 100644
18--- a/config.tests/unix/freetype/freetype.pri
19+++ b/config.tests/unix/freetype/freetype.pri
20@@ -1,5 +1,5 @@
21 !cross_compile {
22- TRY_INCLUDEPATHS = /include /usr/include $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
23+ TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
24 # LSB doesn't allow using headers from /include or /usr/include
25 linux-lsb-g++:TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
26 for(p, TRY_INCLUDEPATHS) {
27--
281.8.0
29
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0012-Add-2bpp-support.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0012-Add-2bpp-support.patch
new file mode 100644
index 0000000000..8e411f3426
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0012-Add-2bpp-support.patch
@@ -0,0 +1,318 @@
1From 8744273fc452eb54bbeeb7d15823009ce926c6fa Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Jeremy=20Lain=C3=A9?= <jeremy.laine@m4x.org>
3Date: Wed, 26 Sep 2012 20:39:21 +0200
4Subject: [PATCH 12/21] Add 2bpp support
5
6Submitted upstream but rejected as being "out of scope":
7https://bugreports.qt-project.org/browse/QTBUG-3468
8
9Upstream-Status: Denied
10
11Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
12---
13 configure | 5 +-
14 src/gui/embedded/qscreen_qws.cpp | 211 ++++++++++++++++++++++++++++++++
15 src/gui/embedded/qscreenlinuxfb_qws.cpp | 4 +-
16 3 files changed, 216 insertions(+), 4 deletions(-)
17
18diff --git a/configure b/configure
19index 35a8fe7..79c1c7b 100755
20--- a/configure
21+++ b/configure
22@@ -7063,6 +7063,7 @@ if [ "$CFG_QWS_DEPTHS" = "prompted" -a "$PROMPT_FOR_DEPTHS" = "yes" ]; then
23 echo "Choose pixel-depths to support:"
24 echo
25 echo " 1. 1bpp, black/white"
26+ echo " 2. 2bpp, grayscale"
27 echo " 4. 4bpp, grayscale"
28 echo " 8. 8bpp, paletted"
29 echo " 12. 12bpp, rgb 4-4-4"
30@@ -7081,11 +7082,11 @@ if [ "$CFG_QWS_DEPTHS" = "prompted" -a "$PROMPT_FOR_DEPTHS" = "yes" ]; then
31 fi
32 if [ -n "$CFG_QWS_DEPTHS" -a "$PLATFORM_QWS" = "yes" ]; then
33 if [ "$CFG_QWS_DEPTHS" = "all" ]; then
34- CFG_QWS_DEPTHS="1 4 8 12 15 16 18 24 32 generic"
35+ CFG_QWS_DEPTHS="1 2 4 8 12 15 16 18 24 32 generic"
36 fi
37 for D in `echo "$CFG_QWS_DEPTHS" | sed -e 's/,/ /g'`; do
38 case $D in
39- 1|4|8|12|15|16|18|24|32) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_$D";;
40+ 1|2|4|8|12|15|16|18|24|32) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_$D";;
41 generic) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_GENERIC";;
42 esac
43 done
44diff --git a/src/gui/embedded/qscreen_qws.cpp b/src/gui/embedded/qscreen_qws.cpp
45index b307bf2..88950b3 100644
46--- a/src/gui/embedded/qscreen_qws.cpp
47+++ b/src/gui/embedded/qscreen_qws.cpp
48@@ -469,6 +469,58 @@ static void solidFill_gray4(QScreen *screen, const QColor &color,
49 }
50 #endif // QT_QWS_DEPTH_4
51
52+#ifdef QT_QWS_DEPTH_2
53+static inline void qt_rectfill_gray2(quint8 *dest, quint8 value,
54+ int x, int y, int width, int height,
55+ int stride)
56+{
57+ const int pixelsPerByte = 4;
58+ const int alignWidth = qMin(width, (4 - (x & 3)) & 3);
59+ const int doAlign = (alignWidth > 0 ? 1 : 0);
60+ const int alignStart = pixelsPerByte - 1 - (x & 3);
61+ const int alignStop = alignStart - (alignWidth - 1);
62+ const quint8 alignMask = ((1 << (2 * alignWidth)) - 1) << (2 * alignStop);
63+ const int tailWidth = (width - alignWidth) & 3;
64+ const int doTail = (tailWidth > 0 ? 1 : 0);
65+ const quint8 tailMask = (1 << (2 * (pixelsPerByte - tailWidth))) - 1;
66+ const int width8 = (width - alignWidth) / pixelsPerByte;
67+
68+ dest += y * stride + x / pixelsPerByte;
69+ stride -= (doAlign + width8);
70+
71+ for (int j = 0; j < height; ++j) {
72+ if (doAlign) {
73+ *dest = (*dest & ~alignMask) | (value & alignMask);
74+ ++dest;
75+ }
76+ if (width8) {
77+ qt_memfill<quint8>(dest, value, width8);
78+ dest += width8;
79+ }
80+ if (doTail)
81+ *dest = (*dest & tailMask) | (value & ~tailMask);
82+ dest += stride;
83+ }
84+}
85+
86+static void solidFill_gray2(QScreen *screen, const QColor &color,
87+ const QRegion &region)
88+{
89+ quint8 *dest = reinterpret_cast<quint8*>(screen->base());
90+ const quint8 c = qGray(color.rgba()) >> 6;
91+ const quint8 c8 = (c << 6) | (c << 4) | (c << 2) | c;
92+
93+ const int stride = screen->linestep();
94+ const QVector<QRect> rects = region.rects();
95+
96+ for (int i = 0; i < rects.size(); ++i) {
97+ const QRect r = rects.at(i);
98+ qt_rectfill_gray2(dest, c8, r.x(), r.y(), r.width(), r.height(),
99+ stride);
100+ }
101+}
102+#endif // QT_QWS_DEPTH_2
103+
104 #ifdef QT_QWS_DEPTH_1
105 static inline void qt_rectfill_mono(quint8 *dest, quint8 value,
106 int x, int y, int width, int height,
107@@ -576,6 +628,11 @@ void qt_solidFill_setup(QScreen *screen, const QColor &color,
108 screen->d_ptr->solidFill = solidFill_gray4;
109 break;
110 #endif
111+#ifdef QT_QWS_DEPTH_2
112+ case 2:
113+ screen->d_ptr->solidFill = solidFill_gray2;
114+ break;
115+#endif
116 #ifdef QT_QWS_DEPTH_1
117 case 1:
118 screen->d_ptr->solidFill = solidFill_mono;
119@@ -1006,6 +1063,149 @@ static void blit_4(QScreen *screen, const QImage &image,
120 }
121 #endif // QT_QWS_DEPTH_4
122
123+#ifdef QT_QWS_DEPTH_2
124+
125+struct qgray2 { quint8 dummy; } Q_PACKED;
126+
127+template <typename SRC>
128+static inline quint8 qt_convertToGray2(SRC color);
129+
130+template <>
131+inline quint8 qt_convertToGray2(quint32 color)
132+{
133+ return qGray(color) >> 6;
134+}
135+
136+template <>
137+inline quint8 qt_convertToGray2(quint16 color)
138+{
139+ const int r = (color & 0xf800) >> 11;
140+ const int g = (color & 0x07e0) >> 6; // only keep 5 bit
141+ const int b = (color & 0x001f);
142+ return (r * 11 + g * 16 + b * 5) >> 8;
143+}
144+
145+template <>
146+inline quint8 qt_convertToGray2(qrgb444 color)
147+{
148+ return qt_convertToGray2(quint32(color));
149+}
150+
151+template <>
152+inline quint8 qt_convertToGray2(qargb4444 color)
153+{
154+ return qt_convertToGray2(quint32(color));
155+}
156+
157+template <typename SRC>
158+static inline void qt_rectconvert_gray2(qgray2 *dest2, const SRC *src,
159+ int x, int y, int width, int height,
160+ int dstStride, int srcStride)
161+{
162+ const int pixelsPerByte = 4;
163+ quint8 *dest8 = reinterpret_cast<quint8*>(dest2)
164+ + y * dstStride + x / pixelsPerByte;
165+ const int alignWidth = qMin(width, (4 - (x & 3)) & 3);
166+ const int doAlign = (alignWidth > 0 ? 1 : 0);
167+ const int alignStart = pixelsPerByte - 1 - (x & 3);
168+ const int alignStop = alignStart - (alignWidth - 1);
169+ const quint8 alignMask = ((1 << (2 * alignWidth)) - 1) << (2 * alignStop);
170+ const int tailWidth = (width - alignWidth) & 3;
171+ const int doTail = (tailWidth > 0 ? 1 : 0);
172+ const quint8 tailMask = (1 << (2 * (pixelsPerByte - tailWidth))) - 1;
173+ const int width8 = (width - alignWidth) / pixelsPerByte;
174+
175+ srcStride = srcStride / sizeof(SRC) - (width8 * pixelsPerByte + alignWidth);
176+ dstStride -= (width8 + doAlign);
177+
178+ for (int j = 0; j < height; ++j) {
179+ if (doAlign) {
180+ quint8 d = *dest8 & ~alignMask;
181+ for (int i = alignStart; i >= alignStop; --i)
182+ d |= qt_convertToGray2<SRC>(*src++) << (2 * i);
183+ *dest8++ = d;
184+ }
185+ for (int i = 0; i < width8; ++i) {
186+ *dest8 = (qt_convertToGray2<SRC>(src[0]) << 6)
187+ | (qt_convertToGray2<SRC>(src[1]) << 4)
188+ | (qt_convertToGray2<SRC>(src[2]) << 2)
189+ | (qt_convertToGray2<SRC>(src[3]));
190+ src += 4;
191+ ++dest8;
192+ }
193+ if (doTail) {
194+ quint8 d = *dest8 & tailMask;
195+ switch (tailWidth) {
196+ case 3: d |= qt_convertToGray2<SRC>(src[2]) << 2;
197+ case 2: d |= qt_convertToGray2<SRC>(src[1]) << 4;
198+ case 1: d |= qt_convertToGray2<SRC>(src[0]) << 6;
199+ }
200+ *dest8 = d;
201+ }
202+
203+ dest8 += dstStride;
204+ src += srcStride;
205+ }
206+}
207+
208+template <>
209+void qt_rectconvert(qgray2 *dest, const quint32 *src,
210+ int x, int y, int width, int height,
211+ int dstStride, int srcStride)
212+{
213+ qt_rectconvert_gray2<quint32>(dest, src, x, y, width, height,
214+ dstStride, srcStride);
215+}
216+
217+template <>
218+void qt_rectconvert(qgray2 *dest, const quint16 *src,
219+ int x, int y, int width, int height,
220+ int dstStride, int srcStride)
221+{
222+ qt_rectconvert_gray2<quint16>(dest, src, x, y, width, height,
223+ dstStride, srcStride);
224+}
225+
226+template <>
227+void qt_rectconvert(qgray2 *dest, const qrgb444 *src,
228+ int x, int y, int width, int height,
229+ int dstStride, int srcStride)
230+{
231+ qt_rectconvert_gray2<qrgb444>(dest, src, x, y, width, height,
232+ dstStride, srcStride);
233+}
234+
235+template <>
236+void qt_rectconvert(qgray2 *dest, const qargb4444 *src,
237+ int x, int y, int width, int height,
238+ int dstStride, int srcStride)
239+{
240+ qt_rectconvert_gray2<qargb4444>(dest, src, x, y, width, height,
241+ dstStride, srcStride);
242+}
243+
244+static void blit_2(QScreen *screen, const QImage &image,
245+ const QPoint &topLeft, const QRegion &region)
246+{
247+ switch (image.format()) {
248+ case QImage::Format_ARGB32_Premultiplied:
249+ blit_template<qgray2, quint32>(screen, image, topLeft, region);
250+ return;
251+ case QImage::Format_RGB16:
252+ blit_template<qgray2, quint16>(screen, image, topLeft, region);
253+ return;
254+ case QImage::Format_RGB444:
255+ blit_template<qgray2, qrgb444>(screen, image, topLeft, region);
256+ return;
257+ case QImage::Format_ARGB4444_Premultiplied:
258+ blit_template<qgray2, qargb4444>(screen, image, topLeft, region);
259+ return;
260+ default:
261+ qCritical("blit_2(): Image format %d not supported!", image.format());
262+ }
263+}
264+#endif // QT_QWS_DEPTH_2
265+
266 #ifdef QT_QWS_DEPTH_1
267
268 struct qmono { quint8 dummy; } Q_PACKED;
269@@ -1259,6 +1459,11 @@ void qt_blit_setup(QScreen *screen, const QImage &image,
270 screen->d_ptr->blit = blit_4;
271 break;
272 #endif
273+#ifdef QT_QWS_DEPTH_2
274+ case 2:
275+ screen->d_ptr->blit = blit_2;
276+ break;
277+#endif
278 #ifdef QT_QWS_DEPTH_1
279 case 1:
280 screen->d_ptr->blit = blit_1;
281@@ -2146,6 +2351,8 @@ int QScreen::alloc(unsigned int r,unsigned int g,unsigned int b)
282 }
283 } else if (d == 4) {
284 ret = qGray(r, g, b) >> 4;
285+ } else if (d == 2) {
286+ ret = qGray(r, g, b) >> 6;
287 } else if (d == 1) {
288 ret = qGray(r, g, b) >= 128;
289 } else {
290@@ -2216,6 +2423,10 @@ bool QScreen::supportsDepth(int d) const
291 } else if(d==1) {
292 return true;
293 #endif
294+#ifdef QT_QWS_DEPTH_2
295+ } else if(d==2) {
296+ return true;
297+#endif
298 #ifdef QT_QWS_DEPTH_4
299 } else if(d==4) {
300 return true;
301diff --git a/src/gui/embedded/qscreenlinuxfb_qws.cpp b/src/gui/embedded/qscreenlinuxfb_qws.cpp
302index 6f3caad..14159ee 100644
303--- a/src/gui/embedded/qscreenlinuxfb_qws.cpp
304+++ b/src/gui/embedded/qscreenlinuxfb_qws.cpp
305@@ -466,8 +466,8 @@ bool QLinuxFbScreen::connect(const QString &displaySpec)
306 setupOffScreen();
307
308 // Now read in palette
309- if((vinfo.bits_per_pixel==8) || (vinfo.bits_per_pixel==4)) {
310- screencols= (vinfo.bits_per_pixel==8) ? 256 : 16;
311+ if((vinfo.bits_per_pixel==8) || (vinfo.bits_per_pixel==4) || (vinfo.bits_per_pixel==2)) {
312+ screencols= 1 << vinfo.bits_per_pixel;
313 int loopc;
314 ::fb_cmap startcmap;
315 startcmap.start=0;
316--
3171.8.0
318
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0013-configure-add-crossarch-option.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0013-configure-add-crossarch-option.patch
new file mode 100644
index 0000000000..aa464fd1ed
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0013-configure-add-crossarch-option.patch
@@ -0,0 +1,47 @@
1From 549342fa380ed2a9ad41be3d04ee2f0585f6a465 Mon Sep 17 00:00:00 2001
2From: Michael Lauer <mickey@vanille-media.de>
3Date: Wed, 26 Sep 2012 20:41:32 +0200
4Subject: [PATCH 13/21] configure: add "-crossarch" option
5
6Upstream-Status: Pending
7
8Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
9---
10 configure | 7 ++++++-
11 1 file changed, 6 insertions(+), 1 deletion(-)
12
13diff --git a/configure b/configure
14index 79c1c7b..7983c3d 100755
15--- a/configure
16+++ b/configure
17@@ -1153,7 +1153,7 @@ while [ "$#" -gt 0 ]; do
18 shift
19 VAL=$1
20 ;;
21- -prefix|-docdir|-headerdir|-plugindir|-importdir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-device-option|-buildkey|-sdk|-arch|-host-arch|-mysql_config|-sysroot)
22+ -prefix|-docdir|-headerdir|-plugindir|-importdir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-device-option|-buildkey|-sdk|-arch|-host-arch|-mysql_config|-sysroot|-crossarch)
23 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
24 shift
25 VAL="$1"
26@@ -1709,6 +1709,9 @@ while [ "$#" -gt 0 ]; do
27 DEV_VAL=`echo $VAL | sed "s,^.*=\(.*\),\1,"`
28 DeviceVar set $DEV_VAR $DEV_VAL
29 ;;
30+ crossarch)
31+ CROSSARCH="$VAL"
32+ ;;
33 debug-and-release)
34 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
35 CFG_DEBUG_RELEASE="$VAL"
36@@ -3324,6 +3327,8 @@ arm*)
37 ;;
38 esac
39
40+CFG_ARCH="$CROSSARCH"
41+
42 if [ -d "$relpath/src/corelib/arch/$CFG_ARCH" ]; then
43 if [ "$OPT_VERBOSE" = "yes" ]; then
44 echo " '$CFG_ARCH' is supported"
45--
461.8.0
47
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0014-translations-fix-phony-translation-linking-error.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0014-translations-fix-phony-translation-linking-error.patch
new file mode 100644
index 0000000000..66724a8ecf
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0014-translations-fix-phony-translation-linking-error.patch
@@ -0,0 +1,41 @@
1From 21af8f6d21b28a53041affb11b58d6316023fa92 Mon Sep 17 00:00:00 2001
2From: Otavio Salvador <otavio@ossystems.com.br>
3Date: Wed, 26 Sep 2012 20:45:10 +0200
4Subject: [PATCH 14/21] translations: fix phony translation linking error
5
6 | .../usr/lib/crt1.o: In function `_start':
7 | .../../sysdeps/i386/elf/start.S:115: undefined reference to `main'
8 | collect2: ld returned 1 exit status
9
10Upstream-Status: Pending
11
12Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
13---
14 translations/translations.pro | 4 ++--
15 1 file changed, 2 insertions(+), 2 deletions(-)
16
17diff --git a/translations/translations.pro b/translations/translations.pro
18index dc99beb..0d98829 100644
19--- a/translations/translations.pro
20+++ b/translations/translations.pro
21@@ -101,7 +101,7 @@ updateqm.name = LRELEASE ${QMAKE_FILE_IN}
22 updateqm.CONFIG += no_link
23 QMAKE_EXTRA_COMPILERS += updateqm
24
25-isEmpty(vcproj) {
26+!isEmpty(vcproj) {
27 QMAKE_LINK = @: IGNORE THIS LINE
28 OBJECTS_DIR =
29 win32:CONFIG -= embed_manifest_exe
30@@ -111,7 +111,7 @@ isEmpty(vcproj) {
31 phony_src.input = PHONY_DEPS
32 phony_src.output = phony.c
33 phony_src.variable_out = GENERATED_SOURCES
34- phony_src.commands = echo int main() { return 0; } > phony.c
35+ phony_src.commands = echo \"int main() { return 0; }\" > phony.c
36 phony_src.name = CREATE phony.c
37 phony_src.CONFIG += combine
38 QMAKE_EXTRA_COMPILERS += phony_src
39--
401.8.0
41
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0015-configure-add-nostrip-for-debug-packages.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0015-configure-add-nostrip-for-debug-packages.patch
new file mode 100644
index 0000000000..b5db49128c
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0015-configure-add-nostrip-for-debug-packages.patch
@@ -0,0 +1,32 @@
1From 9250fed086a4a8a645a972764a9bf34e4566ec2e Mon Sep 17 00:00:00 2001
2From: Fathi Boudra <fabo@debian.org>
3Date: Wed, 26 Sep 2012 20:46:14 +0200
4Subject: [PATCH 15/21] configure: add nostrip for debug packages
5
6Qt is built in release mode and strip files by default.
7Set CONFIG+=nostrip to avoid the stripping and
8let dh_strip do it to generate debug packages.
9
10Upstream-Status: Inappropriate [Configuration]
11
12Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
13---
14 configure | 2 ++
15 1 file changed, 2 insertions(+)
16
17diff --git a/configure b/configure
18index 7983c3d..d02824b 100755
19--- a/configure
20+++ b/configure
21@@ -710,6 +710,8 @@ mkdir -p "$outpath/config.tests"
22 rm -f "$outpath/config.tests/.qmake.cache"
23 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
24
25+QMakeVar add CONFIG nostrip
26+
27 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
28 QMakeVar add decorations "default windows styled"
29 QMakeVar add mouse-drivers "pc"
30--
311.8.0
32
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0016-configure-eval-QMAKE_CXX.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0016-configure-eval-QMAKE_CXX.patch
new file mode 100644
index 0000000000..9c3de47b4b
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0016-configure-eval-QMAKE_CXX.patch
@@ -0,0 +1,37 @@
1From 8403634a71f067eec514b6d2193cf41e281dff8e Mon Sep 17 00:00:00 2001
2From: Paul Eggleton <paul.eggleton@linux.intel.com>
3Date: Wed, 26 Sep 2012 20:47:08 +0200
4Subject: [PATCH 16/21] configure: eval QMAKE_CXX
5
6Allow expansion of $(...) references in QMAKE_CXX (currently its value
7is $(OE_QMAKE_CXX)) in order to allow compiler version check to succeed
8which allows WebKit to be enabled.
9
10Upstream-Status: Pending
11
12Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
13Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
14
15Conflicts:
16 configure
17---
18 configure | 3 ++-
19 1 file changed, 2 insertions(+), 1 deletion(-)
20
21diff --git a/configure b/configure
22index d02824b..891d6e7 100755
23--- a/configure
24+++ b/configure
25@@ -3409,7 +3409,8 @@ else
26 CFG_FRAMEWORK=no
27 fi
28
29-QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
30+QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX | sed -n 's/$[(]\([0-9a-zA-Z_]*\)[)]/$\1/pg'`
31+QMAKE_CONF_COMPILER=`eval "echo $QMAKE_CONF_COMPILER"`
32 TEST_COMPILER="$CXX"
33
34 [ -z "$TEST_COMPILER" ] && TEST_COMPILER=$QMAKE_CONF_COMPILER
35--
361.8.0
37
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0017-configure-ensure-we-identify-the-compiler-as-g-in-co.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0017-configure-ensure-we-identify-the-compiler-as-g-in-co.patch
new file mode 100644
index 0000000000..9471966660
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0017-configure-ensure-we-identify-the-compiler-as-g-in-co.patch
@@ -0,0 +1,46 @@
1From d2bb701b551402f0befddd0e906423596bdc0df7 Mon Sep 17 00:00:00 2001
2From: Paul Eggleton <paul.eggleton@linux.intel.com>
3Date: Wed, 26 Sep 2012 20:48:37 +0200
4Subject: [PATCH 17/21] configure: ensure we identify the compiler as g++ in
5 configure
6
7Our PLATFORM in OE is ${TARGET_OS}-oe-g++, and previously the configure
8script was interpreting from this that the compiler was "oe-g++" and
9thus
10g++ specific checks were not being run since this string did not match;
11among other things this resulted in a compiler version check in the
12QtWebKit build code not working, and hence the following error at build
13time:
14
15./wtf/NullPtr.h:48:1: error: identifier 'nullptr' will become a keyword
16in C++0x [-Werror=c++0x-compat]
17
18The easiest thing since our PLATFORM is entirely artificial is to just
19force COMPILER to "g++" in the configure script if it is detected as
20"oe-g++".
21
22Upstream-Status: Inappropriate [configuration]
23
24Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
25Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
26---
27 configure | 3 +++
28 1 file changed, 3 insertions(+)
29
30diff --git a/configure b/configure
31index 891d6e7..7031898 100755
32--- a/configure
33+++ b/configure
34@@ -7592,6 +7592,9 @@ elif [ "$XPLATFORM" != "$PLATFORM" ]; then
35 else
36 COMPILER=`echo $PLATFORM | cut -f 2- -d-`
37 fi
38+case $COMPILER in
39+ *oe-g++) COMPILER="g++" ;;
40+esac
41 if [ "$CFG_EXCEPTIONS" = "unspecified" -a "$PLATFORM_QWS" = "yes" ]; then
42 CFG_EXCEPTIONS=no
43 fi
44--
451.8.0
46
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0018-configure-make-pulseaudio-a-configurable-option.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0018-configure-make-pulseaudio-a-configurable-option.patch
new file mode 100644
index 0000000000..19cdd4c57d
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0018-configure-make-pulseaudio-a-configurable-option.patch
@@ -0,0 +1,46 @@
1From d6dc1a7d6594d7e395347732a3e553fc82ccab3d Mon Sep 17 00:00:00 2001
2From: Paul Eggleton <paul.eggleton@linux.intel.com>
3Date: Tue, 28 Feb 2012 15:10:24 +0000
4Subject: [PATCH 18/21] configure: make pulseaudio a configurable option
5
6Allows disabling pulseaudio support within phonon at configure time.
7(This is the Qt 4.8.0 version.)
8
9Upstream-Status: Pending
10
11Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
12Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
13---
14 configure | 9 ++++++++-
15 1 file changed, 8 insertions(+), 1 deletion(-)
16
17diff --git a/configure b/configure
18index 7031898..a4a42f1 100755
19--- a/configure
20+++ b/configure
21@@ -1139,7 +1139,7 @@ while [ "$#" -gt 0 ]; do
22 VAL=no
23 ;;
24 #Qt style yes options
25- -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-harfbuzz|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-audio-backend|-svg|-declarative|-declarative-debug|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config|-s60|-usedeffiles|-icu)
26+ -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-pulseaudio|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-harfbuzz|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-audio-backend|-svg|-declarative|-declarative-debug|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config|-s60|-usedeffiles|-icu)
27 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
28 VAL=yes
29 ;;
30@@ -2120,6 +2120,13 @@ while [ "$#" -gt 0 ]; do
31 UNKNOWN_OPT=yes
32 fi
33 ;;
34+ pulseaudio)
35+ if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
36+ CFG_PULSEAUDIO="$VAL"
37+ else
38+ UNKNOWN_OPT=yes
39+ fi
40+ ;;
41 gtkstyle)
42 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
43 CFG_QGTKSTYLE="$VAL"
44--
451.8.0
46
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0019-Fixes-for-gcc-4.7.0-particularly-on-qemux86.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0019-Fixes-for-gcc-4.7.0-particularly-on-qemux86.patch
new file mode 100644
index 0000000000..a83d2470a1
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0019-Fixes-for-gcc-4.7.0-particularly-on-qemux86.patch
@@ -0,0 +1,63 @@
1From 1f1da2f24d3028b250dbc2e98e2b7e37862b3771 Mon Sep 17 00:00:00 2001
2From: Richard Purdie <richard.purdie@linuxfoundation.org>
3Date: Wed, 26 Sep 2012 20:54:38 +0200
4Subject: [PATCH 19/21] Fixes for gcc 4.7.0, particularly on qemux86
5
6Origin: upstream, http://trac.webkit.org/changeset/93631
7Origin: upstream, http://trac.webkit.org/changeset/113848
8
9Bug: https://bugs.webkit.org/show_bug.cgi?id=62168
10Bug: https://bugs.webkit.org/show_bug.cgi?id=83584
11
12RP 2012/04/30
13
14Upstream-Status: Backport
15
16Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
17---
18 src/3rdparty/webkit/Source/WebCore/dom/Element.cpp | 2 +-
19 src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp | 2 +-
20 .../webkit/Source/WebCore/platform/graphics/TiledBackingStoreClient.h | 1 +
21 3 files changed, 3 insertions(+), 2 deletions(-)
22
23diff --git a/src/3rdparty/webkit/Source/WebCore/dom/Element.cpp b/src/3rdparty/webkit/Source/WebCore/dom/Element.cpp
24index 32e47ca..b8e7389 100644
25--- a/src/3rdparty/webkit/Source/WebCore/dom/Element.cpp
26+++ b/src/3rdparty/webkit/Source/WebCore/dom/Element.cpp
27@@ -1080,7 +1080,7 @@ void Element::recalcStyle(StyleChange change)
28 {
29 // Ref currentStyle in case it would otherwise be deleted when setRenderStyle() is called.
30 RefPtr<RenderStyle> currentStyle(renderStyle());
31- bool hasParentStyle = parentNodeForRenderingAndStyle() ? parentNodeForRenderingAndStyle()->renderStyle() : false;
32+ bool hasParentStyle = parentNodeForRenderingAndStyle() ? static_cast<bool>(parentNodeForRenderingAndStyle()->renderStyle()) : false;
33 bool hasDirectAdjacentRules = currentStyle && currentStyle->childrenAffectedByDirectAdjacentRules();
34 bool hasIndirectAdjacentRules = currentStyle && currentStyle->childrenAffectedByForwardPositionalRules();
35
36diff --git a/src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp b/src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp
37index d66075e..ab8f111 100644
38--- a/src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp
39+++ b/src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp
40@@ -74,7 +74,7 @@ PassRefPtr<HTMLImageElement> HTMLImageElement::createForJSConstructor(Document*
41 RefPtr<HTMLImageElement> image = adoptRef(new HTMLImageElement(imgTag, document));
42 if (optionalWidth)
43 image->setWidth(*optionalWidth);
44- if (optionalHeight > 0)
45+ if (optionalHeight)
46 image->setHeight(*optionalHeight);
47 return image.release();
48 }
49diff --git a/src/3rdparty/webkit/Source/WebCore/platform/graphics/TiledBackingStoreClient.h b/src/3rdparty/webkit/Source/WebCore/platform/graphics/TiledBackingStoreClient.h
50index 6087ec3..6d748f6 100644
51--- a/src/3rdparty/webkit/Source/WebCore/platform/graphics/TiledBackingStoreClient.h
52+++ b/src/3rdparty/webkit/Source/WebCore/platform/graphics/TiledBackingStoreClient.h
53@@ -25,6 +25,7 @@ namespace WebCore {
54 #if ENABLE(TILED_BACKING_STORE)
55 class TiledBackingStoreClient {
56 public:
57+ virtual ~TiledBackingStoreClient() { }
58 virtual void tiledBackingStorePaintBegin() = 0;
59 virtual void tiledBackingStorePaint(GraphicsContext*, const IntRect&) = 0;
60 virtual void tiledBackingStorePaintEnd(const Vector<IntRect>& paintedArea) = 0;
61--
621.8.0
63
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0021-configure-make-qt4-native-work-with-long-building-pa.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0021-configure-make-qt4-native-work-with-long-building-pa.patch
new file mode 100644
index 0000000000..dbc90227a5
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0021-configure-make-qt4-native-work-with-long-building-pa.patch
@@ -0,0 +1,95 @@
1From 6742ac7ea6fd1e9c82ecb5305f84e721242f857d Mon Sep 17 00:00:00 2001
2From: Chen Qi <Qi.Chen@windriver.com>
3Date: Wed, 5 Dec 2012 07:48:15 +0200
4Subject: [PATCH 21/21] configure: make qt4-native work with long building
5 path.
6
7Upstream-Status: Submitted
8
9Reference: https://bugreports.qt-project.org/browse/QTBUG-28292
10
11Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
12Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
13---
14 configure | 52 ++++++++++++++++++++++++++--------------------------
15 1 file changed, 26 insertions(+), 26 deletions(-)
16
17diff --git a/configure b/configure
18index a4a42f1..2358563 100755
19--- a/configure
20+++ b/configure
21@@ -4779,8 +4779,8 @@ DEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INST
22 TODAY=`date +%Y-%m-%d`
23 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
24 /* License Info */
25-static const char qt_configure_licensee_str [256 + 12] = "$LICENSE_USER_STR";
26-static const char qt_configure_licensed_products_str [256 + 12] = "$LICENSE_PRODUCTS_STR";
27+static const char qt_configure_licensee_str [512 + 12] = "$LICENSE_USER_STR";
28+static const char qt_configure_licensed_products_str [512 + 12] = "$LICENSE_PRODUCTS_STR";
29
30 /* Installation date */
31 static const char qt_configure_installation [12+11] = "qt_instdate=$TODAY";
32@@ -4805,36 +4805,36 @@ if [ ! -z "$QT_HOST_PREFIX" ]; then
33
34 #if defined(QT_BOOTSTRAPPED) || defined(QT_BUILD_QMAKE)
35 /* Installation Info */
36-static const char qt_configure_prefix_path_str [256 + 12] = "$HOSTPREFIX_PATH_STR";
37-static const char qt_configure_documentation_path_str[256 + 12] = "$HOSTDOCUMENTATION_PATH_STR";
38-static const char qt_configure_headers_path_str [256 + 12] = "$HOSTHEADERS_PATH_STR";
39-static const char qt_configure_libraries_path_str [256 + 12] = "$HOSTLIBRARIES_PATH_STR";
40-static const char qt_configure_binaries_path_str [256 + 12] = "$HOSTBINARIES_PATH_STR";
41-static const char qt_configure_plugins_path_str [256 + 12] = "$HOSTPLUGINS_PATH_STR";
42-static const char qt_configure_imports_path_str [256 + 12] = "$HOSTIMPORTS_PATH_STR";
43-static const char qt_configure_data_path_str [256 + 12] = "$HOSTDATA_PATH_STR";
44-static const char qt_configure_translations_path_str [256 + 12] = "$HOSTTRANSLATIONS_PATH_STR";
45-static const char qt_configure_settings_path_str [256 + 12] = "$HOSTSETTINGS_PATH_STR";
46-static const char qt_configure_examples_path_str [256 + 12] = "$HOSTEXAMPLES_PATH_STR";
47-static const char qt_configure_demos_path_str [256 + 12] = "$HOSTDEMOS_PATH_STR";
48+static const char qt_configure_prefix_path_str [512 + 12] = "$HOSTPREFIX_PATH_STR";
49+static const char qt_configure_documentation_path_str[512 + 12] = "$HOSTDOCUMENTATION_PATH_STR";
50+static const char qt_configure_headers_path_str [512 + 12] = "$HOSTHEADERS_PATH_STR";
51+static const char qt_configure_libraries_path_str [512 + 12] = "$HOSTLIBRARIES_PATH_STR";
52+static const char qt_configure_binaries_path_str [512 + 12] = "$HOSTBINARIES_PATH_STR";
53+static const char qt_configure_plugins_path_str [512 + 12] = "$HOSTPLUGINS_PATH_STR";
54+static const char qt_configure_imports_path_str [512 + 12] = "$HOSTIMPORTS_PATH_STR";
55+static const char qt_configure_data_path_str [512 + 12] = "$HOSTDATA_PATH_STR";
56+static const char qt_configure_translations_path_str [512 + 12] = "$HOSTTRANSLATIONS_PATH_STR";
57+static const char qt_configure_settings_path_str [512 + 12] = "$HOSTSETTINGS_PATH_STR";
58+static const char qt_configure_examples_path_str [512 + 12] = "$HOSTEXAMPLES_PATH_STR";
59+static const char qt_configure_demos_path_str [512 + 12] = "$HOSTDEMOS_PATH_STR";
60 #else // QT_BOOTSTRAPPED
61 EOF
62 fi
63
64 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
65 /* Installation Info */
66-static const char qt_configure_prefix_path_str [256 + 12] = "$PREFIX_PATH_STR";
67-static const char qt_configure_documentation_path_str[256 + 12] = "$DOCUMENTATION_PATH_STR";
68-static const char qt_configure_headers_path_str [256 + 12] = "$HEADERS_PATH_STR";
69-static const char qt_configure_libraries_path_str [256 + 12] = "$LIBRARIES_PATH_STR";
70-static const char qt_configure_binaries_path_str [256 + 12] = "$BINARIES_PATH_STR";
71-static const char qt_configure_plugins_path_str [256 + 12] = "$PLUGINS_PATH_STR";
72-static const char qt_configure_imports_path_str [256 + 12] = "$IMPORTS_PATH_STR";
73-static const char qt_configure_data_path_str [256 + 12] = "$DATA_PATH_STR";
74-static const char qt_configure_translations_path_str [256 + 12] = "$TRANSLATIONS_PATH_STR";
75-static const char qt_configure_settings_path_str [256 + 12] = "$SETTINGS_PATH_STR";
76-static const char qt_configure_examples_path_str [256 + 12] = "$EXAMPLES_PATH_STR";
77-static const char qt_configure_demos_path_str [256 + 12] = "$DEMOS_PATH_STR";
78+static const char qt_configure_prefix_path_str [512 + 12] = "$PREFIX_PATH_STR";
79+static const char qt_configure_documentation_path_str[512 + 12] = "$DOCUMENTATION_PATH_STR";
80+static const char qt_configure_headers_path_str [512 + 12] = "$HEADERS_PATH_STR";
81+static const char qt_configure_libraries_path_str [512 + 12] = "$LIBRARIES_PATH_STR";
82+static const char qt_configure_binaries_path_str [512 + 12] = "$BINARIES_PATH_STR";
83+static const char qt_configure_plugins_path_str [512 + 12] = "$PLUGINS_PATH_STR";
84+static const char qt_configure_imports_path_str [512 + 12] = "$IMPORTS_PATH_STR";
85+static const char qt_configure_data_path_str [512 + 12] = "$DATA_PATH_STR";
86+static const char qt_configure_translations_path_str [512 + 12] = "$TRANSLATIONS_PATH_STR";
87+static const char qt_configure_settings_path_str [512 + 12] = "$SETTINGS_PATH_STR";
88+static const char qt_configure_examples_path_str [512 + 12] = "$EXAMPLES_PATH_STR";
89+static const char qt_configure_demos_path_str [512 + 12] = "$DEMOS_PATH_STR";
90 EOF
91
92 if [ ! -z "$QT_HOST_PREFIX" ]; then
93--
941.8.0
95
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0027-tools.pro-disable-qmeegographicssystemhelper.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0027-tools.pro-disable-qmeegographicssystemhelper.patch
new file mode 100644
index 0000000000..6e30aeed02
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0027-tools.pro-disable-qmeegographicssystemhelper.patch
@@ -0,0 +1,28 @@
1From 0460e2a5f13aaf0081c3c9fec89280046842ddbb Mon Sep 17 00:00:00 2001
2From: Paul Eggleton <paul.eggleton@linux.intel.com>
3Date: Wed, 3 Jul 2013 17:48:30 +0100
4Subject: [PATCH] tools.pro: disable qmeegographicssystemhelper
5
6We don't want this enabled just because we have EGL and OpenGL ES 2.0
7enabled.
8
9Upstream-Status: Inappropriate [config]
10
11Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
12---
13 tools/tools.pro | 2 +-
14 1 file changed, 1 insertion(+), 1 deletion(-)
15
16diff --git a/tools/tools.pro b/tools/tools.pro
17index 0e27053..2d3f36d 100644
18--- a/tools/tools.pro
19+++ b/tools/tools.pro
20@@ -49,4 +49,4 @@ QTDIR_build:REQUIRES = "contains(QT_CONFIG, full-config)"
21
22 !win32:!embedded:!mac:!symbian:CONFIG += x11
23
24-x11:contains(QT_CONFIG, opengles2):contains(QT_CONFIG, egl):SUBDIRS += qmeegographicssystemhelper
25+#x11:contains(QT_CONFIG, opengles2):contains(QT_CONFIG, egl):SUBDIRS += qmeegographicssystemhelper
26--
271.8.1.2
28
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0028-Don-t-crash-on-broken-GIF-images.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0028-Don-t-crash-on-broken-GIF-images.patch
new file mode 100644
index 0000000000..906e2fdfc8
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0028-Don-t-crash-on-broken-GIF-images.patch
@@ -0,0 +1,47 @@
1From f1b76c126c476c155af8c404b97c42cd1a709333 Mon Sep 17 00:00:00 2001
2From: Lars Knoll <lars.knoll@digia.com>
3Date: Thu, 24 Apr 2014 15:33:27 +0200
4Subject: [PATCH] Don't crash on broken GIF images
5
6Broken GIF images could set invalid width and height
7values inside the image, leading to Qt creating a null
8QImage for it. In that case we need to abort decoding
9the image and return an error.
10
11Initial patch by Rich Moore.
12
13Backport of Id82a4036f478bd6e49c402d6598f57e7e5bb5e1e from Qt 5
14
15Task-number: QTBUG-38367
16Change-Id: I0680740018aaa8356d267b7af3f01fac3697312a
17Security-advisory: CVE-2014-0190
18Reviewed-by: Richard J. Moore <rich@kde.org>
19
20Upstream-Status: Backport
21Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
22
23---
24 src/gui/image/qgifhandler.cpp | 7 +++++++
25 1 file changed, 7 insertions(+)
26
27diff --git a/src/gui/image/qgifhandler.cpp b/src/gui/image/qgifhandler.cpp
28index 3324f04..5199dd3 100644
29--- a/src/gui/image/qgifhandler.cpp
30+++ b/src/gui/image/qgifhandler.cpp
31@@ -359,6 +359,13 @@ int QGIFFormat::decode(QImage *image, const uchar *buffer, int length,
32 memset(bits, 0, image->byteCount());
33 }
34
35+ // Check if the previous attempt to create the image failed. If it
36+ // did then the image is broken and we should give up.
37+ if (image->isNull()) {
38+ state = Error;
39+ return -1;
40+ }
41+
42 disposePrevious(image);
43 disposed = false;
44
45--
461.9.3
47
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0029-aarch64_arm64_fix_arch_detection.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0029-aarch64_arm64_fix_arch_detection.patch
new file mode 100644
index 0000000000..fbd32b173d
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0029-aarch64_arm64_fix_arch_detection.patch
@@ -0,0 +1,53 @@
1From 800abbba658203fc8e746e3fc780a297cd4110cf Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Lisandro=20Dami=C3=A1n=20Nicanor=20P=C3=A9rez=20Meyer?=
3 <perezmeyer@gmail.com>
4Date: Wed, 20 Aug 2014 17:52:49 -0300
5Subject: [PATCH] Fix AArch64/arm64 detection.
6
7The detection needs to go before arm, else the system will detect AArch64/arm64
8as arm.
9
10This patch comes from Wookey, he has agreed to put it under BSD or Expat
11to allow it's inclusion in here:
12<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=735488#255>
13
14Change-Id: Ic2171c03fca8bb871347940fa3a2bc467776f797
15
16
17Upstream-Status: Pending
18
19Signed-off-by: Kai Kang <kai.kang@windriver.com>
20---
21 configure | 12 ++++++------
22 1 file changed, 6 insertions(+), 6 deletions(-)
23
24diff --git a/configure b/configure
25index a9ba7c8..eb88b72 100755
26--- a/configure
27+++ b/configure
28@@ -3241,17 +3241,17 @@ if [ -z "${CFG_HOST_ARCH}" ]; then
29 fi
30 CFG_HOST_ARCH=s390
31 ;;
32- *:*:arm*)
33+ *:*:aarch64*|*:*:arm64*)
34 if [ "$OPT_VERBOSE" = "yes" ]; then
35- echo " ARM (arm)"
36+ echo " AArch64 (aarch64)"
37 fi
38- CFG_HOST_ARCH=arm
39+ CFG_HOST_ARCH=aarch64
40 ;;
41- *:*:aarch64*)
42+ *:*:arm*)
43 if [ "$OPT_VERBOSE" = "yes" ]; then
44- echo " AArch64 (aarch64)"
45+ echo " ARM (arm)"
46 fi
47- CFG_HOST_ARCH=aarch64
48+ CFG_HOST_ARCH=arm
49 ;;
50 Linux:*:sparc*)
51 if [ "$OPT_VERBOSE" = "yes" ]; then
52--
532.1.0
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0030-aarch64_arm64_qatomic_support.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0030-aarch64_arm64_qatomic_support.patch
new file mode 100644
index 0000000000..ba4c2a6b4f
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0030-aarch64_arm64_qatomic_support.patch
@@ -0,0 +1,491 @@
1From 294010b562c9846bb2bc4ee9c63ff78adc7c1f4f Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Lisandro=20Dami=C3=A1n=20Nicanor=20P=C3=A9rez=20Meyer?=
3 <perezmeyer@gmail.com>
4Date: Sat, 15 Mar 2014 15:40:49 -0300
5Subject: [PATCH] Add qatomic support for AArch64 (aka arm64).
6
7Patch by Mark Salter <msalter@redhat.com>
8licensed under BSD:
9
10<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=735488#195>
11
12This patch is known to not be the most correct way
13to implement them, as it seems to be possible to do it in a faster way,
14but should work non the less until we can provide something better.
15
16Change-Id: Ib392b27dc54691fd4c2ea9896240ad71fb8128cc
17
18
19Upstream-Status: Pending
20
21Signed-off-by: Kai Kang <kai.kang@windriver.com>
22
23---
24 src/corelib/arch/aarch64/arch.pri | 4 +
25 src/corelib/arch/aarch64/qatomic_aarch64.cpp | 70 ++++++
26 src/corelib/arch/arch.pri | 4 +-
27 src/corelib/arch/qatomic_aarch64.h | 335 +++++++++++++++++++++++++++
28 src/corelib/arch/qatomic_arch.h | 2 +
29 5 files changed, 414 insertions(+), 1 deletion(-)
30 create mode 100644 src/corelib/arch/aarch64/arch.pri
31 create mode 100644 src/corelib/arch/aarch64/qatomic_aarch64.cpp
32 create mode 100644 src/corelib/arch/qatomic_aarch64.h
33
34diff --git a/src/corelib/arch/aarch64/arch.pri b/src/corelib/arch/aarch64/arch.pri
35new file mode 100644
36index 0000000..63523d9
37--- /dev/null
38+++ b/src/corelib/arch/aarch64/arch.pri
39@@ -0,0 +1,4 @@
40+#
41+# AArch64 architecture
42+#
43+SOURCES += $$QT_ARCH_CPP/qatomic_aarch64.cpp
44diff --git a/src/corelib/arch/aarch64/qatomic_aarch64.cpp b/src/corelib/arch/aarch64/qatomic_aarch64.cpp
45new file mode 100644
46index 0000000..fc851b9
47--- /dev/null
48+++ b/src/corelib/arch/aarch64/qatomic_aarch64.cpp
49@@ -0,0 +1,70 @@
50+/****************************************************************************
51+**
52+** Copyright (C) 2012, 2013 Digia Plc and/or its subsidiary(-ies).
53+** Contact: http://www.qt-project.org/legal
54+**
55+** This file is part of the QtCore module of the Qt Toolkit.
56+**
57+** $QT_BEGIN_LICENSE:LGPL$
58+** Commercial License Usage
59+** Licensees holding valid commercial Qt licenses may use this file in
60+** accordance with the commercial license agreement provided with the
61+** Software or, alternatively, in accordance with the terms contained in
62+** a written agreement between you and Digia. For licensing terms and
63+** conditions see http://qt.digia.com/licensing. For further information
64+** use the contact form at http://qt.digia.com/contact-us.
65+**
66+** GNU Lesser General Public License Usage
67+** Alternatively, this file may be used under the terms of the GNU Lesser
68+** General Public License version 2.1 as published by the Free Software
69+** Foundation and appearing in the file LICENSE.LGPL included in the
70+** packaging of this file. Please review the following information to
71+** ensure the GNU Lesser General Public License version 2.1 requirements
72+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
73+**
74+** In addition, as a special exception, Digia gives you certain additional
75+** rights. These rights are described in the Digia Qt LGPL Exception
76+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
77+**
78+** GNU General Public License Usage
79+** Alternatively, this file may be used under the terms of the GNU
80+** General Public License version 3.0 as published by the Free Software
81+** Foundation and appearing in the file LICENSE.GPL included in the
82+** packaging of this file. Please review the following information to
83+** ensure the GNU General Public License version 3.0 requirements will be
84+** met: http://www.gnu.org/copyleft/gpl.html.
85+**
86+**
87+** $QT_END_LICENSE$
88+**
89+****************************************************************************/
90+
91+#include <QtCore/qglobal.h>
92+
93+#include <unistd.h>
94+#ifdef _POSIX_PRIORITY_SCHEDULING
95+# include <sched.h>
96+#endif
97+#include <time.h>
98+
99+QT_BEGIN_NAMESPACE
100+
101+QT_USE_NAMESPACE
102+
103+Q_CORE_EXPORT void qt_atomic_yield(int *count)
104+{
105+#ifdef _POSIX_PRIORITY_SCHEDULING
106+ if ((*count)++ < 50) {
107+ sched_yield();
108+ } else
109+#endif
110+ {
111+ struct timespec tm;
112+ tm.tv_sec = 0;
113+ tm.tv_nsec = 2000001;
114+ nanosleep(&tm, NULL);
115+ *count = 0;
116+ }
117+}
118+
119+QT_END_NAMESPACE
120diff --git a/src/corelib/arch/arch.pri b/src/corelib/arch/arch.pri
121index cd23e5e..f50fca7 100644
122--- a/src/corelib/arch/arch.pri
123+++ b/src/corelib/arch/arch.pri
124@@ -31,7 +31,9 @@ integrity:HEADERS += arch/qatomic_integrity.h
125 arch/qatomic_s390.h \
126 arch/qatomic_x86_64.h \
127 arch/qatomic_sh.h \
128- arch/qatomic_sh4a.h
129+ arch/qatomic_sh4a.h \
130+ arch/qatomic_aarch64.h \
131+
132
133 QT_ARCH_CPP = $$QT_SOURCE_TREE/src/corelib/arch/$$QT_ARCH
134 DEPENDPATH += $$QT_ARCH_CPP
135diff --git a/src/corelib/arch/qatomic_aarch64.h b/src/corelib/arch/qatomic_aarch64.h
136new file mode 100644
137index 0000000..de61ca8
138--- /dev/null
139+++ b/src/corelib/arch/qatomic_aarch64.h
140@@ -0,0 +1,335 @@
141+/****************************************************************************
142+**
143+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
144+** Contact: http://www.qt-project.org/legal
145+**
146+** This file is part of the QtCore module of the Qt Toolkit.
147+**
148+** $QT_BEGIN_LICENSE:LGPL$
149+** Commercial License Usage
150+** Licensees holding valid commercial Qt licenses may use this file in
151+** accordance with the commercial license agreement provided with the
152+** Software or, alternatively, in accordance with the terms contained in
153+** a written agreement between you and Digia. For licensing terms and
154+** conditions see http://qt.digia.com/licensing. For further information
155+** use the contact form at http://qt.digia.com/contact-us.
156+**
157+** GNU Lesser General Public License Usage
158+** Alternatively, this file may be used under the terms of the GNU Lesser
159+** General Public License version 2.1 as published by the Free Software
160+** Foundation and appearing in the file LICENSE.LGPL included in the
161+** packaging of this file. Please review the following information to
162+** ensure the GNU Lesser General Public License version 2.1 requirements
163+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
164+**
165+** In addition, as a special exception, Digia gives you certain additional
166+** rights. These rights are described in the Digia Qt LGPL Exception
167+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
168+**
169+** GNU General Public License Usage
170+** Alternatively, this file may be used under the terms of the GNU
171+** General Public License version 3.0 as published by the Free Software
172+** Foundation and appearing in the file LICENSE.GPL included in the
173+** packaging of this file. Please review the following information to
174+** ensure the GNU General Public License version 3.0 requirements will be
175+** met: http://www.gnu.org/copyleft/gpl.html.
176+**
177+**
178+** $QT_END_LICENSE$
179+**
180+****************************************************************************/
181+
182+#ifndef QATOMIC_AARCH64_H
183+#define QATOMIC_AARCH64_H
184+
185+QT_BEGIN_HEADER
186+
187+QT_BEGIN_NAMESPACE
188+
189+#define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE
190+
191+inline bool QBasicAtomicInt::isReferenceCountingNative()
192+{ return true; }
193+inline bool QBasicAtomicInt::isReferenceCountingWaitFree()
194+{ return false; }
195+
196+#define Q_ATOMIC_INT_TEST_AND_SET_IS_ALWAYS_NATIVE
197+
198+inline bool QBasicAtomicInt::isTestAndSetNative()
199+{ return true; }
200+inline bool QBasicAtomicInt::isTestAndSetWaitFree()
201+{ return false; }
202+
203+#define Q_ATOMIC_INT_FETCH_AND_STORE_IS_ALWAYS_NATIVE
204+
205+inline bool QBasicAtomicInt::isFetchAndStoreNative()
206+{ return true; }
207+inline bool QBasicAtomicInt::isFetchAndStoreWaitFree()
208+{ return false; }
209+
210+#define Q_ATOMIC_INT_FETCH_AND_ADD_IS_ALWAYS_NATIVE
211+
212+inline bool QBasicAtomicInt::isFetchAndAddNative()
213+{ return true; }
214+inline bool QBasicAtomicInt::isFetchAndAddWaitFree()
215+{ return false; }
216+
217+#define Q_ATOMIC_POINTER_TEST_AND_SET_IS_ALWAYS_NATIVE
218+
219+template <typename T>
220+Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isTestAndSetNative()
221+{ return true; }
222+template <typename T>
223+Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isTestAndSetWaitFree()
224+{ return false; }
225+
226+#define Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_ALWAYS_NATIVE
227+
228+template <typename T>
229+Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndStoreNative()
230+{ return true; }
231+template <typename T>
232+Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndStoreWaitFree()
233+{ return false; }
234+
235+#define Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_ALWAYS_NATIVE
236+
237+template <typename T>
238+Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndAddNative()
239+{ return true; }
240+template <typename T>
241+Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::isFetchAndAddWaitFree()
242+{ return false; }
243+
244+#ifndef Q_DATA_MEMORY_BARRIER
245+# define Q_DATA_MEMORY_BARRIER asm volatile("dmb sy\n":::"memory")
246+#endif
247+#ifndef Q_COMPILER_MEMORY_BARRIER
248+# define Q_COMPILER_MEMORY_BARRIER asm volatile("":::"memory")
249+#endif
250+
251+inline bool QBasicAtomicInt::ref()
252+{
253+ int newValue;
254+
255+ Q_COMPILER_MEMORY_BARRIER;
256+ newValue = __atomic_add_fetch(&_q_value, 1, __ATOMIC_ACQ_REL);
257+ Q_COMPILER_MEMORY_BARRIER;
258+
259+ return newValue != 0;
260+}
261+
262+inline bool QBasicAtomicInt::deref()
263+{
264+ int newValue;
265+
266+ Q_COMPILER_MEMORY_BARRIER;
267+ newValue = __atomic_sub_fetch(&_q_value, 1, __ATOMIC_ACQ_REL);
268+ Q_COMPILER_MEMORY_BARRIER;
269+
270+ return newValue != 0;
271+}
272+
273+inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
274+{
275+ bool val;
276+
277+ Q_COMPILER_MEMORY_BARRIER;
278+ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue,
279+ false, __ATOMIC_RELAXED, __ATOMIC_RELAXED);
280+ Q_COMPILER_MEMORY_BARRIER;
281+ return val;
282+}
283+
284+inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue)
285+{
286+ int val;
287+ Q_COMPILER_MEMORY_BARRIER;
288+ val = __atomic_exchange_n(&_q_value, newValue, __ATOMIC_RELAXED);
289+ Q_COMPILER_MEMORY_BARRIER;
290+ return val;
291+}
292+
293+inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd)
294+{
295+ int val;
296+ Q_COMPILER_MEMORY_BARRIER;
297+ val = __atomic_fetch_add(&_q_value, valueToAdd, __ATOMIC_RELAXED);
298+ Q_COMPILER_MEMORY_BARRIER;
299+ return val;
300+}
301+
302+template <typename T>
303+Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue)
304+{
305+ bool val;
306+ Q_COMPILER_MEMORY_BARRIER;
307+ val = __atomic_compare_exchange_n (&_q_value, &expectedValue, newValue,
308+ false, __ATOMIC_RELAXED, __ATOMIC_RELAXED);
309+ Q_COMPILER_MEMORY_BARRIER;
310+ return val;
311+}
312+
313+template <typename T>
314+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
315+{
316+ T *val;
317+ Q_COMPILER_MEMORY_BARRIER;
318+ val = __atomic_exchange_n(&_q_value, newValue, __ATOMIC_RELAXED);
319+ Q_COMPILER_MEMORY_BARRIER;
320+ return val;
321+}
322+
323+template <typename T>
324+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
325+{
326+ T *val;
327+ Q_COMPILER_MEMORY_BARRIER;
328+ val = __atomic_fetch_add(&_q_value, valueToAdd, __ATOMIC_RELAXED);
329+ Q_COMPILER_MEMORY_BARRIER;
330+ return val;
331+}
332+
333+inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue)
334+{
335+ bool returnValue = testAndSetRelaxed(expectedValue, newValue);
336+ Q_DATA_MEMORY_BARRIER;
337+ return returnValue;
338+}
339+
340+inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue)
341+{
342+ Q_DATA_MEMORY_BARRIER;
343+ return testAndSetRelaxed(expectedValue, newValue);
344+}
345+
346+inline bool QBasicAtomicInt::testAndSetOrdered(int expectedValue, int newValue)
347+{
348+ Q_DATA_MEMORY_BARRIER;
349+ bool returnValue = testAndSetRelaxed(expectedValue, newValue);
350+ Q_COMPILER_MEMORY_BARRIER;
351+ return returnValue;
352+}
353+
354+inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue)
355+{
356+ int returnValue = fetchAndStoreRelaxed(newValue);
357+ Q_DATA_MEMORY_BARRIER;
358+ return returnValue;
359+}
360+
361+inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue)
362+{
363+ Q_DATA_MEMORY_BARRIER;
364+ return fetchAndStoreRelaxed(newValue);
365+}
366+
367+inline int QBasicAtomicInt::fetchAndStoreOrdered(int newValue)
368+{
369+ Q_DATA_MEMORY_BARRIER;
370+ int returnValue = fetchAndStoreRelaxed(newValue);
371+ Q_COMPILER_MEMORY_BARRIER;
372+ return returnValue;
373+}
374+
375+inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd)
376+{
377+ int returnValue = fetchAndAddRelaxed(valueToAdd);
378+ Q_DATA_MEMORY_BARRIER;
379+ return returnValue;
380+}
381+
382+inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd)
383+{
384+ Q_DATA_MEMORY_BARRIER;
385+ return fetchAndAddRelaxed(valueToAdd);
386+}
387+
388+inline int QBasicAtomicInt::fetchAndAddOrdered(int valueToAdd)
389+{
390+ Q_DATA_MEMORY_BARRIER;
391+ int returnValue = fetchAndAddRelaxed(valueToAdd);
392+ Q_COMPILER_MEMORY_BARRIER;
393+ return returnValue;
394+}
395+
396+template <typename T>
397+Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue)
398+{
399+ bool returnValue = testAndSetRelaxed(expectedValue, newValue);
400+ Q_DATA_MEMORY_BARRIER;
401+ return returnValue;
402+}
403+
404+template <typename T>
405+Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue)
406+{
407+ Q_DATA_MEMORY_BARRIER;
408+ return testAndSetRelaxed(expectedValue, newValue);
409+}
410+
411+template <typename T>
412+Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetOrdered(T *expectedValue, T *newValue)
413+{
414+ Q_DATA_MEMORY_BARRIER;
415+ bool returnValue = testAndSetAcquire(expectedValue, newValue);
416+ Q_COMPILER_MEMORY_BARRIER;
417+ return returnValue;
418+}
419+
420+template <typename T>
421+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
422+{
423+ T *returnValue = fetchAndStoreRelaxed(newValue);
424+ Q_DATA_MEMORY_BARRIER;
425+ return returnValue;
426+}
427+
428+template <typename T>
429+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue)
430+{
431+ Q_DATA_MEMORY_BARRIER;
432+ return fetchAndStoreRelaxed(newValue);
433+}
434+
435+template <typename T>
436+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreOrdered(T *newValue)
437+{
438+ Q_DATA_MEMORY_BARRIER;
439+ T *returnValue = fetchAndStoreRelaxed(newValue);
440+ Q_COMPILER_MEMORY_BARRIER;
441+ return returnValue;
442+}
443+
444+template <typename T>
445+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd)
446+{
447+ T *returnValue = fetchAndAddRelaxed(valueToAdd);
448+ Q_DATA_MEMORY_BARRIER;
449+ return returnValue;
450+}
451+
452+template <typename T>
453+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd)
454+{
455+ Q_DATA_MEMORY_BARRIER;
456+ return fetchAndAddRelaxed(valueToAdd);
457+}
458+
459+template <typename T>
460+Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueToAdd)
461+{
462+ Q_DATA_MEMORY_BARRIER;
463+ T *returnValue = fetchAndAddRelaxed(valueToAdd);
464+ Q_COMPILER_MEMORY_BARRIER;
465+ return returnValue;
466+}
467+
468+#undef Q_DATA_MEMORY_BARRIER
469+#undef Q_COMPILER_MEMORY_BARRIER
470+
471+QT_END_NAMESPACE
472+
473+QT_END_HEADER
474+
475+#endif // QATOMIC_AARCH64_H
476diff --git a/src/corelib/arch/qatomic_arch.h b/src/corelib/arch/qatomic_arch.h
477index 141726c..3e96926 100644
478--- a/src/corelib/arch/qatomic_arch.h
479+++ b/src/corelib/arch/qatomic_arch.h
480@@ -94,6 +94,8 @@ QT_BEGIN_HEADER
481 # include "QtCore/qatomic_sh4a.h"
482 #elif defined(QT_ARCH_NACL)
483 # include "QtCore/qatomic_generic.h"
484+#elif defined(QT_ARCH_AARCH64)
485+# include "QtCore/qatomic_aarch64.h"
486 #else
487 # error "Qt has not been ported to this architecture"
488 #endif
489--
4902.1.0
491
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0031-aarch64_arm64_mkspecs.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0031-aarch64_arm64_mkspecs.patch
new file mode 100644
index 0000000000..a01e7ada93
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0031-aarch64_arm64_mkspecs.patch
@@ -0,0 +1,124 @@
1From 7090fc80ff630712a90de92403190f647dd38a39 Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Lisandro=20Dami=C3=A1n=20Nicanor=20P=C3=A9rez=20Meyer?=
3 <perezmeyer@gmail.com>
4Date: Sat, 15 Mar 2014 15:35:00 -0300
5Subject: [PATCH] mkspecs for AArch64 (aka arm64).
6
7Patch by Marcin Juszkiewicz <marcin@juszkiewicz.com.pl>
8licensed under either Public Domain or BSD:
9
10<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=735488#179>
11
12Change-Id: I21f17953234cfb176bac023e52ecdc927fc5c1a9
13
14
15Upstream-Status: Pending
16
17Signed-off-by: Kai Kang <kai.kang@windriver.com>
18
19---
20 configure | 3 +++
21 mkspecs/linux-g++-aarch64/qmake.conf | 27 ++++++++++++++++++++
22 mkspecs/linux-g++-aarch64/qplatformdefs.h | 42 +++++++++++++++++++++++++++++++
23 3 files changed, 72 insertions(+)
24 create mode 100644 mkspecs/linux-g++-aarch64/qmake.conf
25 create mode 100644 mkspecs/linux-g++-aarch64/qplatformdefs.h
26
27diff --git a/configure b/configure
28index a9ba7c8..e57d053 100755
29--- a/configure
30+++ b/configure
31@@ -2808,6 +2808,9 @@ if [ "$CFG_EMBEDDED" != "no" ]; then
32 *86_64)
33 PLATFORM=qws/linux-x86_64-g++
34 ;;
35+ aarch64)
36+ PLATFORM=linux-aarch64-g++
37+ ;;
38 *)
39 PLATFORM=qws/linux-generic-g++
40 ;;
41diff --git a/mkspecs/linux-g++-aarch64/qmake.conf b/mkspecs/linux-g++-aarch64/qmake.conf
42new file mode 100644
43index 0000000..ebc0a92
44--- /dev/null
45+++ b/mkspecs/linux-g++-aarch64/qmake.conf
46@@ -0,0 +1,27 @@
47+#
48+# qmake configuration for linux-g++
49+#
50+# Written for GNU/Linux platforms that have both lib and lib64 directories,
51+# like the AMD Opteron.
52+#
53+
54+MAKEFILE_GENERATOR = UNIX
55+TARGET_PLATFORM = unix
56+TEMPLATE = app
57+CONFIG += qt warn_on release incremental link_prl gdb_dwarf_index
58+QT += core gui
59+QMAKE_INCREMENTAL_STYLE = sublib
60+
61+QMAKE_CFLAGS =
62+QMAKE_LFLAGS =
63+
64+QMAKE_CFLAGS_RELEASE += -O2
65+
66+include(../common/linux.conf)
67+include(../common/gcc-base-unix.conf)
68+include(../common/g++-unix.conf)
69+
70+QMAKE_LIBDIR_X11 = /usr/X11R6/lib64
71+QMAKE_LIBDIR_OPENGL = /usr/X11R6/lib64
72+
73+load(qt_config)
74diff --git a/mkspecs/linux-g++-aarch64/qplatformdefs.h b/mkspecs/linux-g++-aarch64/qplatformdefs.h
75new file mode 100644
76index 0000000..562128b
77--- /dev/null
78+++ b/mkspecs/linux-g++-aarch64/qplatformdefs.h
79@@ -0,0 +1,42 @@
80+/****************************************************************************
81+**
82+** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
83+** Contact: http://www.qt-project.org/legal
84+**
85+** This file is part of the qmake spec of the Qt Toolkit.
86+**
87+** $QT_BEGIN_LICENSE:LGPL$
88+** Commercial License Usage
89+** Licensees holding valid commercial Qt licenses may use this file in
90+** accordance with the commercial license agreement provided with the
91+** Software or, alternatively, in accordance with the terms contained in
92+** a written agreement between you and Digia. For licensing terms and
93+** conditions see http://qt.digia.com/licensing. For further information
94+** use the contact form at http://qt.digia.com/contact-us.
95+**
96+** GNU Lesser General Public License Usage
97+** Alternatively, this file may be used under the terms of the GNU Lesser
98+** General Public License version 2.1 as published by the Free Software
99+** Foundation and appearing in the file LICENSE.LGPL included in the
100+** packaging of this file. Please review the following information to
101+** ensure the GNU Lesser General Public License version 2.1 requirements
102+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
103+**
104+** In addition, as a special exception, Digia gives you certain additional
105+** rights. These rights are described in the Digia Qt LGPL Exception
106+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
107+**
108+** GNU General Public License Usage
109+** Alternatively, this file may be used under the terms of the GNU
110+** General Public License version 3.0 as published by the Free Software
111+** Foundation and appearing in the file LICENSE.GPL included in the
112+** packaging of this file. Please review the following information to
113+** ensure the GNU General Public License version 3.0 requirements will be
114+** met: http://www.gnu.org/copyleft/gpl.html.
115+**
116+**
117+** $QT_END_LICENSE$
118+**
119+****************************************************************************/
120+
121+#include "../linux-g++/qplatformdefs.h"
122--
1232.1.0
124
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0032-aarch64_add_header.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0032-aarch64_add_header.patch
new file mode 100644
index 0000000000..7132224ecc
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0032-aarch64_add_header.patch
@@ -0,0 +1,18 @@
1Add missing header for aarch64. And install ../corelib/arch/qatomic_aarch64.h.
2
3Upstream-Status: Pending
4
5Signed-off-by: Kai Kang <kai.kang@windriver.com>
6---
7diff -Nru qt-everywhere-opensource-src-4.8.6.orig/include/QtCore/qatomic_aarch64.h qt-everywhere-opensource-src-4.8.6/include/QtCore/qatomic_aarch64.h
8--- qt-everywhere-opensource-src-4.8.6.orig/include/QtCore/qatomic_aarch64.h 1970-01-01 08:30:00.000000000 +0830
9+++ qt-everywhere-opensource-src-4.8.6/include/QtCore/qatomic_aarch64.h 2014-09-09 17:18:03.768352551 +0800
10@@ -0,0 +1 @@
11+#include "../../src/corelib/arch/qatomic_aarch64.h"
12--- qt-everywhere-opensource-src-4.8.6/include/QtCore/headers.pri.orig 2014-09-09 18:05:37.100430311 +0800
13+++ qt-everywhere-opensource-src-4.8.6/include/QtCore/headers.pri 2014-09-09 18:05:59.112430911 +0800
14@@ -1,3 +1,3 @@
15-SYNCQT.HEADER_FILES = ../corelib/statemachine/qabstractstate.h ../corelib/statemachine/qabstracttransition.h ../corelib/statemachine/qeventtransition.h ../corelib/statemachine/qfinalstate.h ../corelib/statemachine/qhistorystate.h ../corelib/statemachine/qsignaltransition.h ../corelib/statemachine/qstate.h ../corelib/statemachine/qstatemachine.h ../corelib/arch/qatomic_alpha.h ../corelib/arch/qatomic_arch.h ../corelib/arch/qatomic_arm.h ../corelib/arch/qatomic_armv5.h ../corelib/arch/qatomic_armv6.h ../corelib/arch/qatomic_armv7.h ../corelib/arch/qatomic_avr32.h ../corelib/arch/qatomic_bfin.h ../corelib/arch/qatomic_bootstrap.h ../corelib/arch/qatomic_generic.h ../corelib/arch/qatomic_i386.h ../corelib/arch/qatomic_ia64.h ../corelib/arch/qatomic_integrity.h ../corelib/arch/qatomic_m68k.h ../corelib/arch/qatomic_macosx.h ../corelib/arch/qatomic_mips.h ../corelib/arch/qatomic_parisc.h ../corelib/arch/qatomic_powerpc.h ../corelib/arch/qatomic_s390.h ../corelib/arch/qatomic_sh.h ../corelib/arch/qatomic_sh4a.h ../corelib/arch/qatomic_sparc.h ../corelib/arch/qatomic_symbian.h ../corelib/arch/qatomic_vxworks.h ../corelib/arch/qatomic_windows.h ../corelib/arch/qatomic_windowsce.h ../corelib/arch/qatomic_x86_64.h ../corelib/thread/qatomic.h ../corelib/thread/qbasicatomic.h ../corelib/thread/qmutex.h ../corelib/thread/qreadwritelock.h ../corelib/thread/qsemaphore.h ../corelib/thread/qthread.h ../corelib/thread/qthreadstorage.h ../corelib/thread/qwaitcondition.h ../corelib/xml/qxmlstream.h ../corelib/concurrent/qfuture.h ../corelib/concurrent/qfutureinterface.h ../corelib/concurrent/qfuturesynchronizer.h ../corelib/concurrent/qfuturewatcher.h ../corelib/concurrent/qrunnable.h ../corelib/concurrent/qtconcurrentcompilertest.h ../corelib/concurrent/qtconcurrentexception.h ../corelib/concurrent/qtconcurrentfilter.h ../corelib/concurrent/qtconcurrentfilterkernel.h ../corelib/concurrent/qtconcurrentfunctionwrappers.h ../corelib/concurrent/qtconcurrentiteratekernel.h ../corelib/concurrent/qtconcurrentmap.h ../corelib/concurrent/qtconcurrentmapkernel.h ../corelib/concurrent/qtconcurrentmedian.h ../corelib/concurrent/qtconcurrentreducekernel.h ../corelib/concurrent/qtconcurrentresultstore.h ../corelib/concurrent/qtconcurrentrun.h ../corelib/concurrent/qtconcurrentrunbase.h ../corelib/concurrent/qtconcurrentstoredfunctioncall.h ../corelib/concurrent/qtconcurrentthreadengine.h ../corelib/concurrent/qthreadpool.h ../corelib/kernel/qabstracteventdispatcher.h ../corelib/kernel/qabstractitemmodel.h ../corelib/kernel/qbasictimer.h ../corelib/kernel/qcoreapplication.h ../corelib/kernel/qcoreevent.h ../corelib/kernel/qeventloop.h ../corelib/kernel/qfunctions_nacl.h ../corelib/kernel/qfunctions_vxworks.h ../corelib/kernel/qfunctions_wince.h ../corelib/kernel/qmath.h ../corelib/kernel/qmetaobject.h ../corelib/kernel/qmetatype.h ../corelib/kernel/qmimedata.h ../corelib/kernel/qobject.h ../corelib/kernel/qobjectcleanuphandler.h ../corelib/kernel/qobjectdefs.h ../corelib/kernel/qpointer.h ../corelib/kernel/qsharedmemory.h ../corelib/kernel/qsignalmapper.h ../corelib/kernel/qsocketnotifier.h ../corelib/kernel/qsystemsemaphore.h ../corelib/kernel/qtimer.h ../corelib/kernel/qtranslator.h ../corelib/kernel/qvariant.h ../corelib/plugin/qfactoryinterface.h ../corelib/plugin/qlibrary.h ../corelib/plugin/qplugin.h ../corelib/plugin/qpluginloader.h ../corelib/plugin/quuid.h ../corelib/global/qconfig-dist.h ../corelib/global/qconfig-large.h ../corelib/global/qconfig-medium.h ../corelib/global/qconfig-minimal.h ../corelib/global/qconfig-nacl.h ../corelib/global/qconfig-small.h ../corelib/global/qendian.h ../corelib/global/qfeatures.h ../corelib/global/qglobal.h ../corelib/global/qlibraryinfo.h ../corelib/global/qnamespace.h ../corelib/global/qnumeric.h ../corelib/global/qt_windows.h ../corelib/global/qconfig.h ../corelib/codecs/qtextcodec.h ../corelib/codecs/qtextcodecplugin.h ../corelib/io/qabstractfileengine.h ../corelib/io/qbuffer.h ../corelib/io/qdatastream.h ../corelib/io/qdebug.h ../corelib/io/qdir.h ../corelib/io/qdiriterator.h ../corelib/io/qfile.h ../corelib/io/qfileinfo.h ../corelib/io/qfilesystemwatcher.h ../corelib/io/qfsfileengine.h ../corelib/io/qiodevice.h ../corelib/io/qprocess.h ../corelib/io/qresource.h ../corelib/io/qsettings.h ../corelib/io/qtemporaryfile.h ../corelib/io/qtextstream.h ../corelib/io/qurl.h ../corelib/animation/qabstractanimation.h ../corelib/animation/qanimationgroup.h ../corelib/animation/qparallelanimationgroup.h ../corelib/animation/qpauseanimation.h ../corelib/animation/qpropertyanimation.h ../corelib/animation/qsequentialanimationgroup.h ../corelib/animation/qvariantanimation.h ../corelib/tools/qalgorithms.h ../corelib/tools/qbitarray.h ../corelib/tools/qbytearray.h ../corelib/tools/qbytearraymatcher.h ../corelib/tools/qcache.h ../corelib/tools/qchar.h ../corelib/tools/qcontainerfwd.h ../corelib/tools/qcontiguouscache.h ../corelib/tools/qcryptographichash.h ../corelib/tools/qdatetime.h ../corelib/tools/qeasingcurve.h ../corelib/tools/qelapsedtimer.h ../corelib/tools/qhash.h ../corelib/tools/qiterator.h ../corelib/tools/qline.h ../corelib/tools/qlinkedlist.h ../corelib/tools/qlist.h ../corelib/tools/qlocale.h ../corelib/tools/qlocale_blackberry.h ../corelib/tools/qmap.h ../corelib/tools/qmargins.h ../corelib/tools/qpair.h ../corelib/tools/qpoint.h ../corelib/tools/qqueue.h ../corelib/tools/qrect.h ../corelib/tools/qregexp.h ../corelib/tools/qscopedpointer.h ../corelib/tools/qscopedvaluerollback.h ../corelib/tools/qset.h ../corelib/tools/qshareddata.h ../corelib/tools/qsharedpointer.h ../corelib/tools/qsharedpointer_impl.h ../corelib/tools/qsize.h ../corelib/tools/qstack.h ../corelib/tools/qstring.h ../corelib/tools/qstringbuilder.h ../corelib/tools/qstringlist.h ../corelib/tools/qstringmatcher.h ../corelib/tools/qtextboundaryfinder.h ../corelib/tools/qtimeline.h ../corelib/tools/qvarlengtharray.h ../corelib/tools/qvector.h ../../include/QtCore/QtCore
16+SYNCQT.HEADER_FILES = ../corelib/statemachine/qabstractstate.h ../corelib/statemachine/qabstracttransition.h ../corelib/statemachine/qeventtransition.h ../corelib/statemachine/qfinalstate.h ../corelib/statemachine/qhistorystate.h ../corelib/statemachine/qsignaltransition.h ../corelib/statemachine/qstate.h ../corelib/statemachine/qstatemachine.h ../corelib/arch/qatomic_alpha.h ../corelib/arch/qatomic_arch.h ../corelib/arch/qatomic_arm.h ../corelib/arch/qatomic_armv5.h ../corelib/arch/qatomic_armv6.h ../corelib/arch/qatomic_armv7.h ../corelib/arch/qatomic_aarch64.h ../corelib/arch/qatomic_avr32.h ../corelib/arch/qatomic_bfin.h ../corelib/arch/qatomic_bootstrap.h ../corelib/arch/qatomic_generic.h ../corelib/arch/qatomic_i386.h ../corelib/arch/qatomic_ia64.h ../corelib/arch/qatomic_integrity.h ../corelib/arch/qatomic_m68k.h ../corelib/arch/qatomic_macosx.h ../corelib/arch/qatomic_mips.h ../corelib/arch/qatomic_parisc.h ../corelib/arch/qatomic_powerpc.h ../corelib/arch/qatomic_s390.h ../corelib/arch/qatomic_sh.h ../corelib/arch/qatomic_sh4a.h ../corelib/arch/qatomic_sparc.h ../corelib/arch/qatomic_symbian.h ../corelib/arch/qatomic_vxworks.h ../corelib/arch/qatomic_windows.h ../corelib/arch/qatomic_windowsce.h ../corelib/arch/qatomic_x86_64.h ../corelib/thread/qatomic.h ../corelib/thread/qbasicatomic.h ../corelib/thread/qmutex.h ../corelib/thread/qreadwritelock.h ../corelib/thread/qsemaphore.h ../corelib/thread/qthread.h ../corelib/thread/qthreadstorage.h ../corelib/thread/qwaitcondition.h ../corelib/xml/qxmlstream.h ../corelib/concurrent/qfuture.h ../corelib/concurrent/qfutureinterface.h ../corelib/concurrent/qfuturesynchronizer.h ../corelib/concurrent/qfuturewatcher.h ../corelib/concurrent/qrunnable.h ../corelib/concurrent/qtconcurrentcompilertest.h ../corelib/concurrent/qtconcurrentexception.h ../corelib/concurrent/qtconcurrentfilter.h ../corelib/concurrent/qtconcurrentfilterkernel.h ../corelib/concurrent/qtconcurrentfunctionwrappers.h ../corelib/concurrent/qtconcurrentiteratekernel.h ../corelib/concurrent/qtconcurrentmap.h ../corelib/concurrent/qtconcurrentmapkernel.h ../corelib/concurrent/qtconcurrentmedian.h ../corelib/concurrent/qtconcurrentreducekernel.h ../corelib/concurrent/qtconcurrentresultstore.h ../corelib/concurrent/qtconcurrentrun.h ../corelib/concurrent/qtconcurrentrunbase.h ../corelib/concurrent/qtconcurrentstoredfunctioncall.h ../corelib/concurrent/qtconcurrentthreadengine.h ../corelib/concurrent/qthreadpool.h ../corelib/kernel/qabstracteventdispatcher.h ../corelib/kernel/qabstractitemmodel.h ../corelib/kernel/qbasictimer.h ../corelib/kernel/qcoreapplication.h ../corelib/kernel/qcoreevent.h ../corelib/kernel/qeventloop.h ../corelib/kernel/qfunctions_nacl.h ../corelib/kernel/qfunctions_vxworks.h ../corelib/kernel/qfunctions_wince.h ../corelib/kernel/qmath.h ../corelib/kernel/qmetaobject.h ../corelib/kernel/qmetatype.h ../corelib/kernel/qmimedata.h ../corelib/kernel/qobject.h ../corelib/kernel/qobjectcleanuphandler.h ../corelib/kernel/qobjectdefs.h ../corelib/kernel/qpointer.h ../corelib/kernel/qsharedmemory.h ../corelib/kernel/qsignalmapper.h ../corelib/kernel/qsocketnotifier.h ../corelib/kernel/qsystemsemaphore.h ../corelib/kernel/qtimer.h ../corelib/kernel/qtranslator.h ../corelib/kernel/qvariant.h ../corelib/plugin/qfactoryinterface.h ../corelib/plugin/qlibrary.h ../corelib/plugin/qplugin.h ../corelib/plugin/qpluginloader.h ../corelib/plugin/quuid.h ../corelib/global/qconfig-dist.h ../corelib/global/qconfig-large.h ../corelib/global/qconfig-medium.h ../corelib/global/qconfig-minimal.h ../corelib/global/qconfig-nacl.h ../corelib/global/qconfig-small.h ../corelib/global/qendian.h ../corelib/global/qfeatures.h ../corelib/global/qglobal.h ../corelib/global/qlibraryinfo.h ../corelib/global/qnamespace.h ../corelib/global/qnumeric.h ../corelib/global/qt_windows.h ../corelib/global/qconfig.h ../corelib/codecs/qtextcodec.h ../corelib/codecs/qtextcodecplugin.h ../corelib/io/qabstractfileengine.h ../corelib/io/qbuffer.h ../corelib/io/qdatastream.h ../corelib/io/qdebug.h ../corelib/io/qdir.h ../corelib/io/qdiriterator.h ../corelib/io/qfile.h ../corelib/io/qfileinfo.h ../corelib/io/qfilesystemwatcher.h ../corelib/io/qfsfileengine.h ../corelib/io/qiodevice.h ../corelib/io/qprocess.h ../corelib/io/qresource.h ../corelib/io/qsettings.h ../corelib/io/qtemporaryfile.h ../corelib/io/qtextstream.h ../corelib/io/qurl.h ../corelib/animation/qabstractanimation.h ../corelib/animation/qanimationgroup.h ../corelib/animation/qparallelanimationgroup.h ../corelib/animation/qpauseanimation.h ../corelib/animation/qpropertyanimation.h ../corelib/animation/qsequentialanimationgroup.h ../corelib/animation/qvariantanimation.h ../corelib/tools/qalgorithms.h ../corelib/tools/qbitarray.h ../corelib/tools/qbytearray.h ../corelib/tools/qbytearraymatcher.h ../corelib/tools/qcache.h ../corelib/tools/qchar.h ../corelib/tools/qcontainerfwd.h ../corelib/tools/qcontiguouscache.h ../corelib/tools/qcryptographichash.h ../corelib/tools/qdatetime.h ../corelib/tools/qeasingcurve.h ../corelib/tools/qelapsedtimer.h ../corelib/tools/qhash.h ../corelib/tools/qiterator.h ../corelib/tools/qline.h ../corelib/tools/qlinkedlist.h ../corelib/tools/qlist.h ../corelib/tools/qlocale.h ../corelib/tools/qlocale_blackberry.h ../corelib/tools/qmap.h ../corelib/tools/qmargins.h ../corelib/tools/qpair.h ../corelib/tools/qpoint.h ../corelib/tools/qqueue.h ../corelib/tools/qrect.h ../corelib/tools/qregexp.h ../corelib/tools/qscopedpointer.h ../corelib/tools/qscopedvaluerollback.h ../corelib/tools/qset.h ../corelib/tools/qshareddata.h ../corelib/tools/qsharedpointer.h ../corelib/tools/qsharedpointer_impl.h ../corelib/tools/qsize.h ../corelib/tools/qstack.h ../corelib/tools/qstring.h ../corelib/tools/qstringbuilder.h ../corelib/tools/qstringlist.h ../corelib/tools/qstringmatcher.h ../corelib/tools/qtextboundaryfinder.h ../corelib/tools/qtimeline.h ../corelib/tools/qvarlengtharray.h ../corelib/tools/qvector.h ../../include/QtCore/QtCore
17 SYNCQT.HEADER_CLASSES = ../../include/QtCore/QAbstractState ../../include/QtCore/QAbstractTransition ../../include/QtCore/QEventTransition ../../include/QtCore/QFinalState ../../include/QtCore/QHistoryState ../../include/QtCore/QSignalTransition ../../include/QtCore/QState ../../include/QtCore/QStateMachine ../../include/QtCore/QAtomicInt ../../include/QtCore/QAtomicPointer ../../include/QtCore/QBasicAtomicInt ../../include/QtCore/QBasicAtomicPointer ../../include/QtCore/QMutex ../../include/QtCore/QMutexLocker ../../include/QtCore/QMutexData ../../include/QtCore/QReadWriteLock ../../include/QtCore/QReadLocker ../../include/QtCore/QWriteLocker ../../include/QtCore/QSemaphore ../../include/QtCore/QThread ../../include/QtCore/QThreadStorageData ../../include/QtCore/QThreadStorage ../../include/QtCore/QWaitCondition ../../include/QtCore/QXmlStreamStringRef ../../include/QtCore/QXmlStreamAttribute ../../include/QtCore/QXmlStreamAttributes ../../include/QtCore/QXmlStreamNamespaceDeclaration ../../include/QtCore/QXmlStreamNamespaceDeclarations ../../include/QtCore/QXmlStreamNotationDeclaration ../../include/QtCore/QXmlStreamNotationDeclarations ../../include/QtCore/QXmlStreamEntityDeclaration ../../include/QtCore/QXmlStreamEntityDeclarations ../../include/QtCore/QXmlStreamEntityResolver ../../include/QtCore/QXmlStreamReader ../../include/QtCore/QXmlStreamWriter ../../include/QtCore/QFuture ../../include/QtCore/QFutureIterator ../../include/QtCore/QMutableFutureIterator ../../include/QtCore/QFutureInterfaceBase ../../include/QtCore/QFutureInterface ../../include/QtCore/QFutureSynchronizer ../../include/QtCore/QFutureWatcherBase ../../include/QtCore/QFutureWatcher ../../include/QtCore/QRunnable ../../include/QtCore/QtConcurrentFilter ../../include/QtCore/QtConcurrentMap ../../include/QtCore/QtConcurrentRun ../../include/QtCore/QThreadPool ../../include/QtCore/QAbstractEventDispatcher ../../include/QtCore/QModelIndex ../../include/QtCore/QPersistentModelIndex ../../include/QtCore/QModelIndexList ../../include/QtCore/QAbstractItemModel ../../include/QtCore/QAbstractTableModel ../../include/QtCore/QAbstractListModel ../../include/QtCore/QBasicTimer ../../include/QtCore/QCoreApplication ../../include/QtCore/QtCleanUpFunction ../../include/QtCore/QEvent ../../include/QtCore/QTimerEvent ../../include/QtCore/QChildEvent ../../include/QtCore/QCustomEvent ../../include/QtCore/QDynamicPropertyChangeEvent ../../include/QtCore/QEventLoop ../../include/QtCore/QMetaMethod ../../include/QtCore/QMetaEnum ../../include/QtCore/QMetaProperty ../../include/QtCore/QMetaClassInfo ../../include/QtCore/QMetaType ../../include/QtCore/QMetaTypeId ../../include/QtCore/QMetaTypeId2 ../../include/QtCore/QMimeData ../../include/QtCore/QObjectList ../../include/QtCore/QObjectData ../../include/QtCore/QObject ../../include/QtCore/QObjectUserData ../../include/QtCore/QObjectCleanupHandler ../../include/QtCore/QGenericArgument ../../include/QtCore/QGenericReturnArgument ../../include/QtCore/QArgument ../../include/QtCore/QReturnArgument ../../include/QtCore/QMetaObject ../../include/QtCore/QMetaObjectAccessor ../../include/QtCore/QMetaObjectExtraData ../../include/QtCore/QPointer ../../include/QtCore/QSharedMemory ../../include/QtCore/QSignalMapper ../../include/QtCore/QSocketNotifier ../../include/QtCore/QSystemSemaphore ../../include/QtCore/QTimer ../../include/QtCore/QTranslator ../../include/QtCore/QVariant ../../include/QtCore/QVariantList ../../include/QtCore/QVariantMap ../../include/QtCore/QVariantHash ../../include/QtCore/QVariantComparisonHelper ../../include/QtCore/QFactoryInterface ../../include/QtCore/QLibrary ../../include/QtCore/QtPlugin ../../include/QtCore/QtPluginInstanceFunction ../../include/QtCore/QPluginLoader ../../include/QtCore/QUuid ../../include/QtCore/QtEndian ../../include/QtCore/QtGlobal ../../include/QtCore/QIntegerForSize ../../include/QtCore/QNoImplicitBoolCast ../../include/QtCore/Q_INT8 ../../include/QtCore/Q_UINT8 ../../include/QtCore/Q_INT16 ../../include/QtCore/Q_UINT16 ../../include/QtCore/Q_INT32 ../../include/QtCore/Q_UINT32 ../../include/QtCore/Q_INT64 ../../include/QtCore/Q_UINT64 ../../include/QtCore/Q_LLONG ../../include/QtCore/Q_ULLONG ../../include/QtCore/Q_LONG ../../include/QtCore/Q_ULONG ../../include/QtCore/QSysInfo ../../include/QtCore/QtMsgHandler ../../include/QtCore/QGlobalStatic ../../include/QtCore/QGlobalStaticDeleter ../../include/QtCore/QBool ../../include/QtCore/QTypeInfo ../../include/QtCore/QFlag ../../include/QtCore/QIncompatibleFlag ../../include/QtCore/QFlags ../../include/QtCore/QForeachContainer ../../include/QtCore/QForeachContainerBase ../../include/QtCore/QLibraryInfo ../../include/QtCore/Qt ../../include/QtCore/QInternal ../../include/QtCore/QCOORD ../../include/QtCore/QtConfig ../../include/QtCore/QTextCodec ../../include/QtCore/QTextEncoder ../../include/QtCore/QTextDecoder ../../include/QtCore/QTextCodecFactoryInterface ../../include/QtCore/QTextCodecPlugin ../../include/QtCore/QAbstractFileEngine ../../include/QtCore/QAbstractFileEngineHandler ../../include/QtCore/QAbstractFileEngineIterator ../../include/QtCore/QBuffer ../../include/QtCore/QDataStream ../../include/QtCore/QtDebug ../../include/QtCore/QDebug ../../include/QtCore/QNoDebug ../../include/QtCore/QDir ../../include/QtCore/QDirIterator ../../include/QtCore/QFile ../../include/QtCore/QFileInfo ../../include/QtCore/QFileInfoList ../../include/QtCore/QFileInfoListIterator ../../include/QtCore/QFileSystemWatcher ../../include/QtCore/QFSFileEngine ../../include/QtCore/QIODevice ../../include/QtCore/Q_PID ../../include/QtCore/QProcessEnvironment ../../include/QtCore/QProcess ../../include/QtCore/QResource ../../include/QtCore/QSettings ../../include/QtCore/QTemporaryFile ../../include/QtCore/QTextStream ../../include/QtCore/QTextStreamFunction ../../include/QtCore/QTextStreamManipulator ../../include/QtCore/QTS ../../include/QtCore/QTextIStream ../../include/QtCore/QTextOStream ../../include/QtCore/QUrl ../../include/QtCore/QAbstractAnimation ../../include/QtCore/QAnimationDriver ../../include/QtCore/QAnimationGroup ../../include/QtCore/QParallelAnimationGroup ../../include/QtCore/QPauseAnimation ../../include/QtCore/QPropertyAnimation ../../include/QtCore/QSequentialAnimationGroup ../../include/QtCore/QVariantAnimation ../../include/QtCore/QtAlgorithms ../../include/QtCore/QBitArray ../../include/QtCore/QBitRef ../../include/QtCore/QByteArray ../../include/QtCore/QByteRef ../../include/QtCore/QByteArrayMatcher ../../include/QtCore/QCache ../../include/QtCore/QLatin1Char ../../include/QtCore/QChar ../../include/QtCore/QtContainerFwd ../../include/QtCore/QContiguousCacheData ../../include/QtCore/QContiguousCacheTypedData ../../include/QtCore/QContiguousCache ../../include/QtCore/QCryptographicHash ../../include/QtCore/QDate ../../include/QtCore/QTime ../../include/QtCore/QDateTime ../../include/QtCore/QEasingCurve ../../include/QtCore/QElapsedTimer ../../include/QtCore/QHashData ../../include/QtCore/QHashDummyValue ../../include/QtCore/QHashDummyNode ../../include/QtCore/QHashNode ../../include/QtCore/QHash ../../include/QtCore/QMultiHash ../../include/QtCore/QHashIterator ../../include/QtCore/QMutableHashIterator ../../include/QtCore/QLine ../../include/QtCore/QLineF ../../include/QtCore/QLinkedListData ../../include/QtCore/QLinkedListNode ../../include/QtCore/QLinkedList ../../include/QtCore/QLinkedListIterator ../../include/QtCore/QMutableLinkedListIterator ../../include/QtCore/QListData ../../include/QtCore/QList ../../include/QtCore/QListIterator ../../include/QtCore/QMutableListIterator ../../include/QtCore/QSystemLocale ../../include/QtCore/QLocale ../../include/QtCore/QBBSystemLocaleData ../../include/QtCore/QMapData ../../include/QtCore/QMapNode ../../include/QtCore/QMapPayloadNode ../../include/QtCore/QMap ../../include/QtCore/QMultiMap ../../include/QtCore/QMapIterator ../../include/QtCore/QMutableMapIterator ../../include/QtCore/QMargins ../../include/QtCore/QPair ../../include/QtCore/QPoint ../../include/QtCore/QPointF ../../include/QtCore/QQueue ../../include/QtCore/QRect ../../include/QtCore/QRectF ../../include/QtCore/QRegExp ../../include/QtCore/QScopedPointerDeleter ../../include/QtCore/QScopedPointerArrayDeleter ../../include/QtCore/QScopedPointerPodDeleter ../../include/QtCore/QScopedPointer ../../include/QtCore/QScopedArrayPointer ../../include/QtCore/QScopedValueRollback ../../include/QtCore/QSet ../../include/QtCore/QSetIterator ../../include/QtCore/QMutableSetIterator ../../include/QtCore/QSharedData ../../include/QtCore/QSharedDataPointer ../../include/QtCore/QExplicitlySharedDataPointer ../../include/QtCore/QSharedPointer ../../include/QtCore/QWeakPointer ../../include/QtCore/QSize ../../include/QtCore/QSizeF ../../include/QtCore/QStack ../../include/QtCore/QStdWString ../../include/QtCore/QString ../../include/QtCore/QLatin1String ../../include/QtCore/QCharRef ../../include/QtCore/QConstString ../../include/QtCore/QStringRef ../../include/QtCore/QLatin1Literal ../../include/QtCore/QAbstractConcatenable ../../include/QtCore/QConcatenable ../../include/QtCore/QStringBuilder ../../include/QtCore/QStringListIterator ../../include/QtCore/QMutableStringListIterator ../../include/QtCore/QStringList ../../include/QtCore/QStringMatcher ../../include/QtCore/QTextBoundaryFinder ../../include/QtCore/QTimeLine ../../include/QtCore/QVarLengthArray ../../include/QtCore/QVectorData ../../include/QtCore/QVectorTypedData ../../include/QtCore/QVector ../../include/QtCore/QVectorIterator ../../include/QtCore/QMutableVectorIterator
18 SYNCQT.PRIVATE_HEADER_FILES = ../corelib/statemachine/qabstractstate_p.h ../corelib/statemachine/qabstracttransition_p.h ../corelib/statemachine/qeventtransition_p.h ../corelib/statemachine/qhistorystate_p.h ../corelib/statemachine/qsignaleventgenerator_p.h ../corelib/statemachine/qsignaltransition_p.h ../corelib/statemachine/qstate_p.h ../corelib/statemachine/qstatemachine_p.h ../corelib/thread/qmutex_p.h ../corelib/thread/qmutexpool_p.h ../corelib/thread/qorderedmutexlocker_p.h ../corelib/thread/qreadwritelock_p.h ../corelib/thread/qthread_p.h ../corelib/xml/qxmlstream_p.h ../corelib/xml/qxmlutils_p.h ../corelib/concurrent/qfutureinterface_p.h ../corelib/concurrent/qfuturewatcher_p.h ../corelib/concurrent/qthreadpool_p.h ../corelib/kernel/qabstracteventdispatcher_p.h ../corelib/kernel/qabstractitemmodel_p.h ../corelib/kernel/qcore_mac_p.h ../corelib/kernel/qcore_symbian_p.h ../corelib/kernel/qcore_unix_p.h ../corelib/kernel/qcoreapplication_p.h ../corelib/kernel/qcorecmdlineargs_p.h ../corelib/kernel/qcoreglobaldata_p.h ../corelib/kernel/qcrashhandler_p.h ../corelib/kernel/qeventdispatcher_blackberry_p.h ../corelib/kernel/qeventdispatcher_glib_p.h ../corelib/kernel/qeventdispatcher_symbian_p.h ../corelib/kernel/qeventdispatcher_unix_p.h ../corelib/kernel/qeventdispatcher_win_p.h ../corelib/kernel/qfunctions_p.h ../corelib/kernel/qmetaobject_p.h ../corelib/kernel/qobject_p.h ../corelib/kernel/qsharedmemory_p.h ../corelib/kernel/qsystemerror_p.h ../corelib/kernel/qsystemsemaphore_p.h ../corelib/kernel/qtranslator_p.h ../corelib/kernel/qvariant_p.h ../corelib/kernel/qwineventnotifier_p.h ../corelib/plugin/qelfparser_p.h ../corelib/plugin/qfactoryloader_p.h ../corelib/plugin/qlibrary_p.h ../corelib/plugin/qsystemlibrary_p.h ../corelib/global/qnumeric_p.h ../corelib/global/qt_pch.h ../corelib/codecs/qfontlaocodec_p.h ../corelib/codecs/qiconvcodec_p.h ../corelib/codecs/qisciicodec_p.h ../corelib/codecs/qlatincodec_p.h ../corelib/codecs/qsimplecodec_p.h ../corelib/codecs/qtextcodec_p.h ../corelib/codecs/qtsciicodec_p.h ../corelib/codecs/qutfcodec_p.h ../corelib/io/qabstractfileengine_p.h ../corelib/io/qdatastream_p.h ../corelib/io/qdataurl_p.h ../corelib/io/qdir_p.h ../corelib/io/qfile_p.h ../corelib/io/qfileinfo_p.h ../corelib/io/qfilesystemengine_p.h ../corelib/io/qfilesystementry_p.h ../corelib/io/qfilesystemiterator_p.h ../corelib/io/qfilesystemmetadata_p.h ../corelib/io/qfilesystemwatcher_dnotify_p.h ../corelib/io/qfilesystemwatcher_fsevents_p.h ../corelib/io/qfilesystemwatcher_inotify_p.h ../corelib/io/qfilesystemwatcher_kqueue_p.h ../corelib/io/qfilesystemwatcher_p.h ../corelib/io/qfilesystemwatcher_symbian_p.h ../corelib/io/qfilesystemwatcher_win_p.h ../corelib/io/qfsfileengine_iterator_p.h ../corelib/io/qfsfileengine_p.h ../corelib/io/qiodevice_p.h ../corelib/io/qnoncontiguousbytedevice_p.h ../corelib/io/qprocess_p.h ../corelib/io/qresource_iterator_p.h ../corelib/io/qresource_p.h ../corelib/io/qsettings_p.h ../corelib/io/qtldurl_p.h ../corelib/io/qurltlds_p.h ../corelib/io/qwindowspipewriter_p.h ../corelib/animation/qabstractanimation_p.h ../corelib/animation/qanimationgroup_p.h ../corelib/animation/qparallelanimationgroup_p.h ../corelib/animation/qpropertyanimation_p.h ../corelib/animation/qsequentialanimationgroup_p.h ../corelib/animation/qvariantanimation_p.h ../corelib/tools/qbytedata_p.h ../corelib/tools/qdatetime_p.h ../corelib/tools/qharfbuzz_p.h ../corelib/tools/qlocale_data_p.h ../corelib/tools/qlocale_p.h ../corelib/tools/qlocale_tools_p.h ../corelib/tools/qpodlist_p.h ../corelib/tools/qringbuffer_p.h ../corelib/tools/qscopedpointer_p.h ../corelib/tools/qsimd_p.h ../corelib/tools/qtools_p.h ../corelib/tools/qunicodetables_p.h
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0033-configure-support-c-0x-standard-for-directfd.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0033-configure-support-c-0x-standard-for-directfd.patch
new file mode 100644
index 0000000000..f3face5755
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0033-configure-support-c-0x-standard-for-directfd.patch
@@ -0,0 +1,40 @@
1configure: support c++0x standard for directfd
2
3While directfd upgrade to 1.7.6, it always includes directfb++ utils
4when C++ is used and set c++0x as c++ standard.
5(In git://git.directfb.org/git/directfb/core/DirectFB.git
6commit b444bcae3197be9faf883460dcc239ef757d5922, and commit
7522beeb76f2a8d2dee30d928d2a5955bd06cf25c)
8
9The directfd in qt4 is c++, and there was a build failure:
10...
11| qdirectfbwindowsurface.cpp:336:69: error: in C++98 'rect' must be
12initialized by constructor, not by '{...}'
13| const DFBRectangle rect = { r.x(), r.y(), r.width(), r.height() };
14...
15
16The g++ used c++98 as default c++ standard, we should
17explicitly set c++0x for directfd in qt4.
18
19Upstream-Status: Pending
20
21Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
22---
23 configure | 1 +
24 1 file changed, 1 insertion(+)
25
26diff --git a/configure b/configure
27index 5724bd6..ecc2f8b 100755
28--- a/configure
29+++ b/configure
30@@ -6656,6 +6656,7 @@ if [ "$PLATFORM_QWS" = "yes" ]; then
31 if [ "${screen}" = "directfb" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
32 if test -n "$PKG_CONFIG" && "$PKG_CONFIG" --exists directfb 2>/dev/null; then
33 QT_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
34+ QT_CFLAGS_DIRECTFB="$QT_CFLAGS_DIRECTFB -std=c++0x"
35 QT_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
36 elif directfb-config --version >/dev/null 2>&1; then
37 QT_CFLAGS_DIRECTFB=`directfb-config --cflags 2>/dev/null`
38--
391.9.1
40
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/0034-Fix-a-division-by-zero-when-processing-malformed-BMP.patch b/meta/recipes-qt/qt4/qt4-4.8.6/0034-Fix-a-division-by-zero-when-processing-malformed-BMP.patch
new file mode 100644
index 0000000000..8ff4ad5062
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/0034-Fix-a-division-by-zero-when-processing-malformed-BMP.patch
@@ -0,0 +1,44 @@
1From e50aa2252cdd5cb53eef7d8c4503c7edff634f68 Mon Sep 17 00:00:00 2001
2From: "Richard J. Moore" <rich@kde.org>
3Date: Tue, 24 Feb 2015 19:02:35 +0000
4Subject: [PATCH] Fix a division by zero when processing malformed BMP files.
5
6This fixes a division by 0 when processing a maliciously crafted BMP
7file. No impact beyond DoS.
8
9Backport of 661f6bfd032dacc62841037732816a583640e187
10
11Upstream-Status: Backport
12
13Task-number: QTBUG-44547
14Change-Id: I43f06e752b11cb50669101460902a82b885ae618
15Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
16Signed-off-by: Jonathan Liu <net147@gmail.com>
17---
18 src/gui/image/qbmphandler.cpp | 6 ++++++
19 1 file changed, 6 insertions(+)
20
21diff --git a/src/gui/image/qbmphandler.cpp b/src/gui/image/qbmphandler.cpp
22index b22e842..30fa9e0 100644
23--- a/src/gui/image/qbmphandler.cpp
24+++ b/src/gui/image/qbmphandler.cpp
25@@ -319,10 +319,16 @@ static bool read_dib_body(QDataStream &s, const BMP_INFOHDR &bi, int offset, int
26 }
27 } else if (comp == BMP_BITFIELDS && (nbits == 16 || nbits == 32)) {
28 red_shift = calc_shift(red_mask);
29+ if (((red_mask >> red_shift) + 1) == 0)
30+ return false;
31 red_scale = 256 / ((red_mask >> red_shift) + 1);
32 green_shift = calc_shift(green_mask);
33+ if (((green_mask >> green_shift) + 1) == 0)
34+ return false;
35 green_scale = 256 / ((green_mask >> green_shift) + 1);
36 blue_shift = calc_shift(blue_mask);
37+ if (((blue_mask >> blue_shift) + 1) == 0)
38+ return false;
39 blue_scale = 256 / ((blue_mask >> blue_shift) + 1);
40 } else if (comp == BMP_RGB && (nbits == 24 || nbits == 32)) {
41 blue_mask = 0x000000ff;
42--
432.3.1
44
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/Fix-QWSLock-invalid-argument-logs.patch b/meta/recipes-qt/qt4/qt4-4.8.6/Fix-QWSLock-invalid-argument-logs.patch
new file mode 100644
index 0000000000..1f5f00f716
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/Fix-QWSLock-invalid-argument-logs.patch
@@ -0,0 +1,98 @@
1From 52c34001bad85c3032618070b1d6b2a3c6880715 Mon Sep 17 00:00:00 2001
2From: Neil Jerram <n...@ossau.homelinux.net>
3Date: Thu, 8 Nov 2012 08:18:32 +0000
4Subject: [PATCH] Fix QWSLock "invalid argument" logs
5
6There was no known actual problem associated with these logs, but they
7were spamming the log, so I thought it worth trying to understand and
8fix them.
9
10The confusion is that there are two different ways of creating QWSLock
11objects. "QWSLock()" creates an object that creates a new set of
12semaphores, whereas "QWSLock(id)" creates an object that aliases the
13existing set of semaphores with ID id. What seems to happen is that
14each application creates a semaphore set scoped to that
15application (QWSDisplay::Data::clientLock in qapplication_qws.cpp),
16then this semaphore set is passed by complex means to
17places (QWSClientPrivate and QWSMemorySurface) that use the semaphores
18for a short period and then delete their QWSLock objects.
19
20The problem was that the QWSLock destructor always destroyed the
21semaphore set, even when that QWSLock hadn't create the semaphores
22itself, hence making the semaphores invalid for other QWSLock objects
23still referencing the same set.
24
25Clearly a QWSLock object shouldn't destroy the semaphore set if it
26didn't create it itself, and that is confirmed by the fact that one of
27the implementations inside QWSLock already implements this logic, with
28the 'owned' flag. The fix is to implement this for the #ifndef
29QT_POSIX_IPC case - which is what is used in QtMoko - just as is
30already implemented for the #ifdef QT_POSIX_IPC case.
31
32Original patch can be found here:
33 http://www.mail-archive.com/community@lists.openmoko.org/msg65512.html
34
35Upstream-Status: Submitted
36
37Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
38 (Removed the commented-out debug statements from the original patch.)
39
40---
41
42diff --git a/src/gui/embedded/qwslock.cpp b/src/gui/embedded/qwslock.cpp
43index 9914a24..1055785 100644
44--- a/src/gui/embedded/qwslock.cpp
45+++ b/src/gui/embedded/qwslock.cpp
46@@ -83,9 +83,12 @@ QWSLock::QWSLock(int id) : semId(id)
47 QWSSignalHandler::instance()->addWSLock(this);
48 #endif
49
50+ owned = false;
51+
52 #ifndef QT_POSIX_IPC
53 if (semId == -1) {
54 semId = semget(IPC_PRIVATE, 3, IPC_CREAT | 0666);
55+ owned = true;
56 if (semId == -1) {
57 perror("QWSLock::QWSLock");
58 qFatal("Unable to create semaphore");
59@@ -100,7 +104,6 @@ QWSLock::QWSLock(int id) : semId(id)
60 }
61 #else
62 sems[0] = sems[1] = sems[2] = SEM_FAILED;
63- owned = false;
64
65 if (semId == -1) {
66 // ### generate really unique IDs
67@@ -134,9 +137,11 @@ QWSLock::~QWSLock()
68
69 if (semId != -1) {
70 #ifndef QT_POSIX_IPC
71- qt_semun semval;
72- semval.val = 0;
73- semctl(semId, 0, IPC_RMID, semval);
74+ if (owned) {
75+ qt_semun semval;
76+ semval.val = 0;
77+ semctl(semId, 0, IPC_RMID, semval);
78+ }
79 semId = -1;
80 #else
81 // emulate the SEM_UNDO behavior for the BackingStore lock
82diff --git a/src/gui/embedded/qwslock_p.h b/src/gui/embedded/qwslock_p.h
83index d324e4f..d867d20 100644
84--- a/src/gui/embedded/qwslock_p.h
85+++ b/src/gui/embedded/qwslock_p.h
86@@ -86,8 +86,8 @@ private:
87 int lockCount[2];
88 #ifdef QT_POSIX_IPC
89 sem_t *sems[3];
90- bool owned;
91 #endif
92+ bool owned;
93 };
94
95 QT_END_NAMESPACE
96
97--
981.7.10.4
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/add_check_for_aarch64_32.patch b/meta/recipes-qt/qt4/qt4-4.8.6/add_check_for_aarch64_32.patch
new file mode 100644
index 0000000000..ad5103dd02
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/add_check_for_aarch64_32.patch
@@ -0,0 +1,55 @@
1Author: Krishnanjanappa, Jagadeesh <jagadeesh.krishnanjanappa@caviumnetworks.com>
2Date: Sun Apr 12 19:27:10 2015 +0530
3
4[PATCH] add checking for AArch64 ilp32
5
6Cross-compiling qt4-embedded and qt4-x11-free applications for AArch64 ilp32
7(both big and little endian) fails with below error,
8
9(snip)
10In file included from ../3rdparty/javascriptcore/JavaScriptCore/runtime/Collector.h:31:0,
11 from ../3rdparty/javascriptcore/JavaScriptCore/runtime/JSGlobalData.h:32,
12 from ../3rdparty/javascriptcore/JavaScriptCore/interpreter/CallFrame.h:26,
13 from ../3rdparty/javascriptcore/JavaScriptCore/runtime/ClassInfo.h:26,
14 from ../3rdparty/javascriptcore/JavaScriptCore/runtime/JSObject.h:27,
15 from ../3rdparty/javascriptcore/JavaScriptCore/API/JSCallbackConstructor.h:30,
16 from ../3rdparty/javascriptcore/JavaScriptCore/API/JSCallbackConstructor.cpp:27:
17../3rdparty/javascriptcore/JavaScriptCore/wtf/StdLibExtras.h: In instantiation of 'TO QTWTF::bitwise_cast(FROM) [w
18../3rdparty/javascriptcore/JavaScriptCore/runtime/JSImmediate.h:52:49: required from here
19../3rdparty/javascriptcore/JavaScriptCore/wtf/StdLibExtras.h:63:1: error: size of array is negative
20../3rdparty/javascriptcore/JavaScriptCore/wtf/StdLibExtras.h: In instantiation of 'TO QTWTF::bitwise_cast(FROM) [w
21../3rdparty/javascriptcore/JavaScriptCore/runtime/JSImmediate.h:57:47: required from here
22../3rdparty/javascriptcore/JavaScriptCore/wtf/StdLibExtras.h:63:1: error: size of array is negative
23make[1]: *** [obj/release/JSCallbackConstructor.o] Error 1
24-- CUT --
25
26the error is because of JSVALUE64 is being defined while compiling programs
27for AArch64 ilp32. This makes equal condition checking of intptr_t and double
28datatypes as false, and results in -1 (negative) as array size in bitwise_cast
29function.
30
31Upstream-Status: Pending
32
33Signed-off-by: Krishnanjanappa, Jagadeesh <jagadeesh.krishnanjanappa@caviumnetworks.com>
34
35--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2014-04-11 00:07:12.000000000 +0530
36+++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Platform.h 2015-04-10 22:19:51.066279426 +0530
37@@ -214,6 +214,9 @@
38 #define WTF_CPU_AARCH64 1
39 #if defined(__AARCH64EB__)
40 #define WTF_CPU_BIG_ENDIAN 1
41+#if !defined(__LP64__)
42+#define WTF_CPU_AARCH64_32 1
43+#endif
44 #endif
45 #endif
46
47@@ -903,7 +906,7 @@
48 #endif
49
50 #if !defined(WTF_USE_JSVALUE64) && !defined(WTF_USE_JSVALUE32) && !defined(WTF_USE_JSVALUE32_64)
51-#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(MIPS64) || CPU(AARCH64)
52+#if (CPU(X86_64) && (OS(UNIX) || OS(WINDOWS) || OS(SOLARIS) || OS(HPUX))) || (CPU(IA64) && !CPU(IA64_32)) || CPU(ALPHA) || CPU(AIX64) || CPU(SPARC64) || CPU(MIPS64) || (CPU(AARCH64) && !CPU(AARCH64_32))
53 #define WTF_USE_JSVALUE64 1
54 #elif CPU(ARM) || CPU(PPC64)
55 #define WTF_USE_JSVALUE32 1
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/g++.conf b/meta/recipes-qt/qt4/qt4-4.8.6/g++.conf
new file mode 100644
index 0000000000..be78c249e9
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/g++.conf
@@ -0,0 +1,40 @@
1#
2# qmake configuration for common gcc
3#
4
5QMAKE_COMPILER = gcc
6
7QMAKE_CC = $(OE_QMAKE_CC)
8QMAKE_CFLAGS += $(OE_QMAKE_CFLAGS)
9QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $(OE_QMAKE_CFLAGS)
10QMAKE_CFLAGS_PRECOMPILE += -x c-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
11QMAKE_CFLAGS_USE_PRECOMPILE += -include ${QMAKE_PCH_OUTPUT_BASE}
12
13QMAKE_CXX = $(OE_QMAKE_CXX)
14QMAKE_CXXFLAGS += $(OE_QMAKE_CXXFLAGS)
15QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
16QMAKE_CXXFLAGS_PRECOMPILE += -x c++-header -c ${QMAKE_PCH_INPUT} -o ${QMAKE_PCH_OUTPUT}
17QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
18
19QMAKE_LINK = $(OE_QMAKE_LINK)
20QMAKE_LINK_SHLIB = $(OE_QMAKE_LINK)
21QMAKE_LINK_C = $(OE_QMAKE_LINK)
22QMAKE_LINK_C_SHLIB = $(OE_QMAKE_LINK)
23QMAKE_LFLAGS += $(OE_QMAKE_LDFLAGS)
24QMAKE_LFLAGS_NOUNDEF += -Wl,--no-undefined
25QMAKE_LFLAGS_RPATH = -Wl,-rpath-link,
26
27QMAKE_PCH_OUTPUT_EXT = .gch
28
29# -Bsymbolic-functions (ld) support
30QMAKE_LFLAGS_BSYMBOLIC_FUNC = -Wl,-Bsymbolic-functions
31QMAKE_LFLAGS_DYNAMIC_LIST = -Wl,--dynamic-list,
32
33# do not depend on gdb
34CONFIG -= gdb_dwarf_index
35
36# some linking helper...
37CONFIG += rpath_libdirs
38
39# for the SDK
40isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $(OE_QMAKE_QT_CONFIG)
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/linux.conf b/meta/recipes-qt/qt4/qt4-4.8.6/linux.conf
new file mode 100644
index 0000000000..86703813ca
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/linux.conf
@@ -0,0 +1,66 @@
1#
2# qmake configuration for common linux
3#
4
5QMAKE_CFLAGS_THREAD += -D_REENTRANT
6QMAKE_CXXFLAGS_THREAD += $$QMAKE_CFLAGS_THREAD
7
8QMAKE_INCDIR =
9QMAKE_LIBDIR =
10QMAKE_INCDIR_X11 =
11QMAKE_LIBDIR_X11 =
12QMAKE_INCDIR_QT = $(OE_QMAKE_INCDIR_QT)
13QMAKE_LIBDIR_QT = $(OE_QMAKE_LIBDIR_QT)
14QMAKE_INCDIR_OPENGL =
15QMAKE_LIBDIR_OPENGL =
16QMAKE_INCDIR_OPENGL_ES1 = $$QMAKE_INCDIR_OPENGL
17QMAKE_LIBDIR_OPENGL_ES1 = $$QMAKE_LIBDIR_OPENGL
18QMAKE_INCDIR_OPENGL_ES2 = $$QMAKE_INCDIR_OPENGL
19QMAKE_LIBDIR_OPENGL_ES2 = $$QMAKE_LIBDIR_OPENGL
20QMAKE_INCDIR_EGL =
21QMAKE_LIBDIR_EGL =
22QMAKE_INCDIR_OPENVG =
23QMAKE_LIBDIR_OPENVG =
24
25
26QMAKE_LIBS =
27QMAKE_LIBS_DYNLOAD = -ldl
28QMAKE_LIBS_X11 = $(OE_QMAKE_LIBS_X11)
29QMAKE_LIBS_X11SM = $(OE_QMAKE_LIBS_X11SM)
30QMAKE_LIBS_NIS = -lnsl
31QMAKE_LIBS_EGL = -lEGL
32QMAKE_LIBS_OPENGL = -lGL
33QMAKE_LIBS_OPENGL_QT = -lGL
34QMAKE_LIBS_OPENGL_ES1 = -lGLES_CM
35QMAKE_LIBS_OPENGL_ES2 = -lGLESv2
36QMAKE_LIBS_OPENVG = -lOpenVG
37QMAKE_LIBS_THREAD = -lpthread
38
39QMAKE_MOC = $(OE_QMAKE_MOC)
40QMAKE_UIC = $(OE_QMAKE_UIC)
41QMAKE_UIC3 = $(OE_QMAKE_UIC3)
42QMAKE_RCC = $(OE_QMAKE_RCC)
43QMAKE_QDBUSCPP2XML = $(OE_QMAKE_QDBUSCPP2XML)
44QMAKE_QDBUSXML2CPP = $(OE_QMAKE_QDBUSXML2CPP)
45
46QMAKE_AR = $(OE_QMAKE_AR) cqs
47QMAKE_OBJCOPY = objcopy
48QMAKE_RANLIB =
49
50QMAKE_TAR = tar -cf
51QMAKE_GZIP = gzip -9f
52
53QMAKE_COPY = cp -f
54QMAKE_COPY_FILE = $(COPY)
55QMAKE_COPY_DIR = $(COPY) -r
56QMAKE_MOVE = mv -f
57QMAKE_DEL_FILE = rm -f
58QMAKE_DEL_DIR = rmdir
59QMAKE_STRIP = $(OE_QMAKE_STRIP)
60QMAKE_STRIPFLAGS_LIB += --strip-unneeded
61QMAKE_CHK_DIR_EXISTS = test -d
62QMAKE_MKDIR = mkdir -p
63QMAKE_INSTALL_FILE = install -m 644 -p
64QMAKE_INSTALL_PROGRAM = install -m 755 -p
65
66include(unix.conf)
diff --git a/meta/recipes-qt/qt4/qt4-4.8.6/qte.sh b/meta/recipes-qt/qt4/qt4-4.8.6/qte.sh
new file mode 100644
index 0000000000..21d6ecbd6a
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.6/qte.sh
@@ -0,0 +1,7 @@
1#!/bin/sh
2
3if [ -e /dev/input/touchscreen0 ]
4then
5 QWS_MOUSE_PROTO=Tslib:/dev/input/touchscreen0
6 export QWS_MOUSE_PROTO
7fi
diff --git a/meta/recipes-qt/qt4/qt4-embedded.inc b/meta/recipes-qt/qt4/qt4-embedded.inc
new file mode 100644
index 0000000000..ef5cf2cf24
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-embedded.inc
@@ -0,0 +1,75 @@
1SUMMARY = "Cross-platform UI toolkit and application framework (framebuffer version)"
2DESCRIPTION = "Qt is a versatile cross-platform application framework -- this is the embedded (framebuffer) version."
3SECTION = "libs"
4HOMEPAGE = "http://qt-project.org/"
5DEPENDS += "directfb tslib"
6INC_PR = "r52"
7
8QT4EDEPENDS = ""
9QT_BASE_LIB ?= "libqt-embedded"
10
11# Set necessary variables in the profile
12SRC_URI += "file://qte.sh \
13 file://0033-configure-support-c-0x-standard-for-directfd.patch \
14"
15
16QT_EMBEDDED_FLAGS ?= " \
17 -embedded $QT_ARCH \
18 -qtlibinfix ${QT_LIBINFIX} \
19"
20QT_EMBEDDED_EXTRA_FLAGS ?= " \
21 -plugin-gfx-transformed -plugin-gfx-qvfb -plugin-gfx-vnc -plugin-gfx-directfb \
22 -plugin-mouse-tslib -qt-mouse-pc -qt-mouse-qvfb -qt-mouse-linuxinput \
23 -qt-kbd-tty -qt-kbd-linuxinput \
24"
25QT_EMBEDDED_KEYPAD_FLAGS ?= " \
26 -DQT_KEYPAD_NAVIGATION \
27"
28
29QT_CONFIG_FLAGS += "${QT_EMBEDDED_FLAGS} ${QT_EMBEDDED_EXTRA_FLAGS} ${QT_EMBEDDED_KEYPAD_FLAGS}"
30
31require qt4.inc
32
33do_install_append() {
34 install -d ${D}/${libdir}/fonts
35 touch ${D}/${libdir}/fonts/fontdir
36
37 install -d ${D}${sysconfdir}/profile.d/
38 install -m 0755 ${WORKDIR}/qte.sh ${D}${sysconfdir}/profile.d/
39}
40
41# We put the qte profile into it's own package as we don't want to install all qt stuff
42# with depending on the global package qt4-embedded
43PACKAGES += " ${PN}-conf"
44FILES_${PN}-conf += " ${sysconfdir}/profile.d/qte.sh"
45RRECOMMENDS_${PN} += " ${PN}-conf"
46
47OTHER_PACKAGES += "\
48 ${QT_BASE_NAME}-fonts \
49 ${QT_BASE_NAME}-fonts-ttf-vera \
50 ${QT_BASE_NAME}-fonts-ttf-dejavu \
51 ${QT_BASE_NAME}-fonts-pfa \
52 ${QT_BASE_NAME}-fonts-pfb \
53 ${QT_BASE_NAME}-fonts-qpf"
54
55RRECOMMENDS_${QT_BASE_NAME}-fonts = " \
56 ${QT_BASE_NAME}-fonts-ttf-vera \
57 ${QT_BASE_NAME}-fonts-ttf-dejavu \
58 ${QT_BASE_NAME}-fonts-pfa \
59 ${QT_BASE_NAME}-fonts-pfb \
60 ${QT_BASE_NAME}-fonts-qpf"
61RRECOMMENDS_${QT_BASE_NAME}-demos += " \
62 ${QT_BASE_NAME}-fonts"
63
64ALLOW_EMPTY_${QT_BASE_NAME}-fonts = "1"
65PACKAGES_DYNAMIC += "^${QT_BASE_NAME}-fonts-.*"
66
67FILES_${QT_BASE_NAME}-fonts-ttf-vera = "${libdir}/fonts/Vera*.ttf"
68FILES_${QT_BASE_NAME}-fonts-ttf-dejavu = "${libdir}/fonts/DejaVu*.ttf"
69FILES_${QT_BASE_NAME}-fonts-pfa = "${libdir}/fonts/*.pfa"
70FILES_${QT_BASE_NAME}-fonts-pfb = "${libdir}/fonts/*.pfb"
71FILES_${QT_BASE_NAME}-fonts-qpf = "${libdir}/fonts/*.qpf*"
72FILES_${QT_BASE_NAME}-fonts = "${libdir}/fonts/README ${libdir}/fonts/fontdir"
73
74inherit qt4e
75
diff --git a/meta/recipes-qt/qt4/qt4-embedded_4.8.6.bb b/meta/recipes-qt/qt4/qt4-embedded_4.8.6.bb
new file mode 100644
index 0000000000..1435d857ce
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-embedded_4.8.6.bb
@@ -0,0 +1,9 @@
1require qt4-${PV}.inc
2require qt4-embedded.inc
3
4QT_CONFIG_FLAGS_append_arm = "${@bb.utils.contains("TUNE_FEATURES", "neon", "", " -no-neon" ,d)}"
5
6QT_CONFIG_FLAGS += " \
7 -exceptions \
8"
9
diff --git a/meta/recipes-qt/qt4/qt4-native.inc b/meta/recipes-qt/qt4/qt4-native.inc
new file mode 100644
index 0000000000..70bda7358f
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-native.inc
@@ -0,0 +1,118 @@
1SUMMARY = "Qt version 4 tools and support files for the build host"
2DEPENDS = "zlib-native dbus-native"
3SECTION = "libs"
4HOMEPAGE = "http://qt-project.org/"
5PROVIDES = "qt4-tools-native"
6
7LICENSE = "LGPLv2.1 | GPLv3"
8LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=fbc093901857fcd118f065f900982c24 \
9 file://LICENSE.GPL3;md5=6e1694ee338db410417517884918d4d2 \
10 file://LGPL_EXCEPTION.txt;md5=0145c4d1b6f96a661c2c139dfb268fb6"
11
12INC_PR = "r20"
13
14inherit native
15
16SRC_URI = "http://download.qt-project.org/official_releases/qt/4.8/${PV}/qt-everywhere-opensource-src-${PV}.tar.gz \
17 file://0001-qlibraryinfo-allow-to-set-qt.conf-from-the-outside-u.patch \
18 file://0002-qkbdtty_qws-fix-build-with-old-kernel-headers.patch \
19 file://0003-webkit2-set-OUTPUT_DIR-value-if-empty.patch \
20 file://0021-configure-make-qt4-native-work-with-long-building-pa.patch \
21 file://0029-aarch64_arm64_fix_arch_detection.patch \
22 file://0030-aarch64_arm64_qatomic_support.patch \
23 file://0031-aarch64_arm64_mkspecs.patch \
24 file://0032-aarch64_add_header.patch \
25 file://g++.conf \
26 file://linux.conf \
27 "
28S = "${WORKDIR}/qt-everywhere-opensource-src-${PV}"
29
30EXTRA_OECONF = "-prefix ${prefix} \
31 -bindir ${bindir} \
32 -libdir ${libdir} \
33 -datadir ${datadir}/qt4 \
34 -sysconfdir ${sysconfdir}/qt4 \
35 -docdir ${docdir}/qt4 \
36 -headerdir ${includedir}/qt4 \
37 -plugindir ${libdir}/qt4/plugins \
38 -importdir ${libdir}/qt4/imports \
39 -translationdir ${datadir}/qt4/translations \
40 -examplesdir ${bindir}/qt4/examples \
41 -demosdir ${bindir}/qt4/demos \
42 -L ${STAGING_LIBDIR_NATIVE} \
43 -I ${STAGING_INCDIR_NATIVE} \
44 -qt-libjpeg -system-zlib \
45 -no-libjpeg -no-libpng -no-libmng -no-libtiff \
46 -no-accessibility \
47 -no-cups \
48 -no-nas-sound \
49 -no-nis -no-openssl \
50 -verbose -release \
51 -embedded -no-freetype -no-glib -no-iconv \
52 -exceptions -xmlpatterns \
53 -qt3support \
54 -no-fast -silent -no-rpath"
55
56# yank default -e, otherwise we get the following error:
57# moc_qbuffer.cpp: No such file or directory
58EXTRA_OEMAKE = " "
59
60do_configure() {
61 # Avoid problems with Qt 4.8.0 configure setting QMAKE_LINK from LD (since we want the linker to be g++)
62 unset LD
63
64 (echo o; echo yes) | ./configure ${EXTRA_OECONF} || die "Configuring qt failed. EXTRA_OECONF was ${EXTRA_OECONF}"
65}
66
67TOBUILD = "\
68 src/tools/moc \
69 src/corelib \
70 src/sql \
71 src/xml \
72 src/network \
73 src/tools/uic \
74 src/tools/rcc \
75 src/xmlpatterns \
76 src/dbus \
77 src/gui \
78 src/testlib \
79 src/qt3support \
80 src/tools/uic3 \
81 tools/linguist/lconvert \
82 tools/linguist/lrelease \
83 tools/linguist/lupdate \
84 tools/qdbus/qdbuscpp2xml \
85 tools/qdbus/qdbusxml2cpp \
86 tools/xmlpatterns \
87"
88
89do_compile() {
90 for i in ${TOBUILD}; do
91 cd ${S}/$i && oe_runmake CC="${CC}" CXX="${CXX}"
92 done
93}
94
95do_install() {
96 install -d ${D}${bindir}/
97 install -m 0755 bin/qmake ${D}${bindir}/qmake2
98 for i in moc uic uic3 rcc lconvert lrelease lupdate qdbuscpp2xml qdbusxml2cpp xmlpatterns; do
99 install -m 0755 bin/${i} ${D}${bindir}/${i}4
100 done
101
102 install -d ${D}${datadir}/qt4/
103 cp -PfR mkspecs ${D}${datadir}/qt4/
104 ln -sf linux-g++ ${D}${datadir}/qt4/mkspecs/${BUILD_OS}-oe-g++
105 if [ -f ${D}${datadir}/qt4/mkspecs/common/g++-unix.conf ] ; then
106 # mkspecs were refactored for 4.8.0
107 cp -f ${WORKDIR}/g++.conf ${D}${datadir}/qt4/mkspecs/common/g++-unix.conf
108 else
109 cp -f ${WORKDIR}/g++.conf ${D}${datadir}/qt4/mkspecs/common/g++.conf
110 fi
111 cp -f ${WORKDIR}/linux.conf ${D}${datadir}/qt4/mkspecs/common/
112
113 install -m 0644 tools/porting/src/q3porting.xml ${D}${datadir}/qt4/
114
115 for i in ${TOBUILD}; do
116 cd ${S}/$i && oe_runmake install INSTALL_ROOT=${D}
117 done
118}
diff --git a/meta/recipes-qt/qt4/qt4-native_4.8.6.bb b/meta/recipes-qt/qt4/qt4-native_4.8.6.bb
new file mode 100644
index 0000000000..d874d3297f
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-native_4.8.6.bb
@@ -0,0 +1,6 @@
1require qt4-native.inc
2
3TOBUILD := "src/tools/bootstrap ${TOBUILD}"
4
5SRC_URI[md5sum] = "2edbe4d6c2eff33ef91732602f3518eb"
6SRC_URI[sha256sum] = "8b14dd91b52862e09b8e6a963507b74bc2580787d171feda197badfa7034032c"
diff --git a/meta/recipes-qt/qt4/qt4-x11-free.inc b/meta/recipes-qt/qt4/qt4-x11-free.inc
new file mode 100644
index 0000000000..835fc966f5
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-x11-free.inc
@@ -0,0 +1,40 @@
1require qt4.inc
2
3SUMMARY = "Cross-platform UI toolkit and application framework (X11 version)"
4DESCRIPTION = "Qt is a versatile cross-platform application framework -- this is the X11 version."
5HOMEPAGE = "http://qt-project.org/"
6SECTION = "x11/libs"
7DEPENDS += "virtual/libx11 fontconfig libxft libxext libxrender libxrandr libxcursor"
8DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/libgl', '', d)}"
9PROVIDES += "qt4-x11"
10QT4DEPENDS = ""
11
12INC_PR = "r50"
13
14QT_GLFLAGS ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '-opengl', '-no-opengl', d)} "
15QT_GLFLAGS_qemux86 = "-opengl"
16QT_GLFLAGS_qemuppc = "-opengl"
17QT_X11_FLAGS ?= "-no-xinerama -no-xkb -no-gtkstyle"
18QT_CONFIG_FLAGS += "${QT_X11_FLAGS}"
19QT_BASE_LIB ?= "libqt"
20
21# required by kdelibs4
22QT_KDE_FLAGS ?= "-accessibility -sm"
23QT_DISTRO_FLAGS ?= "${QT_KDE_FLAGS}"
24
25inherit qt4x11
26
27do_install_append() {
28 # fix pkgconfig, libtool and prl files
29 sed -i -e 's#I/usr/include#Iincludedir}#g' \
30 -e 's#Iin#I${in#g' \
31 ${D}${libdir}/*.la ${D}${libdir}/*.prl ${D}${libdir}/pkgconfig/*.pc
32
33 # QT abuses $includedir to point to its headers, which breaks pkgconfig sysroot, so
34 # manually fix it up here:
35 for pc in ${D}${libdir}/pkgconfig/*.pc ; do
36 sed -i -e "s:prefix}include/${QT_BASE_NAME}/$(basename $pc .pc):prefix}/include:" \
37 -e "s,Cflags: ,Cflags: -IP{includedir}/${QT_BASE_NAME}/$(basename $pc .pc) ," \
38 -e 's:IP{:I${:g' $pc
39 done
40}
diff --git a/meta/recipes-qt/qt4/qt4-x11-free_4.8.6.bb b/meta/recipes-qt/qt4/qt4-x11-free_4.8.6.bb
new file mode 100644
index 0000000000..5cb5e6817d
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-x11-free_4.8.6.bb
@@ -0,0 +1,9 @@
1require qt4-x11-free.inc
2require qt4-${PV}.inc
3
4QT_CONFIG_FLAGS_append_arm = "${@bb.utils.contains("TUNE_FEATURES", "neon", "", " -no-neon" ,d)}"
5
6QT_CONFIG_FLAGS += " \
7 -no-embedded \
8 -xrandr \
9 -x11"
diff --git a/meta/recipes-qt/qt4/qt4.inc b/meta/recipes-qt/qt4/qt4.inc
new file mode 100644
index 0000000000..2175fc0de7
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4.inc
@@ -0,0 +1,394 @@
1inherit qmake_base
2
3DEPENDS += "qt4-tools-native freetype jpeg libpng zlib dbus openssl glib-2.0 sqlite3 tiff icu"
4DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}"
5
6require qt4_arch.inc
7
8QT_DISTRO_FLAGS ?= "-no-accessibility -no-sm"
9QT_DISTRO_FLAGS_linuxstdbase = "-sm"
10
11QT_SQL_DRIVER_FLAGS ?= "-no-sql-ibase -no-sql-mysql -no-sql-psql -no-sql-odbc -no-sql-sqlite2 -plugin-sql-sqlite -system-sqlite"
12
13QT_GLFLAGS ?= ""
14
15
16QT_QT3SUPPORT ?= "-qt3support"
17QT_XML ?= "-xmlpatterns"
18QT_WEBKIT ?= "-webkit"
19QT_PHONON ?= "-no-phonon"
20QT_DBUS ?= "-qdbus"
21QT_MULTIMEDIA ?= "${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', '-pulseaudio', '-no-pulseaudio', d)}"
22
23QT_CONFIG_FLAGS += "-release -no-cups -reduce-relocations \
24 -shared -no-nas-sound -no-nis \
25 -system-libjpeg -system-libpng -system-libtiff -system-zlib \
26 -no-pch -stl -glib -icu \
27 -no-rpath -silent \
28 -D USE_QTMULTIMEDIA=1 \
29 ${QT_DBUS} \
30 ${QT_QT3SUPPORT} \
31 ${QT_WEBKIT} \
32 ${QT_PHONON} \
33 ${QT_XML} \
34 ${QT_MULTIMEDIA} \
35 ${QT_SQL_DRIVER_FLAGS} \
36 ${QT_DISTRO_FLAGS} \
37 ${QT_GLFLAGS}"
38
39EXTRA_OEMAKE = "-e"
40
41EXTRA_ENV = 'QMAKE="${STAGING_BINDIR_NATIVE}/qmake2 -after \
42 INCPATH+=${STAGING_INCDIR}/freetype2 LIBS+=-L${STAGING_LIBDIR}" \
43 QMAKESPEC="${QMAKESPEC}" LINK="${CXX} -Wl,-rpath-link,${STAGING_LIBDIR}" \
44 AR="${TARGET_PREFIX}ar cqs" \
45 MOC="${STAGING_BINDIR_NATIVE}/moc4" UIC="${STAGING_BINDIR_NATIVE}/uic4" MAKE="make -e"'
46
47export QT_CONF_PATH="${WORKDIR}/qt.conf"
48
49# Library packages
50QT_LIB_NAMES = "Qt3Support QtAssistantClient QtCLucene QtCore QtDBus QtDesigner QtDesignerComponents QtGui QtHelp QtNetwork QtOpenGL QtScript QtScriptTools QtSql QtSvg QtTest QtUiTools QtWebKit QtXml QtXmlPatterns phonon QtMultimedia QtOpenVG QtMediaServices QtDeclarative"
51
52QT_EXTRA_LIBS = "pvrQWSWSEGL"
53
54python __anonymous () {
55 lib_packages = []
56 dev_packages = []
57 dbg_packages = []
58 staticdev_packages = []
59 for name in d.getVar("QT_LIB_NAMES", True).split():
60 pkg = d.getVar("QT_BASE_LIB", True) + name.lower().replace("qt", "").replace("_", "-") + "4"
61 # NOTE: the headers for QtAssistantClient are different
62 incname = name.replace("QtAssistantClient", "QtAssistant")
63 d.setVar("FILES_%s" % pkg, "${libdir}/lib%(name)s${QT_LIBINFIX}.so.*" % locals())
64 d.setVar("FILES_%s-dev" % pkg, """${libdir}/lib%(name)s${QT_LIBINFIX}.prl
65 ${libdir}/lib%(name)s${QT_LIBINFIX}.la
66 ${libdir}/lib%(name)s${QT_LIBINFIX}.so
67 ${includedir}/${QT_DIR_NAME}/%(incname)s
68 ${libdir}/pkgconfig/%(name)s${QT_LIBINFIX}.pc""" % locals())
69 d.setVar("FILES_%s-staticdev" % pkg, "${libdir}/lib%(name)s${QT_LIBINFIX}.a" % locals())
70 d.setVar("FILES_%s-dbg" % pkg, "${libdir}/.debug/lib%(name)s${QT_LIBINFIX}.so*" % locals())
71 d.setVar("RRECOMMENDS_%s-dbg" % pkg, "${PN}-dbg")
72 lib_packages.append(pkg)
73 dev_packages.append("%s-dev" % pkg)
74 dbg_packages.append("%s-dbg" % pkg)
75 staticdev_packages.append("%s-staticdev" % pkg)
76 for name in d.getVar("OTHER_PACKAGES", True).split():
77 dbg_packages.append("%s-dbg" % name)
78 staticdev_packages.append("%s-staticdev" % name)
79
80 for name in d.getVar("QT_EXTRA_LIBS", True).split():
81 pkg = d.getVar("QT_BASE_LIB", True) + name.lower().replace("qt", "").replace("_", "-") + "4"
82 d.setVar("FILES_%s" % pkg, "${libdir}/lib%(name)s.so.*" % locals())
83 d.setVar("FILES_%s-staticdev" % pkg, "${libdir}/lib%(name)s.a" % locals())
84 d.setVar("FILES_%s-dev" % pkg, """${libdir}/lib%(name)s.prl
85 ${libdir}/lib%(name)s.la
86 ${libdir}/lib%(name)s.so
87 ${includedir}/${QT_DIR_NAME}/%(incname)s
88 ${libdir}/pkgconfig/%(name)s.pc""" % locals())
89 d.setVar("FILES_%s-dbg" % pkg, "${libdir}/.debug/lib%(name)s.so*" % locals())
90 d.setVar("RRECOMMENDS_%s-dbg" % pkg, "${PN}-dbg")
91 lib_packages.append(pkg)
92 dev_packages.append("%s-dev" % pkg)
93 dbg_packages.append("%s-dbg" % pkg)
94 staticdev_packages.append("%s-staticdev" % pkg)
95
96 d.setVar("LIB_PACKAGES", " ".join(lib_packages))
97 d.setVar("DEV_PACKAGES", " ".join(dev_packages))
98 d.setVar("DBG_PACKAGES", " ".join(dbg_packages))
99 d.setVar("STATICDEV_PACKAGES", " ".join(staticdev_packages))
100}
101
102OTHER_PACKAGES = "\
103 ${QT_BASE_NAME}-tools \
104 ${QT_BASE_NAME}-assistant \
105 ${QT_BASE_NAME}-common \
106 ${QT_BASE_NAME}-dbus \
107 ${QT_BASE_NAME}-demos \
108 ${QT_BASE_NAME}-designer \
109 ${QT_BASE_NAME}-examples \
110 ${QT_BASE_NAME}-linguist \
111 ${QT_BASE_NAME}-makeqpf \
112 ${QT_BASE_NAME}-mkspecs \
113 ${QT_BASE_NAME}-pixeltool \
114 ${QT_BASE_NAME}-qmlviewer \
115 ${QT_BASE_NAME}-xmlpatterns \
116 ${QT_BASE_NAME}-qt3to4 \
117 ${QT_BASE_NAME}-qml-plugins"
118
119#We prepend so ${QT_BASE_NAME}-demos-doc comes before ${PN}-doc,so the packaging of FILES_ get done before.
120PACKAGES =+ "${QT_BASE_NAME}-demos-doc"
121PACKAGES += " \
122 ${LIB_PACKAGES} \
123 ${DEV_PACKAGES} \
124 ${DBG_PACKAGES} \
125 ${STATICDEV_PACKAGES} \
126 ${OTHER_PACKAGES}"
127
128PACKAGES_DYNAMIC += "^${QT_BASE_NAME}-plugin-.* ^${QT_BASE_NAME}-translation-.* ^${QT_BASE_NAME}-phrasebook-.*"
129
130ALLOW_EMPTY_${PN} = "1"
131FILES_${PN} = ""
132FILES_${PN}-dev = "${includedir}/${QT_DIR_NAME}/Qt/*"
133FILES_${PN}-dbg = "/usr/src/debug/"
134FILES_${QT_BASE_NAME}-demos-doc = "${docdir}/${QT_DIR_NAME}/qch/qt.qch"
135RRECOMMENDS_${PN} = "${LIB_PACKAGES} ${OTHER_PACKAGES}"
136RRECOMMENDS_${PN}-dev = "${DEV_PACKAGES}"
137RRECOMMENDS_${PN}-dbg = "${DBG_PACKAGES}"
138RRECOMMENDS_${QT_BASE_LIB}core4_append_libc-glibc = " glibc-gconv-utf-16"
139RRECOMMENDS_${QT_BASE_NAME}-demos += " \
140 ${QT_BASE_NAME}-examples \
141 ${QT_BASE_NAME}-plugin-sqldriver-sqlite \
142 ${QT_BASE_NAME}-plugin-imageformat-jpeg \
143 ${QT_BASE_NAME}-qml-plugins \
144 ${QT_BASE_NAME}-assistant \
145 ${QT_BASE_NAME}-demos-doc"
146RRECOMMENDS_${QT_BASE_NAME}-examples += " \
147 ${QT_BASE_NAME}-plugin-sqldriver-sqlite \
148 ${QT_BASE_NAME}-plugin-imageformat-jpeg \
149 ${QT_BASE_NAME}-qml-plugins"
150RRECOMMENDS_${QT_BASE_NAME}-qmlviewer += " \
151 ${QT_BASE_NAME}-qml-plugins"
152RRECOMMENDS_${QT_BASE_NAME}-doc += " \
153 ${QT_BASE_NAME}-demos-doc"
154
155RPROVIDES_${QT_BASE_NAME}-tools += "qmake2"
156RREPLACES_${QT_BASE_NAME}-tools += "qmake2"
157
158FILES_${QT_BASE_NAME}-tools = "${bindir}/qttracereplay ${bindir}/qdoc* ${bindir}/qmake ${bindir}/moc ${bindir}/uic* ${bindir}/rcc"
159FILES_${QT_BASE_NAME}-tools-dbg = "${bindir}/.debug/qttracereplay ${bindir}/.debug/qdoc* ${bindir}/.debug/qmake ${bindir}/.debug/uic* ${bindir}/.debug/moc ${bindir}/.debug/rcc"
160FILES_${QT_BASE_NAME}-assistant = "${bindir}/*assistant* ${bindir}/qcollectiongenerator ${bindir}/qhelpconverter ${bindir}/qhelpgenerator"
161FILES_${QT_BASE_NAME}-assistant-dbg = "${bindir}/.debug/*assistant* ${bindir}/.debug/qcollectiongenerator ${bindir}/.debug/qhelpconverter ${bindir}/.debug/qhelpgenerator"
162FILES_${QT_BASE_NAME}-common = "${bindir}/qtconfig"
163FILES_${QT_BASE_NAME}-common-dbg = "${bindir}/.debug/qtconfig"
164FILES_${QT_BASE_NAME}-dbus = "${bindir}/qdbus ${bindir}/qdbusxml2cpp ${bindir}/qdbuscpp2xml ${bindir}/qdbusviewer"
165FILES_${QT_BASE_NAME}-dbus-dbg = "${bindir}/.debug/qdbus ${bindir}/.debug/qdbusxml2cpp ${bindir}/.debug/qdbuscpp2xml ${bindir}/.debug/qdbusviewer"
166FILES_${QT_BASE_NAME}-demos = "${bindir}/qtdemo* ${bindir}/${QT_DIR_NAME}/demos/*"
167FILES_${QT_BASE_NAME}-demos-staticdev = "${bindir}/${QT_DIR_NAME}/demos/shared/libdemo_shared.a"
168FILES_${QT_BASE_NAME}-demos-dbg = "${bindir}/.debug/qtdemo* ${bindir}/${QT_DIR_NAME}/demos/.debug/* ${bindir}/${QT_DIR_NAME}/demos/*/.debug ${bindir}/${QT_DIR_NAME}/demos/*/*/.debug ${bindir}/${QT_DIR_NAME}/demos/*/*/*/.debug"
169FILES_${QT_BASE_NAME}-designer = "${bindir}/*designer*"
170FILES_${QT_BASE_NAME}-designer-dbg = "${bindir}/.debug/*designer*"
171FILES_${QT_BASE_NAME}-examples = "${bindir}/${QT_DIR_NAME}/examples/*"
172FILES_${QT_BASE_NAME}-examples-staticdev = "${bindir}/${QT_DIR_NAME}/examples/tools/plugandpaint/plugins/libpnp_basictools.a"
173FILES_${QT_BASE_NAME}-examples-dbg = "${bindir}/${QT_DIR_NAME}/examples/.debug ${bindir}/${QT_DIR_NAME}/examples/*/.debug ${bindir}/${QT_DIR_NAME}/examples/*/*/.debug ${bindir}/${QT_DIR_NAME}/examples/*/*/*/.debug ${bindir}/${QT_DIR_NAME}/examples/*/*/*/*/.debug ${bindir}/${QT_DIR_NAME}/examples/declarative/*/*/*/*/*/.debug/* ${bindir}/${QT_DIR_NAME}/examples/declarative/*/*/*/*/.debug/*"
174FILES_${QT_BASE_NAME}-linguist = "${bindir}/*linguist* ${bindir}/lrelease ${bindir}/lupdate ${bindir}/lconvert ${bindir}/qm2ts"
175FILES_${QT_BASE_NAME}-linguist-dbg = "${bindir}/.debug/*linguist* ${bindir}/.debug/lrelease ${bindir}/.debug/lupdate ${bindir}/.debug/lconvert ${bindir}/.debug/qm2ts"
176FILES_${QT_BASE_NAME}-pixeltool = "${bindir}/pixeltool"
177FILES_${QT_BASE_NAME}-pixeltool-dbg = "${bindir}/.debug/pixeltool"
178FILES_${QT_BASE_NAME}-qt3to4 = "${bindir}/qt3to4 ${datadir}/${QT_DIR_NAME}/q3porting.xml"
179FILES_${QT_BASE_NAME}-qt3to4-dbg = "${bindir}/.debug/qt3to4"
180FILES_${QT_BASE_NAME}-qmlviewer = "${bindir}/qmlviewer"
181FILES_${QT_BASE_NAME}-qmlviewer-dbg = "${bindir}/.debug/qmlviewer"
182FILES_${QT_BASE_NAME}-makeqpf = "${bindir}/makeqpf"
183FILES_${QT_BASE_NAME}-makeqpf-dbg = "${bindir}/.debug/makeqpf"
184FILES_${QT_BASE_NAME}-mkspecs = "${datadir}/${QT_DIR_NAME}/mkspecs/* ${datadir}/${QT_DIR_NAME}/environment-setup"
185FILES_${QT_BASE_NAME}-xmlpatterns = "${bindir}/xmlpatterns*"
186FILES_${QT_BASE_NAME}-xmlpatterns-dbg = "${bindir}/.debug/xmlpatterns*"
187FILES_${QT_BASE_NAME}-qml-plugins = "${libdir}/${QT_DIR_NAME}/imports/* ${libdir}/${QT_DIR_NAME}/plugins/qmltooling/*"
188FILES_${QT_BASE_NAME}-qml-plugins-dbg = "${libdir}/${QT_DIR_NAME}/imports/*/*/*/.debug/* ${libdir}/${QT_DIR_NAME}/imports/*/.debug ${libdir}/${QT_DIR_NAME}/plugins/qmltooling/.debug"
189INSANE_SKIP_${MLPREFIX}${QT_BASE_NAME}-examples += "libdir"
190INSANE_SKIP_${MLPREFIX}${QT_BASE_NAME}-examples-dbg += "libdir"
191
192# License options, to be set by the recipe if different values are needed
193QT_LICENSE_FILE ?= ""
194QT_LICENSE_FLAGS ?= "-opensource"
195
196do_configure() {
197 unset QMAKESPEC
198 unset QTDIR
199
200 set_arch
201 set_endian
202
203 if [ ! -e bin/qmake ]; then
204 ln -sf ${STAGING_BINDIR_NATIVE}/qmake2 bin/qmake
205 fi
206
207 if [ ! -e mkspecs/${TARGET_OS}-oe-g++ ]; then
208 ln -sf linux-g++ mkspecs/${TARGET_OS}-oe-g++
209 fi
210
211 if [ -f mkspecs/common/g++-unix.conf ] ; then
212 # mkspecs were refactored for 4.8.0
213 cp -f ${WORKDIR}/g++.conf mkspecs/common/g++-unix.conf
214 else
215 cp -f ${WORKDIR}/g++.conf mkspecs/common/g++.conf
216 fi
217 cp -f ${WORKDIR}/linux.conf mkspecs/common/
218
219 echo "[Paths]" > $QT_CONF_PATH
220 echo "Prefix=${prefix}" >> $QT_CONF_PATH
221 echo "Documentation=${docdir}/${QT_DIR_NAME}" >> $QT_CONF_PATH
222 echo "Headers=${includedir}/${QT_DIR_NAME}" >> $QT_CONF_PATH
223 echo "Libraries=${libdir}" >> $QT_CONF_PATH
224 echo "Binaries=${bindir}" >> $QT_CONF_PATH
225 echo "Plugins=${libdir}/${QT_DIR_NAME}/plugins" >> $QT_CONF_PATH
226 echo "Imports=${libdir}/${QT_DIR_NAME}/imports" >> $QT_CONF_PATH
227 echo "Data=${datadir}/${QT_DIR_NAME}" >> $QT_CONF_PATH
228 echo "Translations=${datadir}/${QT_DIR_NAME}/translations" >> $QT_CONF_PATH
229 echo "Settings=${sysconfdir}/${QT_DIR_NAME}" >> $QT_CONF_PATH
230 echo "Examples=${bindir}/${QT_DIR_NAME}/examples" >> $QT_CONF_PATH
231 echo "Demos=${bindir}/${QT_DIR_NAME}/demos" >> $QT_CONF_PATH
232
233 ${EXTRA_QMAKE_MUNGE}|| true
234
235 echo yes | QT_LICENSE_FILE="${QT_LICENSE_FILE}" ./configure -v \
236 -prefix ${prefix} \
237 -bindir ${bindir} \
238 -libdir ${libdir} \
239 -datadir ${datadir}/${QT_DIR_NAME} \
240 -sysconfdir ${sysconfdir}/${QT_DIR_NAME} \
241 -docdir ${docdir}/${QT_DIR_NAME} \
242 -headerdir ${includedir}/${QT_DIR_NAME} \
243 -plugindir ${libdir}/${QT_DIR_NAME}/plugins \
244 -importdir ${libdir}/${QT_DIR_NAME}/imports \
245 -translationdir ${datadir}/${QT_DIR_NAME}/translations \
246 -examplesdir ${bindir}/${QT_DIR_NAME}/examples \
247 -demosdir ${bindir}/${QT_DIR_NAME}/demos \
248 -platform ${TARGET_OS}-oe-g++ \
249 -xplatform ${TARGET_OS}-oe-g++ \
250 ${QT_ENDIAN} \
251 -crossarch ${QT_ARCH} \
252 ${QT_LICENSE_FLAGS} \
253 ${QT_CONFIG_FLAGS} -no-fast \
254 -L${STAGING_LIBDIR} -I${STAGING_INCDIR} \
255 -I${STAGING_INCDIR}/freetype2
256}
257
258do_compile() {
259 # Fixup missing wsegl header in some SGX SDKs
260 if ! [ -e ${STAGING_INCDIR}/wsegl.h ] ; then
261 cp src/3rdparty/powervr/wsegl.h src/plugins/gfxdrivers/powervr/QWSWSEGL/
262 fi
263
264 unset CFLAGS CXXFLAGS
265
266 oe_runmake ${EXTRA_ENV}
267
268 # Build target qmake
269 export QMAKESPEC="${S}/mkspecs/${TARGET_OS}-oe-g++"
270 cd ${S}/qmake
271 ${OE_QMAKE_QMAKE}
272 oe_runmake CC="${CC}" CXX="${CXX}"
273 cd ${S}
274}
275
276python populate_packages_prepend() {
277 translation_dir = d.expand('${datadir}/${QT_DIR_NAME}/translations/')
278 translation_name = d.expand('${QT_BASE_NAME}-translation-%s')
279 do_split_packages(d, translation_dir, '^(assistant|designer|linguist|qt|qtconfig|qvfb|qtscript)_(.*)\.qm$', translation_name, '${PN} translation for %s', extra_depends='' )
280
281 phrasebook_dir = d.expand('${datadir}/${QT_DIR_NAME}/phrasebooks/')
282 phrasebook_name = d.expand('${QT_BASE_NAME}-phrasebook-%s')
283
284 if os.path.exists("%s%s" % (d.expand('${D}'), phrasebook_dir)):
285 do_split_packages(d, phrasebook_dir, '^(.*)\.qph$', phrasebook_name, '${PN} phrasebook for %s', extra_depends='' )
286 else:
287 bb.note("The path does not exist:", d.expand('${D}'), phrasebook_dir)
288
289 # Package all the plugins and their -dbg version and create a meta package
290 def qtopia_split(path, name, glob):
291 """
292 Split the package into a normal and -dbg package and then add the
293 new packages to the meta package.
294 """
295 plugin_dir = d.expand('${libdir}/${QT_DIR_NAME}/plugins/%s/' % path)
296 if not os.path.exists("%s%s" % (d.expand('${D}'), plugin_dir)):
297 bb.note("The path does not exist:", d.expand('${D}'), plugin_dir)
298 return
299
300 plugin_name = d.expand('${QT_BASE_NAME}-plugin-%s-%%s' % name)
301 dev_packages = []
302 dev_hook = lambda file,pkg,b,c,d:dev_packages.append((file,pkg))
303 do_split_packages(d, plugin_dir, glob, plugin_name, '${PN} %s for %%s' % name, extra_depends='', hook=dev_hook)
304 # Create a -dbg package as well
305 plugin_dir_dbg = d.expand('${libdir}/${QT_DIR_NAME}/plugins/%s/.debug' % path)
306 packages = d.getVar('PACKAGES')
307 for (file,package) in dev_packages:
308 packages = "%s %s-dbg" % (packages, package)
309 file_name = os.path.join(plugin_dir_dbg, os.path.basename(file))
310 d.setVar("FILES_%s-dbg" % package, file_name)
311 d.setVar("DESCRIPTION_%s-dbg" % package, "${PN} %s for %s" % (name, package))
312
313 d.setVar('PACKAGES', packages)
314
315 qtopia_split('accessible', 'accessible', '^libq(.*)\.so$')
316 qtopia_split('codecs', 'codec', '^libq(.*)\.so$')
317 qtopia_split('decorations', 'decoration', '^libqdecoration(.*)\.so$')
318 qtopia_split('designer', 'designer', '^lib(.*)\.so$')
319 qtopia_split('gfxdrivers', 'gfxdriver', '^libq(.*)\.so$')
320 qtopia_split('graphicssystems','graphicssystems', '^libq(.*)\.so$')
321 qtopia_split('kbddrivers', 'kbddriver', '^libq(.*)kbddriver\.so$')
322 qtopia_split('mousedrivers', 'mousedriver', '^libq(.*)mousedriver\.so$')
323 qtopia_split('iconengines', 'iconengine', '^libq(.*)\.so$')
324 qtopia_split('imageformats', 'imageformat', '^libq(.*)\.so$')
325 qtopia_split('inputmethods', 'inputmethod', '^libq(.*)\.so$')
326 qtopia_split('sqldrivers', 'sqldriver', '^libq(.*)\.so$')
327 qtopia_split('script', 'script', '^libqtscript(.*)\.so$')
328 qtopia_split('styles', 'style', '^libq(.*)\.so$')
329 qtopia_split('phonon_backend','phonon-backend','^libphonon_(.*)\.so$')
330 qtopia_split('bearer', 'bearer', '^libq(.*)bearer\.so$')
331}
332
333do_install() {
334 oe_runmake install INSTALL_ROOT=${D}
335
336 # Install a proper target version of qmake
337 rm ${D}/${bindir}/qmake
338 install -m 0755 bin/qmake2 ${D}${bindir}/qmake
339
340 # fix pkgconfig, libtool and prl files
341 sed -i -e 's#-L${S}/lib/\?##g' \
342 -e 's#-L${STAGING_LIBDIR}/\?##g' \
343 -e 's#STAGING_LIBDIR}#libdir}'#g \
344 -e 's#-L${libdir}/\?##g' \
345 -e s#'$(OE_QMAKE_LIBS_X11)'#"${OE_QMAKE_LIBS_X11}"#g \
346 -e 's#" -Wl,-rpath-link,${S}/lib/\?"##g' \
347 -e 's#" -Wl,-rpath-link,${libdir}/\?"##g' \
348 -e 's#Iin#I${in#g' \
349 -e 's#-L\.\./\.\./WebCore/release\s\+-L\.\./\.\./JavaScriptCore/release\s\+-lwebcore##g' \
350 -e 's#-ljscore##g' \
351 ${D}${libdir}/*.la ${D}${libdir}/*.prl ${D}${libdir}/pkgconfig/*.pc
352
353 sed -i -e s#" -Wl,-rpath-link,${S}/lib"##g \
354 ${D}${datadir}/${QT_DIR_NAME}/mkspecs/common/linux.conf
355
356 # fix pkgconfig files
357 sed -i -e s#"moc_location=.*$"#"moc_location=${bindir}/moc4"# \
358 -e s#"uic_location=.*$"#"uic_location=${bindir}/uic4"# \
359 ${D}${libdir}/pkgconfig/*.pc
360 for name in ${QT_LIB_NAMES}; do
361 sed -i -e /Requires/s#"${name}"#"${name}${QT_LIBINFIX}"#g ${D}${libdir}/pkgconfig/*.pc
362 done
363
364 # QT abuses $includedir to point to its headers, which breaks pkgconfig sysroot, so manually fix it up here:
365 for pc in ${D}${libdir}/pkgconfig/*.pc ; do
366 sed -i -e "s:prefix}/include/${QT_DIR_NAME}/$(basename $pc .pc):prefix}/include:" \
367 -e 's:IP{:I${:g' $pc
368 done
369
370 #Append an E to the qtdemo file
371 if [ -n "${QT_LIBINFIX}" ] ; then
372 [ -f ${D}${bindir}/qtdemo ] && mv ${D}${bindir}/qtdemo ${D}${bindir}/qtdemo${QT_LIBINFIX}
373 fi
374
375 script="${D}/${datadir}/${QT_DIR_NAME}/environment-setup"
376 touch $script
377 echo 'export QT_DIR_NAME=${QT_DIR_NAME}' >> $script
378 echo 'export QT_LIBINFIX=${QT_LIBINFIX}' >> $script
379 echo 'export OE_QMAKE_AR=ar' >> $script
380 echo 'export OE_QMAKE_CC=gcc' >> $script
381 echo 'export OE_QMAKE_CXX=g++' >> $script
382 echo 'export OE_QMAKE_LINK=g++' >> $script
383 echo 'export OE_QMAKE_LIBDIR_QT=${libdir}' >> $script
384 echo 'export OE_QMAKE_INCDIR_QT=${includedir}/${QT_DIR_NAME}' >> $script
385 echo 'export OE_QMAKE_MOC=${bindir}/moc' >> $script
386 echo 'export OE_QMAKE_UIC=${bindir}/uic' >> $script
387 echo 'export OE_QMAKE_UIC3=${bindir}/uic3' >> $script
388 echo 'export OE_QMAKE_RCC=${bindir}/rcc' >> $script
389 echo 'export OE_QMAKE_QDBUSCPP2XML=${bindir}/qdbuscpp2xml' >> $script
390 echo 'export OE_QMAKE_QDBUSXML2CPP=${bindir}/qdbusxml2cpp' >> $script
391 echo 'export OE_QMAKE_QT_CONFIG=${datadir}/${QT_DIR_NAME}/mkspecs/qconfig.pri' >> $script
392 echo 'export QMAKESPEC=${datadir}/${QT_DIR_NAME}/mkspecs/linux-g++' >> $script
393 chmod 0755 $script
394}
diff --git a/meta/recipes-qt/qt4/qt4_arch.inc b/meta/recipes-qt/qt4/qt4_arch.inc
new file mode 100644
index 0000000000..e94c2847b7
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4_arch.inc
@@ -0,0 +1,22 @@
1inherit siteinfo
2
3ARM_INSTRUCTION_SET = "arm"
4
5set_arch() {
6 case ${TARGET_ARCH} in
7 aarch64*) QT_ARCH=aarch64 ;;
8 arm*) QT_ARCH=arm ;;
9 i*86*) QT_ARCH=i386 ;;
10 mips*) QT_ARCH=mips ;;
11 powerpc*) QT_ARCH=powerpc ;;
12 x86_64*) QT_ARCH=x86_64 ;;
13 esac
14}
15
16set_endian() {
17 if [ ${SITEINFO_ENDIANNESS} = "le" ] ; then
18 QT_ENDIAN="-little-endian"
19 elif [ ${SITEINFO_ENDIANNESS} = "be" ] ; then
20 QT_ENDIAN="-big-endian"
21 fi
22}