diff --git a/frameworks/qt5base/Makefile b/frameworks/qt5base/Makefile index c0fae4e..7b6abdf 100644 --- a/frameworks/qt5base/Makefile +++ b/frameworks/qt5base/Makefile @@ -1,20 +1,20 @@ # -# Copyright (C) 2015 OpenWrt.org -# Author: Mirko Vogt +# Copyright (C) 2016 OpenWrt.org +# Author: Mirko Vogt # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. # # TODO / known bugs: -# - only framebuffer (linuxfb) support for now, XBC/DirectFB to come - thus no GL thus no qtquick2 / QML2, as it has a hard dependency on GL -# - host_build functionality seems to be broken - qmake doesn't switch to the host toolchain (linux-g++) when host_build gets invoked +# - plugins don't work when sstrip is used for stripping +# - no X11/wayland/xcb/kms support so far - primary target is linuxfb include $(TOPDIR)/rules.mk PKG_NAME:=qt5base -PKG_VERSION:=5.4.2 +PKG_VERSION:=5.7.0 PKG_RELEASE:=1 -PKG_MD5SUM:=67a95eec79ffc4a14f516ad6f3d24c96 +PKG_MD5SUM:=184f9460b40752d71b15b827260580c2 PKG_SYS_NAME:=qtbase-opensource-src-$(PKG_VERSION) PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz @@ -31,13 +31,17 @@ include $(INCLUDE_DIR)/nls.mk include ./files/qmake.mk PKG_CONFIG_DEPENDS:= \ - CONFIG_PACKAGE_qt5base-plugin-sqldrivers-sqlite \ CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg \ + CONFIG_PACKAGE_qt5base-plugin-imageformats-png \ CONFIG_PACKAGE_qt5base-network \ CONFIG_PACKAGE_qt5base-gui \ - CONFIG_PACKAGE_qt5base-plugin-imageformats-gif \ + CONFIG_PACKAGE_qt5base-gl \ + CONFIG_PACKAGE_qt5base-widgets \ + CONFIG_PACKAGE_qt5base-examples \ + CONFIG_PACKAGE_qt5base-plugin-platforms-minimal \ CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb \ - CONFIG_PACKAGE_qt5base-plugin-platforms-minimal +# CONFIG_PACKAGE_qt5base-plugin-platforms-eglfs \ +# CONFIG_PACKAGE_qt5base-plugin-platforms-minimalegl \ # Do not use sstrip for QT5. When sstrip is used the QT5 plugin loading does # not work, because of QT''s internal elf parser, see @@ -60,7 +64,7 @@ define Package/qt5base/Default CATEGORY:=Video SUBMENU:=Frameworks and Toolkits TITLE:=Qt5base - DEPENDS:=qt5base + DEPENDS+=qt5base URL:=http://qt.io MAINTAINER:=Mirko Vogt endef @@ -77,16 +81,22 @@ define Package/qt5base-concurrent DEPENDS+=+qt5base-core endef +define Package/qt5base-gl + $(call Package/qt5base/Default) + TITLE+=gl + DEPENDS+=+qt5base-core +qt5base-gui +qt5base-widgets +endef + define Package/qt5base-core $(call Package/qt5base/Default) TITLE+=core - DEPENDS+=+libpthread +zlib +libpcre16 +libstdcpp +librt $(ICONV_DEPENDS) + DEPENDS+=+libpthread +zlib +libpcre16 +libstdcpp +librt +libdouble-conversion $(ICONV_DEPENDS) #+icu endef define Package/qt5base-gui $(call Package/qt5base/Default) TITLE+=gui - DEPENDS+=+qt5base-core +libpng + DEPENDS+=+qt5base-core +qt5quick2-2d-sw-renderer-GLstubs +libpng +fontconfig +libfreetype +libudev endef define Package/qt5base-network @@ -169,11 +179,11 @@ endef ####### imageformats -define Package/qt5base-plugin-imageformats-gif - $(call Package/qt5base/Default) -TITLE+=imageformat gif (plugin) - DEPENDS+=+qt5base-core +qt5base-gui -endef +#define Package/qt5base-plugin-imageformats-gif +# $(call Package/qt5base/Default) +#TITLE+=imageformat gif (plugin) +# DEPENDS+=+qt5base-core +qt5base-gui +#endef define Package/qt5base-plugin-imageformats-ico $(call Package/qt5base/Default) @@ -189,6 +199,18 @@ endef ####### platforms +#define Package/qt5base-plugin-platforms-eglfs +# $(call Package/qt5base/Default) +# TITLE+=platform eglfs (plugin) +# DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig +#endef + +#define Package/qt5base-plugin-platforms-minimalegl +# $(call Package/qt5base/Default) +# TITLE+=platform minimalegl (plugin) +# DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig +#endef + define Package/qt5base-plugin-platforms-linuxfb $(call Package/qt5base/Default) TITLE+=platform linuxfb (plugin) @@ -209,11 +231,11 @@ endef ###### sql -define Package/qt5base-plugin-sqldrivers-sqlite - $(call Package/qt5base/Default) - TITLE+=sqldriver sqlite (plugin) - DEPENDS+=+qt5base-core +qt5base-sql +libsqlite3 -endef +#define Package/qt5base-plugin-sqldrivers-sqlite +# $(call Package/qt5base/Default) +# TITLE+=sqldriver sqlite (plugin) +# DEPENDS+=+qt5base-core +qt5base-sql +libsqlite3 +#endef define Package/qt5base-examples $(call Package/qt5base/Default) @@ -226,7 +248,8 @@ define Package/qt5base-examples +qt5base-sql \ +qt5base-xml \ +qt5base-printSupport \ - +qt5base-concurrent + +qt5base-concurrent \ + +qt5base-gl endef define Build/Prepare @@ -236,6 +259,10 @@ define Build/Prepare $(PKG_BUILD_DIR)/mkspecs/ endef +TARGET_CFLAGS += \ + -I$(STAGING_DIR)/usr/include/freetype2 \ + -I$(STAGING_DIR)/usr/include/libdrm + define Build/Configure # CROSS/TARGET_* need to be passed to configure, in order to use cross-compiling tools to check for requirements. # Usually used variables such as CC/CXX/CFLAGS/CXXFLAGS/LDFLAGS would be used for compilation of host tools (qmake, moc, etc.), @@ -249,6 +276,7 @@ define Build/Configure -prefix $(QT_INSTALL_PREFIX) \ -extprefix $(QT_EXTPREFIX) \ -hostprefix $(QT_HOST_PREFIX) \ + -no-gcc-sysroot \ -bindir $(QT_INSTALL_BINS) \ -headerdir $(QT_INSTALL_HEADERS) \ -libdir $(QT_INSTALL_LIBS) \ @@ -268,41 +296,46 @@ define Build/Configure -hostdatadir $(QT_HOST_DATA) \ -v \ -release \ + -no-optimized-tools \ -opensource \ -confirm-license \ - -c++11 \ -shared \ -largefile \ -accessibility \ - $(if $(CONFIG_PACKAGE_qt5base-plugin-sqldrivers-sqlite),-system-sqlite,-no-sql-sqlite) \ -no-sql-db2 \ -no-sql-ibase \ -no-sql-mysql \ -no-sql-oci \ -no-sql-odbc \ -no-sql-psql \ + -no-sql-sqlite \ -no-sql-sqlite2 \ -no-sql-tds \ + -system-sqlite \ -no-qml-debug \ - -no-nis \ - -no-sse2 \ -no-sse3 \ -no-ssse3 \ -no-sse4.1 \ -no-sse4.2 \ -no-avx \ -no-avx2 \ - $(if $(findstring -mdsp,$(TARGET_CFLAGS)),,-no-mips_dsp)\ - $(if $(findstring -mdspr2,$(TARGET_CFLAGS)),,-no-mips_dspr2)\ + -no-avx512 \ + $(if $(findstring -mdsp,$(TARGET_CFLAGS)),,-no-mips_dsp) \ + $(if $(findstring -mdspr2,$(TARGET_CFLAGS)),,-no-mips_dspr2) \ + -no-mips_dspr2 \ -force-pkg-config \ -system-zlib \ - -mtdev \ + -no-mtdev \ -no-journald \ + -syslog \ + -no-gif \ $(if $(CONFIG_PACKAGE_qt5base-gui),-system-libpng,-no-libpng) \ $(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg),-system-libjpeg,-no-libjpeg) \ + -system-doubleconversion \ -system-freetype \ -no-harfbuzz \ $(if $(CONFIG_PACKAGE_qt5base-network),-openssl-linked,-no-openssl) \ + -no-libproxy \ -system-pcre \ -system-xcb \ -system-xkbcommon \ @@ -311,16 +344,18 @@ define Build/Configure -no-glib \ -no-pulseaudio \ -no-alsa \ - -no-gtkstyle \ + -no-gtk \ + -no-optimized-qmake \ -nomake tools \ + -make examples \ $(if $(CONFIG_PACKAGE_qt5base-examples),-make examples,-nomake examples) \ $(if $(CONFIG_PACKAGE_qt5base-gui),-gui,-no-gui) \ - $(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-gif),,-no-gif) \ $(if $(CONFIG_PACKAGE_qt5base-widgets),-widgets,-no-widgets) \ - -no-optimized-qmake \ + -no-nis \ -no-cups \ $(if $(CONFIG_BUILD_NLS),-iconv,-no-iconv) \ -evdev \ + -no-tslib \ -no-icu \ -fontconfig \ -no-strip \ @@ -330,14 +365,18 @@ define Build/Configure -no-use-gold-linker \ -no-xcb \ -no-eglfs \ + -no-kms \ + -no-gbm \ -no-directfb \ $(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),-linuxfb,-no-linuxfb) \ - -no-kms \ + -no-mirclient \ + -opengl \ $(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-minimal),,-qpa minimal) \ - -xplatform linux-openwrt-g++ \ - -no-opengl \ - -no-system-proxies \ + -no-libinput \ + -no-gstreamer \ + -system-proxies \ -no-warnings-are-errors \ + -xplatform linux-openwrt-g++ \ ) endef @@ -362,6 +401,10 @@ define Package/qt5base-core/install $(call Build/Install/Libs,$(1),libQt5Core) endef +define Package/qt5base-gl/install + $(call Build/Install/Libs,$(1),libQt5OpenGL) +endef + define Package/qt5base-gui/install $(call Build/Install/Libs,$(1),libQt5Gui) endef @@ -410,9 +453,9 @@ define Package/qt5base-plugin-input-evdevtouch/install $(call Build/Install/Plugins,$(1),generic,libqevdevtouchplugin) endef -define Package/qt5base-plugin-imageformats-gif/install - $(call Build/Install/Plugins,$(1),imageformats,libqgif) -endef +#define Package/qt5base-plugin-imageformats-gif/install +# $(call Build/Install/Plugins,$(1),imageformats,libqgif) +#endef define Package/qt5base-plugin-imageformats-ico/install $(call Build/Install/Plugins,$(1),imageformats,libqico) @@ -426,6 +469,14 @@ define Package/qt5base-plugin-platforms-linuxfb/install $(call Build/Install/Plugins,$(1),platforms,libqlinuxfb) endef +#define Package/qt5base-plugin-platforms-eglfs/install +# $(call Build/Install/Plugins,$(1),platforms,libqeglfs) +#endef + +#define Package/qt5base-plugin-platforms-minimalegl/install +# $(call Build/Install/Plugins,$(1),platforms,libqminimalegl) +#endef + define Package/qt5base-plugin-platforms-minimal/install $(call Build/Install/Plugins,$(1),platforms,libqminimal) endef @@ -434,9 +485,9 @@ define Package/qt5base-plugin-platforms-offscreen/install $(call Build/Install/Plugins,$(1),platforms,libqoffscreen) endef -define Package/qt5base-plugin-sqldrivers-sqlite/install - $(call Build/Install/Plugins,$(1),sqldrivers,libqsqlite) -endef +#define Package/qt5base-plugin-sqldrivers-sqlite/install +# $(call Build/Install/Plugins,$(1),sqldrivers,libqsqlite) +#endef define Package/qt5base-examples/install $(call Build/Install/Examples,$(1)) @@ -446,6 +497,7 @@ $(eval $(call BuildPackage,qt5base)) $(eval $(call BuildPackage,qt5base-concurrent)) $(eval $(call BuildPackage,qt5base-core)) $(eval $(call BuildPackage,qt5base-gui)) +$(eval $(call BuildPackage,qt5base-gl)) $(eval $(call BuildPackage,qt5base-network)) $(eval $(call BuildPackage,qt5base-printSupport)) $(eval $(call BuildPackage,qt5base-sql)) @@ -457,11 +509,13 @@ $(eval $(call BuildPackage,qt5base-plugin-input-evdevkeyboard)) $(eval $(call BuildPackage,qt5base-plugin-input-evdevmouse)) $(eval $(call BuildPackage,qt5base-plugin-input-evdevtablet)) $(eval $(call BuildPackage,qt5base-plugin-input-evdevtouch)) -$(eval $(call BuildPackage,qt5base-plugin-imageformats-gif)) +#$(eval $(call BuildPackage,qt5base-plugin-imageformats-gif)) $(eval $(call BuildPackage,qt5base-plugin-imageformats-ico)) $(eval $(call BuildPackage,qt5base-plugin-imageformats-jpeg)) $(eval $(call BuildPackage,qt5base-plugin-platforms-linuxfb)) +#$(eval $(call BuildPackage,qt5base-plugin-platforms-eglfs)) +#$(eval $(call BuildPackage,qt5base-plugin-platforms-minimalegl)) $(eval $(call BuildPackage,qt5base-plugin-platforms-minimal)) $(eval $(call BuildPackage,qt5base-plugin-platforms-offscreen)) -$(eval $(call BuildPackage,qt5base-plugin-sqldrivers-sqlite)) +#$(eval $(call BuildPackage,qt5base-plugin-sqldrivers-sqlite)) $(eval $(call BuildPackage,qt5base-examples)) diff --git a/frameworks/qt5base/files/qmake.mk b/frameworks/qt5base/files/qmake.mk index 2115ef4..61d6920 100644 --- a/frameworks/qt5base/files/qmake.mk +++ b/frameworks/qt5base/files/qmake.mk @@ -74,8 +74,8 @@ define Build/Configure/Default TARGET_CXXFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CXXFLAGS)" \ TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \ qmake \ - -o $(PKG_BUILD_DIR)/$(2)/Makefile \ - $(PKG_BUILD_DIR)/$(2)/$(if $(1),$(1),$(PKG_NAME)).pro + -o $(PKG_BUILD_DIR)/$(MAKE_PATH)/Makefile \ + $(PKG_BUILD_DIR)/$(MAKE_PATH)/$(if $(1),$(1),$(PKG_NAME)).pro endef # we need to pass everything to $(MAKE) as well, as Makefiles may invoke qmake once again for creating further Makefiles @@ -138,7 +138,7 @@ define Build/Install/Examples $(PKG_INSTALL_DIR)/$(QT_INSTALL_EXAMPLES)/* \ $(1)/$(QT_INSTALL_EXAMPLES)/ - $(FIND) $(1)/usr/share/qt5/examples/ \ + $(FIND) $(1)/$(QT_INSTALL_EXAMPLES) \ -type f \( -name '*.cpp' -o -name '*.h' -o -name '*.pro' -o -name '*.pri' \) | \ $(XARGS) $(RM) -vf endef diff --git a/frameworks/qt5base/patches/002-musl.patch b/frameworks/qt5base/patches/002-musl.patch deleted file mode 100644 index 2f5fe45..0000000 --- a/frameworks/qt5base/patches/002-musl.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 8f09897de948cea8861ca95e182f442cf15a339e Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Mon, 8 Jun 2015 13:59:25 -0700 -Subject: [PATCH] linux-oe-g++: Invert conditional for defining QT_SOCKLEN_T - -This helps to make sure that QT_SOCKLEN_T is defined to be 'int' -only when its glibc < 2 and not also for the libraries which may define -it as per standards but are not glibc, e.g. musl - -Signed-off-by: Khem Raj ---- - mkspecs/linux-oe-g++/qplatformdefs.h | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- a/mkspecs/linux-g++/qplatformdefs.h -+++ b/mkspecs/linux-g++/qplatformdefs.h -@@ -78,10 +78,10 @@ - - #undef QT_SOCKLEN_T - --#if defined(__GLIBC__) && (__GLIBC__ >= 2) --#define QT_SOCKLEN_T socklen_t --#else -+#if defined(__GLIBC__) && (__GLIBC__ < 2) - #define QT_SOCKLEN_T int -+#else -+#define QT_SOCKLEN_T socklen_t - #endif - - #if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500) diff --git a/frameworks/qt5base/patches/011-use-posix-iconv.patch b/frameworks/qt5base/patches/011-use-posix-iconv.patch index 23e4f85..f58b06f 100644 --- a/frameworks/qt5base/patches/011-use-posix-iconv.patch +++ b/frameworks/qt5base/patches/011-use-posix-iconv.patch @@ -1,17 +1,6 @@ --- a/config.tests/unix/iconv/iconv.pro +++ b/config.tests/unix/iconv/iconv.pro -@@ -1,3 +1,3 @@ - SOURCES = iconv.cpp - CONFIG -= qt dylib --mac|mingw|qnx:LIBS += -liconv -+mac|mingw|qnx|linux:LIBS += -liconv ---- a/src/corelib/codecs/codecs.pri -+++ b/src/corelib/codecs/codecs.pri -@@ -44,6 +44,7 @@ contains(QT_CONFIG,icu) { - contains(QT_CONFIG,iconv) { - HEADERS += codecs/qiconvcodec_p.h - SOURCES += codecs/qiconvcodec.cpp -+ LIBS_PRIVATE *= -liconv - } else:contains(QT_CONFIG,gnu-libiconv) { - HEADERS += codecs/qiconvcodec_p.h - SOURCES += codecs/qiconvcodec.cpp +@@ -1,2 +1,2 @@ + CONFIG -= qt dylib +-mac|mingw|qnx|haiku:LIBS += -liconv ++mac|mingw|qnx|haiku|linux:LIBS += -liconv