level up Qt to 5.8.0-beta
[feed/video.git] / frameworks / qt5base / Makefile
index 874ea301a74f7e85b028158850f63c1aa5b4d202..4fc5d24b10b765fea5d72f1240e971fcb1f7d78f 100644 (file)
@@ -1,25 +1,24 @@
 #
-# Copyright (C) 2015 OpenWrt.org
-# Author: Mirko Vogt <mirko@openwrt.org>
+# Copyright (C) 2016 OpenWrt.org
+# Author: Mirko Vogt <mirko-openwrt@nanl.de>
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
 
 # TODO / known bugs:
 # - plugins don't work when sstrip is used for stripping
-# - 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
+# - 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.8.0-beta
 PKG_RELEASE:=1
-PKG_MD5SUM:=67a95eec79ffc4a14f516ad6f3d24c96
+PKG_MD5SUM:=3f4ab8a104166270368764fb057e6581
 
 PKG_SYS_NAME:=qtbase-opensource-src-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_SYS_NAME).tar.xz
-PKG_SOURCE_URL:=http://download.qt-project.org/official_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
+PKG_SOURCE_URL:=http://download.qt-project.org/development_releases/qt/$(basename $(PKG_VERSION))/$(PKG_VERSION)/submodules
 
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_SYS_NAME)
 PKG_BUILD_PARALLEL:=1
@@ -32,20 +31,40 @@ 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
+# https://bugreports.qt.io/browse/QTBUG-52567
+# Use the code from the gcc package to use strip instaed.
+ifneq ($(CONFIG_USE_SSTRIP),)
+  STRIP:=$(TARGET_CROSS)strip $(call qstrip,$(CONFIG_STRIP_ARGS))
+  RSTRIP:= \
+    export CROSS="$(TARGET_CROSS)" \
+               $(if $(CONFIG_KERNEL_KALLSYMS),NO_RENAME=1) \
+               $(if $(CONFIG_KERNEL_PROFILING),KEEP_SYMBOLS=1); \
+    NM="$(TARGET_CROSS)nm" \
+    STRIP="$(STRIP)" \
+    STRIP_KMOD="$(SCRIPT_DIR)/strip-kmod.sh" \
+    $(SCRIPT_DIR)/rstrip.sh
+endif
 
 define Package/qt5base/Default
   SECTION:=video-frameworks
   CATEGORY:=Video
   SUBMENU:=Frameworks and Toolkits
   TITLE:=Qt5base
-  DEPENDS:=qt5base
+  DEPENDS+=qt5base
   URL:=http://qt.io
   MAINTAINER:=Mirko Vogt <mirko@openwrt.org>
 endef
@@ -62,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
@@ -154,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)
@@ -174,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)
@@ -192,14 +229,22 @@ define Package/qt5base-plugin-platforms-offscreen
   DEPENDS+=+qt5base-core +qt5base-gui +libfreetype +fontconfig
 endef
 
-###### sql
-
-define Package/qt5base-plugin-sqldrivers-sqlite
+define Package/qt5base-plugin-platforms-vnc
   $(call Package/qt5base/Default)
-  TITLE+=sqldriver sqlite (plugin)
-  DEPENDS+=+qt5base-core +qt5base-sql +libsqlite3
+  TITLE+=platform vnc (plugin)
+  DEPENDS+=+qt5base-core +qt5base-gui +qt5base-network +libfreetype +fontconfig
 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-examples
   $(call Package/qt5base/Default)
   TITLE+=examples
@@ -211,7 +256,8 @@ define Package/qt5base-examples
                +qt5base-sql \
                +qt5base-xml \
                +qt5base-printSupport \
-               +qt5base-concurrent 
+               +qt5base-concurrent \
+               +qt5base-gl
 endef
 
 define Build/Prepare
@@ -221,6 +267,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.),
@@ -234,6 +284,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) \
@@ -251,78 +302,92 @@ define Build/Configure
                        -hostbindir $(QT_HOST_BINS) \
                        -hostlibdir $(QT_HOST_LIBS) \
                        -hostdatadir $(QT_HOST_DATA) \
-                       -v \
-                       -release \
+                       -verbose \
                        -opensource \
                        -confirm-license \
-                       -c++11 \
+                       -release \
+                       -no-optimized-tools \
+                       -no-strip \
                        -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-sqlite2 \
-                       -no-sql-tds \
-                       -no-qml-debug \
-                       -no-nis \
-                       -no-sse2 \
+                       -no-framework \
+                       -xplatform linux-openwrt-g++ \
                        -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)\
