update buildroot to 2017.02.11

This commit is contained in:
jbnadal
2018-05-22 15:35:47 +02:00
parent 4bf1f5e091
commit a3c10bd762
9257 changed files with 433426 additions and 1701 deletions

View File

@@ -0,0 +1,45 @@
From 91c3b111e45dd476aba057836b1b618eacf90f3f Mon Sep 17 00:00:00 2001
From: Julien Corjon <corjon.j@ecagroup.com>
Date: Tue, 21 Jul 2015 09:58:14 +0200
Subject: [PATCH] eglfs - fix rasp-pi header inclusion
eglplateform.h include headers for low level instruction and fail on brcm
headers inclusion
For the brcm presence test we use egl pkg-config file
For the eglfs-plugin compilation we use the egl configuration
Upstream-Status: https://bugreports.qt.io/browse/QTBUG-47339
Signed-off-by: Julien Corjon <corjon.j@ecagroup.com>
---
config.tests/qpa/eglfs-brcm/eglfs-brcm.pro | 2 ++
src/plugins/platforms/eglfs/eglfs-plugin.pro | 1 +
2 files changed, 3 insertions(+)
diff --git a/config.tests/qpa/eglfs-brcm/eglfs-brcm.pro b/config.tests/qpa/eglfs-brcm/eglfs-brcm.pro
index ce16a3a..192a8ad 100644
--- a/config.tests/qpa/eglfs-brcm/eglfs-brcm.pro
+++ b/config.tests/qpa/eglfs-brcm/eglfs-brcm.pro
@@ -1,6 +1,8 @@
SOURCES = eglfs-brcm.cpp
CONFIG -= qt
+CONFIG += link_pkgconfig
+PKGCONFIG += egl
INCLUDEPATH += $$QMAKE_INCDIR_EGL
diff --git a/src/plugins/platforms/eglfs/eglfs-plugin.pro b/src/plugins/platforms/eglfs/eglfs-plugin.pro
index 0f493fd..8479496 100644
--- a/src/plugins/platforms/eglfs/eglfs-plugin.pro
+++ b/src/plugins/platforms/eglfs/eglfs-plugin.pro
@@ -6,6 +6,7 @@ PLUGIN_CLASS_NAME = QEglFSIntegrationPlugin
load(qt_plugin)
QT += platformsupport-private eglfs_device_lib-private
+CONFIG += egl
SOURCES += $$PWD/qeglfsmain.cpp
--
2.1.0

View File

@@ -0,0 +1,34 @@
From 74af93f5298b54bc2327843f390bf202776f2f48 Mon Sep 17 00:00:00 2001
From: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Date: Tue, 10 Jan 2017 14:18:02 +0100
Subject: [PATCH] fix parallel builds with -qt-freetype -system-libpng
freetype has no dependency on gui, so it needs to pull in gui's
configuration manually, as that's where the system libpng is found.
Task-number: QTBUG-58038
Change-Id: I881495f7d2a8f7c1a45d7d4c9e7698ff1d30f2a9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Joni Poikelin <joni.poikelin@qt.io>
Upstream: https://code.qt.io/cgit/qt/qtbase.git/commit/?id=4dcfd90e4fd7d4c49138038dbbcbda8794a9fbff
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
src/3rdparty/freetype/freetype.pro | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/3rdparty/freetype/freetype.pro b/src/3rdparty/freetype/freetype.pro
index 5b1eb92e..390a6da7 100644
--- a/src/3rdparty/freetype/freetype.pro
+++ b/src/3rdparty/freetype/freetype.pro
@@ -69,6 +69,7 @@ DEFINES += FT_CONFIG_OPTION_SYSTEM_ZLIB
include(../zlib_dependency.pri)
DEFINES += FT_CONFIG_OPTION_USE_PNG
+include($$OUT_PWD/../../gui/qtgui-config.pri)
QMAKE_USE_PRIVATE += libpng
DEFINES += TT_CONFIG_OPTION_SUBPIXEL_HINTING
--
2.11.0

View File

@@ -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

View File

