summaryrefslogtreecommitdiffstats
path: root/package/qt5
diff options
context:
space:
mode:
Diffstat (limited to 'package/qt5')
-rw-r--r--package/qt5/Config.in5
-rw-r--r--package/qt5/qt5base/5.8.0/0002-fix-VNC-platform-plugin-build-on-big-endian-machines.patch97
-rw-r--r--package/qt5/qt5base/Config.in1
-rw-r--r--package/qt5/qt5base/qt5base.mk10
-rw-r--r--package/qt5/qt5quickcontrols/qt5quickcontrols.mk16
-rw-r--r--package/qt5/qt5webkit/Config.in3
6 files changed, 129 insertions, 3 deletions
diff --git a/package/qt5/Config.in b/package/qt5/Config.in
index b3cb2adfe0..4bcbc6ef54 100644
--- a/package/qt5/Config.in
+++ b/package/qt5/Config.in
@@ -38,12 +38,17 @@ config BR2_PACKAGE_QT5_VERSION_LATEST
bool "Latest (5.8)"
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 # C++11
depends on BR2_HOST_GCC_AT_LEAST_4_8 # C++11
+ depends on !BR2_ARM_CPU_ARMV4 # needs ARMv5+
+ # no built-in double-conversion support
+ depends on !BR2_arc && !BR2_nios2 && !BR2_xtensa
help
This option builds Qt 5.8, which is licensed under
(L)GPLv3+.
comment "Latest Qt version needs host/toolchain w/ gcc >= 4.8"
depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_HOST_GCC_AT_LEAST_4_8
+ depends on !BR2_ARM_CPU_ARMV4
+ depends on !BR2_arc && !BR2_nios2 && !BR2_xtensa
config BR2_PACKAGE_QT5_VERSION_5_6
bool "LTS (5.6)"
diff --git a/package/qt5/qt5base/5.8.0/0002-fix-VNC-platform-plugin-build-on-big-endian-machines.patch b/package/qt5/qt5base/5.8.0/0002-fix-VNC-platform-plugin-build-on-big-endian-machines.patch
new file mode 100644
index 0000000000..e7d7ee3600
--- /dev/null
+++ b/package/qt5/qt5base/5.8.0/0002-fix-VNC-platform-plugin-build-on-big-endian-machines.patch
@@ -0,0 +1,97 @@
+From 35ee8b53549fab6ebffe289417e1d94298447af7 Mon Sep 17 00:00:00 2001
+From: Shawn Rutledge <shawn.rutledge@digia.com>
+Date: Fri, 10 Feb 2017 13:56:58 +0100
+Subject: [PATCH] fix VNC platform plugin build on big-endian machines
+
+Task-number: QTBUG-58734
+Change-Id: I3e44ee4be5003acaba2f1b8ed2658a3ff1bd700e
+Reviewed-by: Lars Knoll <lars.knoll@qt.io>
+Reviewed-by: Dmitry Shachnev <mitya57@gmail.com>
+
+Upstream: http://code.qt.io/cgit/qt/qtbase.git/patch/?id=6f64bfa654fb7e20bb75ec3b0544b81482babb44
+Signed-off-by: Peter Seiderer <ps.report@gmx.net>
+---
+ src/plugins/platforms/vnc/qvncclient.cpp | 6 +++---
+ src/plugins/platforms/vnc/qvncscreen.cpp | 7 ++++++-
+ src/plugins/platforms/vnc/qvncscreen.h | 2 +-
+ 3 files changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/src/plugins/platforms/vnc/qvncclient.cpp b/src/plugins/platforms/vnc/qvncclient.cpp
+index dae3e83f..58dcfc9b 100644
+--- a/src/plugins/platforms/vnc/qvncclient.cpp
++++ b/src/plugins/platforms/vnc/qvncclient.cpp
+@@ -142,7 +142,7 @@ void QVncClient::convertPixels(char *dst, const char *src, int count) const
+ case 16: {
+ quint16 p = *reinterpret_cast<const quint16*>(src);
+ #if Q_BYTE_ORDER == Q_BIG_ENDIAN
+- if (swapBytes)
++ if (m_swapBytes)
+ p = ((p & 0xff) << 8) | ((p & 0xff00) >> 8);
+ #endif
+ r = (p >> 11) & 0x1f;
+@@ -484,7 +484,7 @@ void QVncClient::setPixelFormat()
+ m_sameEndian = (QSysInfo::ByteOrder == QSysInfo::BigEndian) == !!m_pixelFormat.bigEndian;
+ m_needConversion = pixelConversionNeeded();
+ #if Q_BYTE_ORDER == Q_BIG_ENDIAN
+- m_swapBytes = qvnc_screen->swapBytes();
++ m_swapBytes = server()->screen()->swapBytes();
+ #endif
+ }
+ }
+@@ -639,7 +639,7 @@ bool QVncClient::pixelConversionNeeded() const
+ return true;
+
+ #if Q_BYTE_ORDER == Q_BIG_ENDIAN
+- if (qvnc_screen->swapBytes())
++ if (server()->screen()->swapBytes())
+ return true;
+ #endif
+
+diff --git a/src/plugins/platforms/vnc/qvncscreen.cpp b/src/plugins/platforms/vnc/qvncscreen.cpp
+index 34def457..64f1bc0b 100644
+--- a/src/plugins/platforms/vnc/qvncscreen.cpp
++++ b/src/plugins/platforms/vnc/qvncscreen.cpp
+@@ -43,6 +43,7 @@
+ #include <QtFbSupport/private/qfbcursor_p.h>
+
+ #include <QtGui/QPainter>
++#include <QtGui/QScreen>
+ #include <QtCore/QRegularExpression>
+
+
+@@ -172,14 +173,18 @@ QPixmap QVncScreen::grabWindow(WId wid, int x, int y, int width, int height) con
+ }
+
+ #if Q_BYTE_ORDER == Q_BIG_ENDIAN
+-bool QVNCScreen::swapBytes() const
++bool QVncScreen::swapBytes() const
+ {
++ return false;
++
++ /* TODO
+ if (depth() != 16)
+ return false;
+
+ if (screen())
+ return screen()->frameBufferLittleEndian();
+ return frameBufferLittleEndian();
++ */
+ }
+ #endif
+
+diff --git a/src/plugins/platforms/vnc/qvncscreen.h b/src/plugins/platforms/vnc/qvncscreen.h
+index 785abd6d..0b42c3c7 100644
+--- a/src/plugins/platforms/vnc/qvncscreen.h
++++ b/src/plugins/platforms/vnc/qvncscreen.h
+@@ -73,7 +73,7 @@ public:
+ void clearDirty() { dirtyRegion = QRegion(); }
+
+ #if Q_BYTE_ORDER == Q_BIG_ENDIAN
+- bool swapBytes() const
++ bool swapBytes() const;
+ #endif
+
+ QStringList mArgs;
+--
+2.11.0
+
diff --git a/package/qt5/qt5base/Config.in b/package/qt5/qt5base/Config.in
index f22e034b30..337dcf2454 100644
--- a/package/qt5/qt5base/Config.in
+++ b/package/qt5/qt5base/Config.in
@@ -128,6 +128,7 @@ config BR2_PACKAGE_QT5BASE_XML
config BR2_PACKAGE_QT5BASE_GUI
bool "gui module"
+ select BR2_PACKAGE_FREETYPE
# At least one graphic backend must be enabled, so enable
# linuxfb if nothing is enabled.
select BR2_PACKAGE_QT5BASE_LINUXFB if \
diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
index 09bf5cf7bd..7a335736db 100644
--- a/package/qt5/qt5base/qt5base.mk
+++ b/package/qt5/qt5base/qt5base.mk
@@ -97,10 +97,16 @@ QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM),sqlite)
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_SQLITE_NONE),-no-sql-sqlite)
endif
+ifeq ($(BR2_PACKAGE_QT5BASE_GUI),y)
+QT5BASE_CONFIGURE_OPTS += -gui -system-freetype
+QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5_VERSION_5_6),-I$(STAGING_DIR)/usr/include/freetype2)
+QT5BASE_DEPENDENCIES += freetype
+else
+QT5BASE_CONFIGURE_OPTS += -no-gui -no-freetype
+endif
+QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),-widgets,-no-widgets)
# We have to use --enable-linuxfb, otherwise Qt thinks that -linuxfb
# is to add a link against the "inuxfb" library.
-QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_GUI),-gui,-no-gui)
-QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_WIDGETS),-widgets,-no-widgets)
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_LINUXFB),--enable-linuxfb,-no-linuxfb)
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_DIRECTFB),-directfb,-no-directfb)
QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_DIRECTFB),directfb)
diff --git a/package/qt5/qt5quickcontrols/qt5quickcontrols.mk b/package/qt5/qt5quickcontrols/qt5quickcontrols.mk
index c2946bc753..43254ba06b 100644
--- a/package/qt5/qt5quickcontrols/qt5quickcontrols.mk
+++ b/package/qt5/qt5quickcontrols/qt5quickcontrols.mk
@@ -30,11 +30,25 @@ define QT5QUICKCONTROLS_INSTALL_STAGING_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
endef
+
+ifeq ($(BR2_PACKAGE_QT5DECLARATIVE_QUICK)$(BR2_PACKAGE_QT5BASE_WIDGETS),yy)
+define QT5QUICKCONTROLS_INSTALL_TARGET_PRIVATEWIDGETS
+ cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/PrivateWidgets $(TARGET_DIR)/usr/qml/QtQuick
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_QT5_VERSION_5_6),y)
+define QT5QUICKCONTROLS_INSTALL_TARGET_LAYOUTS
+ cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/Layouts $(TARGET_DIR)/usr/qml/QtQuick
+endef
+endif
+
define QT5QUICKCONTROLS_INSTALL_TARGET_CMDS
cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/Controls $(TARGET_DIR)/usr/qml/QtQuick
cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/Dialogs $(TARGET_DIR)/usr/qml/QtQuick
cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/Extras $(TARGET_DIR)/usr/qml/QtQuick
- cp -dpfr $(STAGING_DIR)/usr/qml/QtQuick/PrivateWidgets $(TARGET_DIR)/usr/qml/QtQuick
+ $(QT5QUICKCONTROLS_INSTALL_TARGET_PRIVATEWIDGETS)
+ $(QT5QUICKCONTROLS_INSTALL_TARGET_LAYOUTS)
endef
$(eval $(generic-package))
diff --git a/package/qt5/qt5webkit/Config.in b/package/qt5/qt5webkit/Config.in
index e9c11fbe6f..2534360459 100644
--- a/package/qt5/qt5webkit/Config.in
+++ b/package/qt5/qt5webkit/Config.in
@@ -9,6 +9,8 @@ config BR2_PACKAGE_QT5WEBKIT
depends on !BR2_STATIC_LIBS
depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
depends on !BR2_BINFMT_FLAT # icu
+ # assumes a FPU is available on MIPS
+ depends on !BR2_MIPS_SOFT_FLOAT
help
Qt is a cross-platform application and UI framework for
developers using C++.
@@ -28,3 +30,4 @@ comment "qt5webkit needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS
depends on BR2_PACKAGE_QT5_JSCORE_AVAILABLE
depends on !BR2_BINFMT_FLAT
+ depends on !BR2_MIPS_SOFT_FLOAT
OpenPOWER on IntegriCloud