-                       -force-pkg-config \
-                       -system-zlib \
-                       -mtdev \
-                       -no-journald \
-                       $(if $(CONFIG_PACKAGE_qt5base-gui),-system-libpng,-no-libpng) \
-                       $(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg),-system-libjpeg,-no-libjpeg) \
-                       -system-freetype \
-                       -no-harfbuzz \
-                       $(if $(CONFIG_PACKAGE_qt5base-network),-openssl-linked,-no-openssl) \
-                       -system-pcre \
-                       -system-xcb \
-                       -system-xkbcommon \
-                       -no-xinput2 \
-                       -no-xcb-xlib \
-                       -no-glib \
-                       -no-pulseaudio \
-                       -no-alsa \
-                       -no-gtkstyle \
+                       -no-avx512 \
+                       $(if $(findstring -mdsp,$(TARGET_CFLAGS)),,-no-mips_dsp) \
+                       $(if $(findstring -mdspr2,$(TARGET_CFLAGS)),,-no-mips_dspr2) \
+                       -no-reduce-exports \
+                       -no-reduce-relocations \
+                       -no-pch \
+                       -no-use-gold-linker \
+                       -no-warnings-are-errors \
+                       -pkg-config \
+                       -no-optimized-qmake \
                        -nomake tools \
                        -make examples \
+                       $(if $(CONFIG_PACKAGE_qt5base-examples),-compile-examples,-no-compile-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) \
-                       -widgets \
-                       -no-optimized-qmake \
-                       -no-cups \
-                       $(if $(CONFIG_BUILD_NLS),-iconv,-no-iconv) \
-                       -evdev \
+                       $(if $(CONFIG_PACKAGE_qt5base-widgets),-widgets,-no-widgets) \
+                       -no-dbus \
+                       -accessibility \
+                       -no-qml-debug \
+                       -system-doubleconversion \
+                       -no-glib \
+                       -eventfd \
+                       -no-inotify \
+                       $(if $(CONFIG_BUILD_NLS),-no-iconv,-no-iconv) \
                        -no-icu \
+                       -system-pcre \
+                       -system-zlib \
+                       -no-journald \
+                       -no-syslog \
+                       -ssl \
+                       $(if $(CONFIG_PACKAGE_qt5base-network),-openssl-linked,-no-openssl) \
+                       -system-proxies \
+                       -no-cups \
                        -fontconfig \
-                       -no-strip \
-                       -no-pch \
-                       -no-dbus \
-                       -no-reduce-relocations \
-                       -no-use-gold-linker \
-                       -no-xcb \
-                       -no-eglfs \
+                       -system-freetype \
+                       -no-harfbuzz \
+                       -no-gtk \
+                       -opengl \
+                       -no-xcb-xlib \
+                       $(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-minimal),,-qpa minimal) \
+                       $(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),,-qpa linuxfb) \
+                       -system-xcb \
                        -no-directfb \
-                       $(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),-linuxfb,-no-linuxfb) \
+                       -no-eglfs \
+                       -no-gbm \
                        -no-kms \
-                       $(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-minimal),,-qpa minimal) \
-                       -xplatform linux-openwrt-g++ \
-                       -no-opengl \
-                       -no-system-proxies \
-                       -no-warnings-are-errors \
+                       $(if $(CONFIG_PACKAGE_qt5base-plugin-platforms-linuxfb),-linuxfb,-no-linuxfb) \
+                       -no-mirclient \
+                       -no-xcb \
+                       -evdev \
+                       -no-libinput \
+                       -no-mtdev \
+                       -no-tslib \
+                       -no-xinput2 \
+                       -no-xkbcommon-x11 \
+                       -no-xkbcommon-evdev \
+                       -no-gif \
+                       $(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-ico),-ico,-no-ico) \
+                       $(if $(CONFIG_PACKAGE_qt5base-gui),-system-libpng,-no-libpng) \
+                       $(if $(CONFIG_PACKAGE_qt5base-plugin-imageformats-jpeg),-system-libjpeg,-no-libjpeg) \
+                       -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 \
+                       -no-libproxy \
+                       -system-xkbcommon \
        )
 endef
 
@@ -347,6 +412,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
@@ -395,9 +464,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)
@@ -411,6 +480,18 @@ define Package/qt5base-plugin-platforms-linuxfb/install
        $(call Build/Install/Plugins,$(1),platforms,libqlinuxfb)
 endef
 
+define Package/qt5base-plugin-platforms-vnc/install
+       $(call Build/Install/Plugins,$(1),platforms,libqvnc)
+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
@@ -419,9 +500,9 @@ define Package/qt5base-plugin-platforms-offscreen/install
        $(call Build/Install/Plugins,$(1),platforms,libqoffscreen)
 endef
 
-define Package/qt5base-plugin-sqldrivers/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))
@@ -431,6 +512,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))
@@ -442,11 +524,14 @@ $(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-platforms-vnc))
+#$(eval $(call BuildPackage,qt5base-plugin-sqldrivers-sqlite))
 $(eval $(call BuildPackage,qt5base-examples))