@@ -0,0 +1,65 @@
From c5d7425f8ad391112758db161e3e08f18dc9d299 Mon Sep 17 00:00:00 2001
From: Marc Mutz <marc.mutz@kdab.com>
Date: Thu, 26 May 2016 08:30:26 +0200
Subject: [PATCH] QAtomic: pass explicit failure mode to
std::atomic::compare_exchange_strong
... in an attempt to avoid GCC 4.8 errors such as
bits/atomic_base.h:577:70: error: failure memory model cannot be stronger than success memory model for '__atomic_compare_exchange'
return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, __m1, __m2);
^
as seen on Android.
Change-Id: If046e735888cf331d2d6506d8d5ca9aa7402f9ad
[Bug report: https://bugreports.qt.io/browse/QTBUG-59399
Patch sent upstream: https://codereview.qt-project.org/#/c/187980/]
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.org>
---
src/corelib/arch/qatomic_cxx11.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/corelib/arch/qatomic_cxx11.h b/src/corelib/arch/qatomic_cxx11.h
index bb49aae..d6731ec 100644
--- a/src/corelib/arch/qatomic_cxx11.h
+++ b/src/corelib/arch/qatomic_cxx11.h
@@ -153,7 +153,7 @@ template <typename X> struct QAtomicOps
template <typename T>
static bool testAndSetRelaxed(std::atomic<T> &_q_value, T expectedValue, T newValue, T *currentValue = Q_NULLPTR) Q_DECL_NOTHROW
{
- bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_relaxed);
+ bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_relaxed, std::memory_order_relaxed);
if (currentValue)
*currentValue = expectedValue;
return tmp;
@@ -162,7 +162,7 @@ template <typename X> struct QAtomicOps
template <typename T>
static bool testAndSetAcquire(std::atomic<T> &_q_value, T expectedValue, T newValue, T *currentValue = Q_NULLPTR) Q_DECL_NOTHROW
{
- bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_acquire);
+ bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_acquire, std::memory_order_acquire);
if (currentValue)
*currentValue = expectedValue;
return tmp;
@@ -171,7 +171,7 @@ template <typename X> struct QAtomicOps
template <typename T>
static bool testAndSetRelease(std::atomic<T> &_q_value, T expectedValue, T newValue, T *currentValue = Q_NULLPTR) Q_DECL_NOTHROW
{
- bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_release);
+ bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_release, std::memory_order_relaxed);
if (currentValue)
*currentValue = expectedValue;
return tmp;
@@ -180,7 +180,7 @@ template <typename X> struct QAtomicOps
template <typename T>
static bool testAndSetOrdered(std::atomic<T> &_q_value, T expectedValue, T newValue, T *currentValue = Q_NULLPTR) Q_DECL_NOTHROW
{
- bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_acq_rel);
+ bool tmp = _q_value.compare_exchange_strong(expectedValue, newValue, std::memory_order_acq_rel, std::memory_order_acquire);
if (currentValue)
*currentValue = expectedValue;
return tmp;
--
1.7.10.4

View File

@@ -0,0 +1,36 @@
From 8902f4d7b7c532592d1a34ad117698d3e380e9e1 Mon Sep 17 00:00:00 2001
From: Peter Seiderer <ps.report@gmx.net>
Date: Fri, 10 Mar 2017 22:23:06 +0100
Subject: [PATCH] eglfs: fix x11 header related compile failure
Add egl config and QT_EGL_NO_X11 define (as all other eglfs project
files do).
Task-number: QTBUG-59427
Change-Id: Ifbb11eae0fdf0e58c0b7feecb9a7914a889c8f77
Upstream: https://codereview.qt-project.org/188158
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
src/plugins/platforms/eglfs/eglfs-plugin.pro | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/plugins/platforms/eglfs/eglfs-plugin.pro b/src/plugins/platforms/eglfs/eglfs-plugin.pro
index cf4863975a..ec229796e5 100644
--- a/src/plugins/platforms/eglfs/eglfs-plugin.pro
+++ b/src/plugins/platforms/eglfs/eglfs-plugin.pro
@@ -2,6 +2,11 @@ TARGET = qeglfs
QT += eglfsdeviceintegration-private
+CONFIG += egl
+
+# Avoid X11 header collision, use generic EGL native types
+DEFINES += QT_EGL_NO_X11
+
SOURCES += $$PWD/qeglfsmain.cpp
OTHER_FILES += $$PWD/eglfs.json
--
2.11.0

View File

