From 5555a534f787bf54db2aa145f7b7fa64891a52cd Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@uclibc-ng.org>
Date: Sat, 19 Nov 2016 09:01:05 +0100
Subject: qtbase: add new package, use device method like buildroot for
 cross-compile

---
 package/Config.in                    |  1 +
 package/qtbase/Makefile              | 64 ++++++++++++++++++++++++++++++++++++
 package/qtbase/files/qmake.conf      | 25 ++++++++++++++
 package/qtbase/files/qplatformdefs.h |  1 +
 package/section.lst                  |  1 +
 5 files changed, 92 insertions(+)
 create mode 100644 package/qtbase/Makefile
 create mode 100644 package/qtbase/files/qmake.conf
 create mode 100644 package/qtbase/files/qplatformdefs.h

diff --git a/package/Config.in b/package/Config.in
index a3ddfe633..f1d04185a 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -73,6 +73,7 @@ source package/Config.in.auto.libs.fonts
 source package/Config.in.auto.libs.image
 source package/Config.in.auto.libs.misc
 source package/Config.in.auto.libs.net
+source package/Config.in.auto.libs.qt
 source package/Config.in.auto.libs.video
 endmenu
 
diff --git a/package/qtbase/Makefile b/package/qtbase/Makefile
new file mode 100644
index 000000000..ce054fae0
--- /dev/null
+++ b/package/qtbase/Makefile
@@ -0,0 +1,64 @@
+# This file is part of the OpenADK project. OpenADK is copyrighted
+# material, please see the LICENCE file in the top-level directory.
+
+include $(ADK_TOPDIR)/rules.mk
+
+PKG_NAME:=		qtbase
+PKG_VERSION:=		5.7.0
+PKG_RELEASE:=		1
+PKG_HASH:=		3e7b6d123cab23a587ccbc45173296b33786faa409dba0494e4658fda3ede646
+PKG_DESCR:=		qt5 base
+PKG_SECTION:=		libs/qt
+PKG_DEPENDS:=		zlib libressl
+PKG_BUILDDEP:=		zlib libressl
+PKG_NEEDS:=		c++
+PKG_URL:=		https://www.qt.io/
+PKG_SITES:=		http://download.qt.io/official_releases/qt/5.7/$(PKG_VERSION)/submodules/
+
+DISTFILES:=             $(PKG_NAME)-opensource-src-$(PKG_VERSION).tar.xz
+WRKDIST=		$(WRKDIR)/$(PKG_NAME)-opensource-src-$(PKG_VERSION)
+
+include $(ADK_TOPDIR)/mk/package.mk
+
+$(eval $(call PKG_template,QTBASE,qtbase,$(PKG_VERSION)-$(PKG_RELEASE),$(PKG_DEPENDS),$(PKG_DESCR),$(PKG_SECTION)))
+
+CONFIGURE_ENV:=
+CONFIG_STYLE:=		minimal
+CONFIGURE_ARGS+=	-v \
+			-prefix /usr \
+			-hostprefix $(STAGING_HOST_DIR) \
+			-opensource \
+			-confirm-license \
+			-no-nis \
+			-no-pch \
+			-no-cups \
+			-no-iconv \
+			-no-rpath \
+			-no-gstreamer \
+			-no-dbus \
+			-no-pulseaudio \
+			-no-alsa \
+			-no-openssl \
+			-release \
+			-shared \
+			-system-zlib \
+			-nomake tests \
+			-nomake examples \
+			-device openadk \
+			-device-option CROSS_COMPILE="$(TARGET_CROSS)" \
+			-device-option ADK_COMPILER_CFLAGS="$(TARGET_CFLAGS)" \
+			-device-option ADK_COMPILER_CXXFLAGS="$(TARGET_CXXFLAGS)" \
+			-device-option ADK_COMPILER_LDFLAGS="$(TARGET_LDFLAGS)" \
+			-no-gcc-sysroot \
+			-sysroot $(STAGING_TARGET_DIR)
+
+pre-configure:
+	$(INSTALL_DIR) $(WRKBUILD)/mkspecs/devices/linux-openadk-g++/
+	$(CP) ./files/qmake.conf $(WRKBUILD)/mkspecs/devices/linux-openadk-g++/
+	$(CP) ./files/qplatformdefs.h $(WRKBUILD)/mkspecs/devices/linux-openadk-g++/
+
+qtbase-install:
+	$(INSTALL_DIR) $(IDIR_QTBASE)/usr/lib
+	$(CP) $(STAGING_TARGET_DIR)/usr/lib/libQt5*.so* $(IDIR_QTBASE)/usr/lib
+
+include $(ADK_TOPDIR)/mk/pkg-bottom.mk
diff --git a/package/qtbase/files/qmake.conf b/package/qtbase/files/qmake.conf
new file mode 100644
index 000000000..2d083572a
--- /dev/null
+++ b/package/qtbase/files/qmake.conf
@@ -0,0 +1,25 @@
+# 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 OpenADK 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           += $${ADK_COMPILER_CFLAGS}
+QMAKE_CXXFLAGS         += $${ADK_COMPILER_CXXFLAGS}
+QMAKE_LFLAGS           = $${ADK_COMPILER_LDFLAGS}
+CONFIG                 += nostrip
+
+QMAKE_LIBS             += -lrt -lpthread -ldl
+QMAKE_CFLAGS_ISYSTEM   =
+
+include(../common/linux_device_post.conf)
+load(qt_config)
diff --git a/package/qtbase/files/qplatformdefs.h b/package/qtbase/files/qplatformdefs.h
new file mode 100644
index 000000000..99e9a2792
--- /dev/null
+++ b/package/qtbase/files/qplatformdefs.h
@@ -0,0 +1 @@
+#include "../../linux-g++/qplatformdefs.h"
diff --git a/package/section.lst b/package/section.lst
index 17b2dc696..845abff10 100644
--- a/package/section.lst
+++ b/package/section.lst
@@ -54,6 +54,7 @@ libs/fonts	Font Libraries
 libs/image	Image Libraries
 libs/misc	Misc Libraries
 libs/net	Networking Libraries
+libs/qt		QT libraries
 libs/video	Video Libraries
 dev/lang	Programming Languages
 dev/perl	Perl modules
-- 
cgit v1.2.3