diff options
Diffstat (limited to 'package/qt5')
| -rw-r--r-- | package/qt5/Config.in | 5 | ||||
| -rw-r--r-- | package/qt5/qt5base/5.8.0/0002-fix-VNC-platform-plugin-build-on-big-endian-machines.patch | 97 | ||||
| -rw-r--r-- | package/qt5/qt5base/Config.in | 1 | ||||
| -rw-r--r-- | package/qt5/qt5base/qt5base.mk | 10 | ||||
| -rw-r--r-- | package/qt5/qt5quickcontrols/qt5quickcontrols.mk | 16 | ||||
| -rw-r--r-- | package/qt5/qt5webkit/Config.in | 3 |
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 |