@@ -0,0 +1,42 @@
From fe8a9bacf781fcf290e04a08f2b8e37d881d58bb Mon Sep 17 00:00:00 2001
From: Peter Seiderer <ps.report@gmx.net>
Date: Thu, 27 Apr 2017 22:41:28 +0200
Subject: [PATCH] examples: fix compile without gui module
Fixes:
Project ERROR: Could not find feature opengl.
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
examples/gui/gui.pro | 2 +-
examples/widgets/widgets.pro | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/examples/gui/gui.pro b/examples/gui/gui.pro
index a4d960d3f5..b8080c2075 100644
--- a/examples/gui/gui.pro
+++ b/examples/gui/gui.pro
@@ -6,5 +6,5 @@ CONFIG += no_docs_target
SUBDIRS += analogclock
SUBDIRS += rasterwindow
-qtConfig(opengl): \
+qtHaveModule(gui):qtConfig(opengl): \
SUBDIRS += openglwindow
diff --git a/examples/widgets/widgets.pro b/examples/widgets/widgets.pro
index 513ddc91f2..cef4936d32 100644
--- a/examples/widgets/widgets.pro
+++ b/examples/widgets/widgets.pro
@@ -22,7 +22,7 @@ SUBDIRS = \
tutorials \
widgets
-qtConfig(opengl): \
+qtHaveModule(gui):qtConfig(opengl): \
SUBDIRS += windowcontainer
contains(DEFINES, QT_NO_CURSOR): SUBDIRS -= mainwindows
--
2.11.0

View File

@@ -0,0 +1,44 @@
From f0c02fb22bc277e2015a18e562b551ec7b3eed9e Mon Sep 17 00:00:00 2001
From: Peter Seiderer <ps.report@gmx.net>
Date: Sun, 16 Jul 2017 00:05:44 +0200
Subject: [PATCH] Fix error attribute(target("+crc")) is unknown
Task-number: QTBUG-61975
Change-Id: I0b1b55c0737dad485b5ace8e6eb7cb842589453d
---
src/corelib/tools/qhash.cpp | 2 ++
src/corelib/tools/qsimd_p.h | 3 +++
2 files changed, 5 insertions(+)
diff --git a/src/corelib/tools/qhash.cpp b/src/corelib/tools/qhash.cpp
index 1f9c05c..bbf6efb 100644
--- a/src/corelib/tools/qhash.cpp
+++ b/src/corelib/tools/qhash.cpp
@@ -144,7 +144,9 @@ static inline bool hasFastCrc32()
}
template <typename Char>
+#if defined(__aarch64__)
QT_FUNCTION_TARGET(CRC32)
+#endif
static uint crc32(const Char *ptr, size_t len, uint h)
{
// The crc32[whbd] instructions on Aarch64/Aarch32 calculate a 32-bit CRC32 checksum
diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h
index 023a4b0..a85d572 100644
--- a/src/corelib/tools/qsimd_p.h
+++ b/src/corelib/tools/qsimd_p.h
@@ -326,7 +326,10 @@
#endif
// AArch64/ARM64
#if defined(Q_PROCESSOR_ARM_V8) && defined(__ARM_FEATURE_CRC32)
+#if defined(__aarch64__)
+// only available on aarch64
#define QT_FUNCTION_TARGET_STRING_CRC32 "+crc"
+#endif
# include <arm_acle.h>
#endif
--
2.7.4

View File

@@ -0,0 +1,289 @@
config BR2_PACKAGE_QT5BASE
bool "qt5base"
select BR2_PACKAGE_ZLIB
select BR2_PACKAGE_PCRE
select BR2_PACKAGE_PCRE_16
select BR2_PACKAGE_PCRE_UTF
help
Qt is a cross-platform application and UI framework for
developers using C++.
This package corresponds to the qt5base module, which
contains the base Qt libraries: QtCore, QtNetwork, QtGui,
QtWidgets, etc.
http://qt.io
if BR2_PACKAGE_QT5BASE
config BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS
string "Custom configuration options"
help
Define custom qt5 configuration options which can be used to
enable or disable options not managed by buildroot. These
options are appended to the ones generated by buildroot and
passed to qt5base during configuration.
E.g. to remove the Windows Vista style option, add the option
-no-feature-style_windowsvista.
config BR2_PACKAGE_QT5BASE_LICENSE_APPROVED
bool "Approve free license"
help
Select this if you approve one of the available free licenses for the
Qt5 library.
By doing this you will not be asked while the library is compiled.
Please read and understand the license terms before approving this.
LGPL: http://doc.qt.io/qt-5/lgpl.html
See also http://doc.qt.io/qt-5/licensing.html
config BR2_PACKAGE_QT5BASE_CONFIG_FILE
string "Config file"
help
Configure options allow to set which modules are being
compiled or not in Qt, but Qt also provide a more
fine-grained mechanism to configure which features should be
enabled or disabled, through a header file. Examples of such
header files can be found in src/corelib/global/qconfig-*.h
in the Qt sources.
This option allows to set the path of such a configuration
file, which Buildroot will give to Qt at compile time.
config BR2_PACKAGE_QT5BASE_EXAMPLES
bool "Compile and install examples (with code)"
select BR2_PACKAGE_QT5BASE_NETWORK
select BR2_PACKAGE_QT5BASE_XML
help
If unsure, say N.
config BR2_PACKAGE_QT5BASE_NETWORK
def_bool y
config BR2_PACKAGE_QT5BASE_CONCURRENT
bool "concurrent module"
help
This options enables the Qt5Concurrent library.
config BR2_PACKAGE_QT5BASE_SQL
def_bool y
if BR2_PACKAGE_QT5BASE_SQL
config BR2_PACKAGE_QT5BASE_MYSQL
bool "MySQL Plugin"
select BR2_PACKAGE_MYSQL
select BR2_PACKAGE_NCURSES
select BR2_PACKAGE_READLINE
depends on BR2_USE_MMU # mysql
help
Build MySQL plugin
If unsure, say n.
config BR2_PACKAGE_QT5BASE_PSQL
bool "PostgreSQL Plugin"
select BR2_PACKAGE_POSTGRESQL
depends on BR2_USE_MMU # postgresql
depends on !BR2_STATIC_LIBS
help
Build PostgreSQL plugin
If unsure, say n.
comment "PostgreSQL plugin needs a toolchain w/ dynamic library"
depends on BR2_USE_MMU
depends on BR2_STATIC_LIBS
choice
prompt "SQLite 3 support"
default BR2_PACKAGE_QT5BASE_SQLITE_NONE
help
Select SQLite support.
config BR2_PACKAGE_QT5BASE_SQLITE_NONE
bool "No sqlite support"
help
Do not compile any kind of SQLite support.
config BR2_PACKAGE_QT5BASE_SQLITE_QT
bool "Qt SQLite"
help
Use Qt bundled SQLite support.
config BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM
bool "System SQLite"
select BR2_PACKAGE_SQLITE
help
Use system SQLite.
endchoice
endif
config BR2_PACKAGE_QT5BASE_TEST
def_bool y
config BR2_PACKAGE_QT5BASE_XML
def_bool y
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 \
!BR2_PACKAGE_QT5BASE_DIRECTFB && \
!BR2_PACKAGE_QT5BASE_XCB && \
!BR2_PACKAGE_QT5BASE_EGLFS
help
This option enables the Qt5Gui library.
if BR2_PACKAGE_QT5BASE_GUI
config BR2_PACKAGE_QT5BASE_WIDGETS
bool "widgets module"
select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_QT5BASE_XCB
help
This option enables the Qt5Widgets library.
comment "OpenGL support needs an OpenGL-capable backend"
depends on !BR2_PACKAGE_QT5_GL_AVAILABLE
config BR2_PACKAGE_QT5BASE_OPENGL
bool "OpenGL support"
depends on BR2_PACKAGE_QT5_GL_AVAILABLE
help
This option enables OpenGL support.
if BR2_PACKAGE_QT5BASE_OPENGL
choice
prompt "OpenGL API"
help
Select OpenGL API.
config BR2_PACKAGE_QT5BASE_OPENGL_DESKTOP
bool "Desktop OpenGL"
depends on BR2_PACKAGE_HAS_LIBGL
help
Use desktop OpenGL.
config BR2_PACKAGE_QT5BASE_OPENGL_ES2
bool "OpenGL ES 2.0+"
depends on BR2_PACKAGE_HAS_LIBGLES
help
Use OpenGL ES 2.0 and later versions.
endchoice
config BR2_PACKAGE_QT5BASE_OPENGL_LIB
bool "opengl module"
select BR2_PACKAGE_QT5BASE_WIDGETS
help
This option enables the Qt5OpenGL library. This library includes
OpenGL support classes provided to ease porting from Qt 4.x.
endif
config BR2_PACKAGE_QT5BASE_LINUXFB
bool "linuxfb support"
config BR2_PACKAGE_QT5BASE_DIRECTFB
bool "directfb support"
depends on BR2_PACKAGE_DIRECTFB
comment "directfb backend available if directfb is enabled"
depends on !BR2_PACKAGE_DIRECTFB
config BR2_PACKAGE_QT5BASE_XCB
bool "X.org XCB support"
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_XLIB_LIBX11
select BR2_PACKAGE_LIBXCB
select BR2_PACKAGE_XCB_UTIL_IMAGE
select BR2_PACKAGE_XCB_UTIL_KEYSYMS
select BR2_PACKAGE_XCB_UTIL_WM
select BR2_PACKAGE_LIBXKBCOMMON
comment "X.org XCB backend available if X.org is enabled"
depends on !BR2_PACKAGE_XORG7
config BR2_PACKAGE_QT5BASE_EGLFS
bool "eglfs support"
select BR2_PACKAGE_QT5BASE_OPENGL
depends on BR2_PACKAGE_HAS_LIBEGL
depends on BR2_PACKAGE_QT5_GL_AVAILABLE
comment "eglfs backend available if OpenGL and EGL are enabled"
depends on !BR2_PACKAGE_HAS_LIBEGL || !BR2_PACKAGE_QT5_GL_AVAILABLE
config BR2_PACKAGE_QT5BASE_DEFAULT_QPA
string "Default graphical platform"
help
Choose the default platform abstraction to use for graphical
applications (e.g xcb, linuxfb, eglfs, ...). If this is empty, the
default for your architecture will be used (usually this is eglfs).
You can get a list of supported platforms by running a Qt application
with the option "-platform help" on your target. You can choose a
different platform at runtime with the -platform option.
config BR2_PACKAGE_QT5BASE_PRINTSUPPORT
depends on BR2_PACKAGE_QT5BASE_WIDGETS
def_bool y
config BR2_PACKAGE_QT5BASE_FONTCONFIG
bool "fontconfig support"
select BR2_PACKAGE_FONTCONFIG
help
This option enables Fontconfig and Freetype support using
the system fontconfig and freetype2 libraries.
config BR2_PACKAGE_QT5BASE_GIF
bool "GIF support"
help
This compiles and installs the plugin for GIF reading support.
config BR2_PACKAGE_QT5BASE_JPEG
bool "JPEG support"
select BR2_PACKAGE_JPEG
help
This option enables JPEG support using the system libjpeg
library.
config BR2_PACKAGE_QT5BASE_PNG
bool "PNG support"
select BR2_PACKAGE_LIBPNG
help
This option enables PNG support using the system libpng
library.
endif
config BR2_PACKAGE_QT5BASE_DBUS
bool "DBus module"
select BR2_PACKAGE_DBUS
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_USE_MMU
help
This option enables the D-Bus module.
config BR2_PACKAGE_QT5BASE_ICU
bool "Enable ICU support"
select BR2_PACKAGE_ICU
depends on !BR2_BINFMT_FLAT # icu
help
This option enables ICU support in Qt5. This is for example
needed for Qt5Webkit.
config BR2_PACKAGE_QT5BASE_TSLIB
bool "Enable Tslib support"
depends on !BR2_STATIC_LIBS # dlopen
select BR2_PACKAGE_TSLIB
help
This options enables the Tslib plugin
comment "tslib support needs a toolchain w/ dynamic library"
depends on BR2_STATIC_LIBS
endif

View File

@@ -0,0 +1,28 @@
# Qt5 has a mechanism to support "device" profiles, so that people can
# specify the compiler, compiler flags and so on for a specific device.
# We leverage this mechanism in the Buildroot packaging of qt5 to
# simplify cross-compilation: we have our own "device" definition, which
# allows us to easily pass the cross-compiler paths and flags from our
# qt5.mk.
include(../common/linux_device_pre.conf)
# modifications to g++-unix.conf
QMAKE_CC = $${CROSS_COMPILE}gcc
QMAKE_CXX = $${CROSS_COMPILE}g++
# modifications to gcc-base.conf
QMAKE_CFLAGS += $${BR_COMPILER_CFLAGS}
QMAKE_CXXFLAGS += $${BR_COMPILER_CXXFLAGS}
QMAKE_CXXFLAGS_RELEASE += -O3
CONFIG += nostrip
QMAKE_LIBS += -lrt -lpthread -ldl
QMAKE_CFLAGS_ISYSTEM =
# Architecturespecific configuration
include(arch.conf)
include(../common/linux_device_post.conf)
load(qt_config)

View File

@@ -0,0 +1 @@
#include "../../linux-g++/qplatformdefs.h"

View File

@@ -0,0 +1,5 @@
# Hash from: https://download.qt.io/official_releases/qt/5.6/5.6.3/submodules/qtbase-opensource-src-5.6.3.tar.xz.mirrorlist
sha256 fef48529a6fc2617a30d75d952cb327c6be341fd104154993922184b3b3b4da1 qtbase-opensource-src-5.6.3.tar.xz
# Hash from: http://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qtbase-opensource-src-5.8.0.tar.xz
sha256 c17111ae02a44dc7be1ec2cf979a47ee9e58edf4904041a525c21f4fa53fc005 qtbase-opensource-src-5.8.0.tar.xz

View File

@@ -0,0 +1,314 @@
################################################################################
#
# qt5base
#
################################################################################
QT5BASE_VERSION = $(QT5_VERSION)
QT5BASE_SITE = $(QT5_SITE)
QT5BASE_SOURCE = qtbase-opensource-src-$(QT5BASE_VERSION).tar.xz
QT5BASE_DEPENDENCIES = host-pkgconf zlib pcre
QT5BASE_INSTALL_STAGING = YES
# A few comments:
# * -no-pch to workaround the issue described at
# http://comments.gmane.org/gmane.comp.lib.qt.devel/5933.
# * -system-zlib because zlib is mandatory for Qt build, and we
# want to use the Buildroot packaged zlib
# * -system-pcre because pcre is mandatory to build Qt, and we
# want to use the one packaged in Buildroot
QT5BASE_CONFIGURE_OPTS += \
-optimized-qmake \
-no-cups \
-no-iconv \
-system-zlib \
-system-pcre \
-no-pch \
-shared
QT5BASE_CONFIGURE_OPTS += $(call qstrip,$(BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS))
# Uses libgbm from mesa3d
ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y)
QT5BASE_CONFIGURE_OPTS += -kms -gbm
QT5BASE_DEPENDENCIES += mesa3d
else
QT5BASE_CONFIGURE_OPTS += -no-kms
endif
ifeq ($(BR2_ENABLE_DEBUG),y)
QT5BASE_CONFIGURE_OPTS += -debug
else
QT5BASE_CONFIGURE_OPTS += -release
endif
ifeq ($(BR2_PACKAGE_QT5_VERSION_5_6),y)
QT5BASE_CONFIGURE_OPTS += -largefile
endif
ifeq ($(BR2_PACKAGE_QT5BASE_LICENSE_APPROVED),y)
QT5BASE_CONFIGURE_OPTS += -opensource -confirm-license
ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
QT5BASE_LICENSE = GPLv2+ or LGPLv3, GPLv3 with exception(tools), GFDLv1.3 (docs)
QT5BASE_LICENSE_FILES = LICENSE.GPL2 LICENSE.GPLv3 LICENSE.GPL3-EXCEPT LICENSE.LGPLv3 LICENSE.FDL
else
QT5BASE_LICENSE = GPLv3 or LGPLv2.1 with exception or LGPLv3, GFDLv1.3 (docs)
QT5BASE_LICENSE_FILES = LICENSE.GPLv3 LICENSE.LGPLv21 LGPL_EXCEPTION.txt LICENSE.LGPLv3 LICENSE.FDL
endif
ifeq ($(BR2_PACKAGE_QT5BASE_EXAMPLES),y)
QT5BASE_LICENSE := $(QT5BASE_LICENSE), BSD-3c (examples)
QT5BASE_LICENSE_FILES += header.BSD
endif
else
QT5BASE_LICENSE = Commercial license
QT5BASE_REDISTRIBUTE = NO
endif
QT5BASE_CONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_QT5BASE_CONFIG_FILE))
ifneq ($(QT5BASE_CONFIG_FILE),)
QT5BASE_CONFIGURE_OPTS += -qconfig buildroot
endif
ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
QT5BASE_DEPENDENCIES += udev
endif
# Qt5 SQL Plugins
ifeq ($(BR2_PACKAGE_QT5BASE_SQL),y)
ifeq ($(BR2_PACKAGE_QT5BASE_MYSQL),y)
QT5BASE_CONFIGURE_OPTS += -plugin-sql-mysql -mysql_config $(STAGING_DIR)/usr/bin/mysql_config
QT5BASE_DEPENDENCIES += mysql
else
QT5BASE_CONFIGURE_OPTS += -no-sql-mysql
endif
ifeq ($(BR2_PACKAGE_QT5BASE_PSQL),y)
QT5BASE_CONFIGURE_OPTS += -plugin-sql-psql -psql_config $(STAGING_DIR)/usr/bin/pg_config
QT5BASE_DEPENDENCIES += postgresql
else
QT5BASE_CONFIGURE_OPTS += -no-sql-psql
endif
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_SQLITE_QT),-plugin-sql-sqlite)
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_SQLITE_SYSTEM),-system-sqlite)
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_LINUXFB),--enable-linuxfb,-no-linuxfb)
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_DIRECTFB),-directfb,-no-directfb)
QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_DIRECTFB),directfb)
ifeq ($(BR2_PACKAGE_QT5BASE_XCB),y)
QT5BASE_CONFIGURE_OPTS += -xcb -system-xkbcommon
QT5BASE_DEPENDENCIES += \
libxcb \
xcb-util-wm \
xcb-util-image \
xcb-util-keysyms \
xlib_libX11 \
libxkbcommon
ifeq ($(BR2_PACKAGE_QT5BASE_WIDGETS),y)
QT5BASE_DEPENDENCIES += xlib_libXext
endif
else
QT5BASE_CONFIGURE_OPTS += -no-xcb
endif
ifeq ($(BR2_PACKAGE_QT5BASE_OPENGL_DESKTOP),y)
QT5BASE_CONFIGURE_OPTS += -opengl desktop
QT5BASE_DEPENDENCIES += libgl
else ifeq ($(BR2_PACKAGE_QT5BASE_OPENGL_ES2),y)
QT5BASE_CONFIGURE_OPTS += -opengl es2
QT5BASE_DEPENDENCIES += libgles
else
QT5BASE_CONFIGURE_OPTS += -no-opengl
endif
QT5BASE_DEFAULT_QPA = $(call qstrip,$(BR2_PACKAGE_QT5BASE_DEFAULT_QPA))
QT5BASE_CONFIGURE_OPTS += $(if $(QT5BASE_DEFAULT_QPA),-qpa $(QT5BASE_DEFAULT_QPA))
ifeq ($(BR2_PACKAGE_QT5BASE_EGLFS),y)
QT5BASE_CONFIGURE_OPTS += -eglfs
QT5BASE_DEPENDENCIES += libegl
else
QT5BASE_CONFIGURE_OPTS += -no-eglfs
endif
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_OPENSSL),-openssl,-no-openssl)
QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_OPENSSL),openssl)
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_FONTCONFIG),-fontconfig,-no-fontconfig)
QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_FONTCONFIG),fontconfig)
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_GIF),,-no-gif)
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_JPEG),-system-libjpeg,-no-libjpeg)
QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_JPEG),jpeg)
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_PNG),-system-libpng,-no-libpng)
QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_PNG),libpng)
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_DBUS),-dbus,-no-dbus)
QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_DBUS),dbus)
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_TSLIB),-tslib,-no-tslib)
QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_TSLIB),tslib)
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_LIBGLIB2),-glib,-no-glib)
QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_LIBGLIB2),libglib2)
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_ICU),-icu,-no-icu)
QT5BASE_DEPENDENCIES += $(if $(BR2_PACKAGE_QT5BASE_ICU),icu)
QT5BASE_CONFIGURE_OPTS += $(if $(BR2_PACKAGE_QT5BASE_EXAMPLES),-make,-nomake) examples
ifeq ($(BR2_PACKAGE_QT5_VERSION_5_6),y)
# gstreamer 0.10 support is broken in qt5multimedia
ifeq ($(BR2_PACKAGE_GST1_PLUGINS_BASE),y)
QT5BASE_CONFIGURE_OPTS += -gstreamer 1.0
QT5BASE_DEPENDENCIES += gst1-plugins-base
else
QT5BASE_CONFIGURE_OPTS += -no-gstreamer
endif
endif
ifeq ($(BR2_PACKAGE_LIBINPUT),y)
QT5BASE_CONFIGURE_OPTS += -libinput
QT5BASE_DEPENDENCIES += libinput
else
QT5BASE_CONFIGURE_OPTS += -no-libinput
endif
# Build the list of libraries to be installed on the target
QT5BASE_INSTALL_LIBS_y += Qt5Core
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_XCB) += Qt5XcbQpa
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_NETWORK) += Qt5Network
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_CONCURRENT) += Qt5Concurrent
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_SQL) += Qt5Sql
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_TEST) += Qt5Test
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_XML) += Qt5Xml
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_OPENGL_LIB) += Qt5OpenGL
ifeq ($(BR2_PACKAGE_QT5_VERSION_LATEST),y)
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_EGLFS) += Qt5EglFSDeviceIntegration
ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_EGL),y)
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_EGLFS) += Qt5EglFsKmsSupport
endif
else
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_EGLFS) += Qt5EglDeviceIntegration
endif
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_GUI) += Qt5Gui
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_WIDGETS) += Qt5Widgets
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_PRINTSUPPORT) += Qt5PrintSupport
QT5BASE_INSTALL_LIBS_$(BR2_PACKAGE_QT5BASE_DBUS) += Qt5DBus
ifneq ($(QT5BASE_CONFIG_FILE),)
define QT5BASE_CONFIGURE_CONFIG_FILE
cp $(QT5BASE_CONFIG_FILE) $(@D)/src/corelib/global/qconfig-buildroot.h
endef
endif
QT5BASE_ARCH_CONFIG_FILE = $(@D)/mkspecs/devices/linux-buildroot-g++/arch.conf
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC)$(BR2_PACKAGE_QT5_VERSION_LATEST),yy)
# Qt 5.8 needs atomics, which on various architectures are in -latomic
define QT5BASE_CONFIGURE_ARCH_CONFIG
printf 'LIBS += -latomic\n' >$(QT5BASE_ARCH_CONFIG_FILE)
endef
endif
define QT5BASE_CONFIGURE_CMDS
$(INSTALL) -m 0644 -D $(QT5BASE_PKGDIR)/qmake.conf \
$(@D)/mkspecs/devices/linux-buildroot-g++/qmake.conf
$(INSTALL) -m 0644 -D $(QT5BASE_PKGDIR)/qplatformdefs.h \
$(@D)/mkspecs/devices/linux-buildroot-g++/qplatformdefs.h
$(QT5BASE_CONFIGURE_CONFIG_FILE)
touch $(QT5BASE_ARCH_CONFIG_FILE)
$(QT5BASE_CONFIGURE_ARCH_CONFIG)
(cd $(@D); \
$(TARGET_MAKE_ENV) \
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
PKG_CONFIG_LIBDIR="$(STAGING_DIR)/usr/lib/pkgconfig" \
PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
MAKEFLAGS="$(MAKEFLAGS) -j$(PARALLEL_JOBS)" \
./configure \
-v \
-prefix /usr \
-hostprefix $(HOST_DIR)/usr \
-headerdir /usr/include/qt5 \
-sysroot $(STAGING_DIR) \
-plugindir /usr/lib/qt/plugins \
-examplesdir /usr/lib/qt/examples \
-no-rpath \
-nomake tests \
-device buildroot \
-device-option CROSS_COMPILE="$(TARGET_CROSS)" \
-device-option BR_COMPILER_CFLAGS="$(TARGET_CFLAGS) $(QT5BASE_EXTRA_CFLAGS)" \
-device-option BR_COMPILER_CXXFLAGS="$(TARGET_CXXFLAGS) $(QT5BASE_EXTRA_CFLAGS)" \
$(QT5BASE_CONFIGURE_OPTS) \
)
endef
define QT5BASE_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)
endef
define QT5BASE_INSTALL_STAGING_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install
$(QT5_LA_PRL_FILES_FIXUP)
endef
define QT5BASE_INSTALL_TARGET_LIBS
for lib in $(QT5BASE_INSTALL_LIBS_y); do \
cp -dpf $(STAGING_DIR)/usr/lib/lib$${lib}.so.* $(TARGET_DIR)/usr/lib || exit 1 ; \
done
endef
define QT5BASE_INSTALL_TARGET_PLUGINS
if [ -d $(STAGING_DIR)/usr/lib/qt/plugins/ ] ; then \
mkdir -p $(TARGET_DIR)/usr/lib/qt/plugins ; \
cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/* $(TARGET_DIR)/usr/lib/qt/plugins ; \
fi
endef
ifeq ($(BR2_PACKAGE_QT5_VERSION_5_6),y)
define QT5BASE_INSTALL_TARGET_FONTS
if [ -d $(STAGING_DIR)/usr/lib/fonts/ ] ; then \
mkdir -p $(TARGET_DIR)/usr/lib/fonts ; \
cp -dpfr $(STAGING_DIR)/usr/lib/fonts/* $(TARGET_DIR)/usr/lib/fonts ; \
fi
endef
endif
define QT5BASE_INSTALL_TARGET_EXAMPLES
if [ -d $(STAGING_DIR)/usr/lib/qt/examples/ ] ; then \
mkdir -p $(TARGET_DIR)/usr/lib/qt/examples ; \
cp -dpfr $(STAGING_DIR)/usr/lib/qt/examples/* $(TARGET_DIR)/usr/lib/qt/examples ; \
fi
endef
ifeq ($(BR2_STATIC_LIBS),y)
define QT5BASE_INSTALL_TARGET_CMDS
$(QT5BASE_INSTALL_TARGET_FONTS)
$(QT5BASE_INSTALL_TARGET_EXAMPLES)
endef
else
define QT5BASE_INSTALL_TARGET_CMDS
$(QT5BASE_INSTALL_TARGET_LIBS)
$(QT5BASE_INSTALL_TARGET_PLUGINS)
$(QT5BASE_INSTALL_TARGET_FONTS)
$(QT5BASE_INSTALL_TARGET_EXAMPLES)
endef
endif
$(eval $(generic-package))