diff --git a/package/lean/qt5/Makefile b/package/lean/qt5/Makefile index fb9662b956..416f9de050 100644 --- a/package/lean/qt5/Makefile +++ b/package/lean/qt5/Makefile @@ -1,26 +1,33 @@ # # Copyright (C) 2013 Riccardo Ferrazzo # Copyright (C) 2017 Paweł Knioła +# Copyright (C) 2019 Yaroslav Petrov # -# This is free software, licensed under the GNU General Public License v2. +# This is free software, licensed under the GNU General Public License v3. # See /LICENSE for more information. # include $(TOPDIR)/rules.mk PKG_NAME:=qt5 -PKG_VERSION:=5.8 +PKG_VERSION:=5.13 PKG_RELEASE:=0 -PKG_MD5SUM:=a9f2494f75f966e2f22358ec367d8f41 +PKG_MD5SUM:=3c168d9a3a08248ff36f4f54c82e437f -PKG_SOURCE:=qt-everywhere-opensource-src-$(PKG_VERSION).$(PKG_RELEASE).tar.gz +PKG_SOURCE:=qt-everywhere-src-$(PKG_VERSION).$(PKG_RELEASE).tar.xz PKG_SOURCE_URL:=http://download.qt-project.org/archive/qt/$(PKG_VERSION)/$(PKG_VERSION).$(PKG_RELEASE)/single -PKG_BUILD_DIR=$(BUILD_DIR)/qt-everywhere-opensource-src-$(PKG_VERSION).$(PKG_RELEASE) +PKG_BUILD_DIR=$(BUILD_DIR)/qt-everywhere-src-$(PKG_VERSION).$(PKG_RELEASE) PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 +PKG_BUILD_DEPENDS:=libiconv +PKG_MAINTAINER:=Yaroslav Petrov include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/nls.mk +#include $(TARGET_LDFLAGS)/nls.mk + +#-include $(if $(DUMP),,./files/qmake.mk) # not using sstrip here as this fucks up the .so's somehow STRIP:=/bin/true @@ -36,13 +43,13 @@ define Package/qt5/Default SUBMENU:=Qt5 TITLE:=qt5 URL:=http://qt-project.org - DEPENDS:=+libatomic +libstdcpp +libopenssl +zlib @!LINUX_2_6 + DEPENDS:=+librt +zlib +libstdcpp +libpcre16 +libpthread +libatomic +libmysqlclient @!LINUX_2_6 endef define Package/qt5-core $(call Package/qt5/Default) TITLE+=core - DEPENDS:=+icu +libatomic + DEPENDS+=+icu endef define Package/qt5-concurrent @@ -66,7 +73,7 @@ endef define Package/qt5-sql $(call Package/qt5/Default) TITLE+=sql - DEPENDS+=+qt5-core +libmariadbclient + DEPENDS+=+qt5-core endef define Package/qt5-xml @@ -94,20 +101,38 @@ define Package/qt5-test endef define Build/Configure + $(INSTALL_DIR) $(PKG_BUILD_DIR)/qtbase/lib/fonts $(INSTALL_DIR) $(PKG_BUILD_DIR)/qtbase/mkspecs/linux-openwrt-g++ + $(CP) ./files/fonts/* $(PKG_BUILD_DIR)/qtbase/lib/fonts/ $(CP) ./files/qplatformdefs.h $(PKG_BUILD_DIR)/qtbase/mkspecs/linux-openwrt-g++/qplatformdefs.h $(CP) ./files/qmake.conf $(PKG_BUILD_DIR)/qtbase/mkspecs/linux-openwrt-g++/qmake.conf $(SED) 's@$$$$(TARGET_CROSS)@$(TARGET_CROSS)@g' $(PKG_BUILD_DIR)/qtbase/mkspecs/linux-openwrt-g++/qmake.conf ( cd $(PKG_BUILD_DIR) ; \ + TARGET_CC="$(TARGET_CROSS)gcc" \ + TARGET_CXX="$(TARGET_CROSS)g++" \ + TARGET_AR="$(TARGET_CROSS)ar cqs" \ + TARGET_OBJCOPY="$(TARGET_CROSS)objcopy" \ + TARGET_RANLIB="$(TARGET_CROSS)ranlib" \ + TARGET_CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + TARGET_CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + TARGET_LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS) -lpthread -lrt" \ + TARGET_INCDIRS="$(TARGET_INCDIRS)" \ + TARGET_LIBDIRS="$(TARGET_LIBDIRS) $(STAGING_DIR)/usr/lib/" \ + CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \ + CXXFLAGS= \ + LDFLAGS= \ ./configure \ - -prefix $(TOOLCHAIN_DIR) \ + -prefix /usr \ + -extprefix $(TOOLCHAIN_DIR) \ + -sysroot $(TOOLCHAIN_DIR) \ + -plugindir /usr/lib/Qt/plugins \ -xplatform linux-openwrt-g++ \ -opensource \ -confirm-license \ + -force-asserts \ -no-iconv \ -no-pch \ -no-rpath \ - -no-qml-debug \ -no-strip \ -no-cups \ -no-dbus \ @@ -118,11 +143,9 @@ define Build/Configure -no-xcb \ -no-ssl \ -qt-zlib \ - -qt-pcre \ -qt-freetype \ -make libs \ -nomake examples \ - -nomake tools \ -nomake tests \ -skip qtdeclarative \ -skip qtmultimedia \ @@ -131,12 +154,30 @@ define Build/Configure -skip qtconnectivity \ -skip wayland \ -skip qtscript \ + -sql-mysql \ + -I$(STAGING_DIR)/usr/include/mysql \ -v \ ) endef define Build/Compile - $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) + TARGET_CC="$(TARGET_CROSS)gcc" \ + TARGET_CXX="$(TARGET_CROSS)g++" \ + TARGET_AR="$(TARGET_CROSS)ar cqs" \ + TARGET_OBJCOPY="$(TARGET_CROSS)objcopy" \ + TARGET_RANLIB="$(TARGET_CROSS)ranlib" \ + TARGET_CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + TARGET_CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + TARGET_LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS) -ldl -lpthread -lrt" \ + TARGET_INCDIRS="$(TARGET_INCDIRS)" \ + TARGET_LIBDIRS="$(TARGET_LIBDIRS) $(STAGING_DIR)/usr/lib/" \ + STAGING_DIR="$(STAGING_DIR)" \ + STAGING_DIR_HOST="$(STAGING_DIR)/../host" \ + PKG_CONFIG_SYSROOT="$(STAGING_DIR)" \ + TARGET_CPPFLAGS+="-I$(STAGING_DIR)/usr/include/mysql" \ + TARGET_LDFLAGS+="-L$(STAGING_DIR)/usr/lib/mysql -lmysqlclient" \ + CFLAGS="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS)" \ + $(MAKE) -j4 -C $(PKG_BUILD_DIR) endef define Build/InstallDev diff --git a/package/lean/qt5/files/fonts/DejaVuSans-Bold.ttf b/package/lean/qt5/files/fonts/DejaVuSans-Bold.ttf new file mode 100644 index 0000000000..040bb9d317 Binary files /dev/null and b/package/lean/qt5/files/fonts/DejaVuSans-Bold.ttf differ diff --git a/package/lean/qt5/files/fonts/DejaVuSans-BoldOblique.ttf b/package/lean/qt5/files/fonts/DejaVuSans-BoldOblique.ttf new file mode 100644 index 0000000000..d0fc12f08c Binary files /dev/null and b/package/lean/qt5/files/fonts/DejaVuSans-BoldOblique.ttf differ diff --git a/package/lean/qt5/files/fonts/DejaVuSans-Oblique.ttf b/package/lean/qt5/files/fonts/DejaVuSans-Oblique.ttf new file mode 100644 index 0000000000..19f9f749b9 Binary files /dev/null and b/package/lean/qt5/files/fonts/DejaVuSans-Oblique.ttf differ diff --git a/package/lean/qt5/files/fonts/DejaVuSans.ttf b/package/lean/qt5/files/fonts/DejaVuSans.ttf new file mode 100644 index 0000000000..7e411a71be Binary files /dev/null and b/package/lean/qt5/files/fonts/DejaVuSans.ttf differ diff --git a/package/lean/qt5/files/fonts/DejaVuSansMono-Bold.ttf b/package/lean/qt5/files/fonts/DejaVuSansMono-Bold.ttf new file mode 100644 index 0000000000..86f9722627 Binary files /dev/null and b/package/lean/qt5/files/fonts/DejaVuSansMono-Bold.ttf differ diff --git a/package/lean/qt5/files/fonts/DejaVuSansMono-BoldOblique.ttf b/package/lean/qt5/files/fonts/DejaVuSansMono-BoldOblique.ttf new file mode 100644 index 0000000000..b1439380af Binary files /dev/null and b/package/lean/qt5/files/fonts/DejaVuSansMono-BoldOblique.ttf differ diff --git a/package/lean/qt5/files/fonts/DejaVuSansMono-Oblique.ttf b/package/lean/qt5/files/fonts/DejaVuSansMono-Oblique.ttf new file mode 100644 index 0000000000..81208a6cfd Binary files /dev/null and b/package/lean/qt5/files/fonts/DejaVuSansMono-Oblique.ttf differ diff --git a/package/lean/qt5/files/fonts/DejaVuSansMono.ttf b/package/lean/qt5/files/fonts/DejaVuSansMono.ttf new file mode 100644 index 0000000000..029fcac35f Binary files /dev/null and b/package/lean/qt5/files/fonts/DejaVuSansMono.ttf differ diff --git a/package/lean/qt5/files/qmake.conf b/package/lean/qt5/files/qmake.conf index 20491903ac..f013cca4fb 100644 --- a/package/lean/qt5/files/qmake.conf +++ b/package/lean/qt5/files/qmake.conf @@ -13,21 +13,12 @@ include(../common/g++-unix.conf) # modifications to g++.conf QMAKE_CC = $(TARGET_CROSS)gcc QMAKE_CXX = $(TARGET_CROSS)g++ - -QMAKE_CFLAGS += $$(TARGET_CFLAGS) -QMAKE_CXXFLAGS += $$(TARGET_CXXFLAGS) -QMAKE_LFLAGS += $$(TARGET_LDFLAGS) - -QMAKE_LINK_C = $$QMAKE_CC -QMAKE_LINK_C_SHLIB = $$QMAKE_CC -QMAKE_LINK = $$QMAKE_CXX -QMAKE_LINK_SHLIB = $$QMAKE_CXX +QMAKE_LINK = $(TARGET_CROSS)g++ +QMAKE_LINK_SHLIB = $(TARGET_CROSS)g++ # modifications to linux.conf QMAKE_AR = $(TARGET_CROSS)ar cqs QMAKE_OBJCOPY = $(TARGET_CROSS)objcopy QMAKE_NM = $(TARGET_CROSS)nm -P QMAKE_STRIP = $(TARGET_CROSS)strip - - load(qt_config) diff --git a/package/lean/qt5/files/qmake.mk b/package/lean/qt5/files/qmake.mk new file mode 100644 index 0000000000..417cfb223f --- /dev/null +++ b/package/lean/qt5/files/qmake.mk @@ -0,0 +1,56 @@ +# +# Copyright (C) 2010 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +QMAKE_SPECFILE:=$(STAGING_DIR)/usr/mkspecs/linux-openwrt-g++ + +TARGET_INCDIRS +=\ + $(STAGING_DIR)/include \ + $(STAGING_DIR)/usr/include + +TARGET_LIBDIRS += \ + $(STAGING_DIR)/lib \ + $(STAGING_DIR)/usr/lib + +define Build/Configure/Qmake + TARGET_CC="$(TARGET_CROSS)gcc" \ + TARGET_CXX="$(TARGET_CROSS)g++" \ + TARGET_AR="$(TARGET_CROSS)ar cqs" \ + TARGET_OBJCOPY="$(TARGET_CROSS)objcopy" \ + TARGET_RANLIB="$(TARGET_CROSS)ranlib" \ + TARGET_CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + TARGET_CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + TARGET_LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \ + TARGET_INCDIRS="$(TARGET_INCDIRS)" \ + TARGET_LIBDIRS="$(TARGET_LIBDIRS)" \ + TARGET_LIBS="$(TARGET_LIBS)" \ + STAGING_DIR_HOST="$(STAGING_DIR)/../host" \ + STAGING_DIR="$(STAGING_DIR)" \ + qmake \ + -spec $(QMAKE_SPECFILE) \ + -o $(PKG_BUILD_DIR)/Makefile \ + $(2) \ + $(PKG_BUILD_DIR)/$(1).pro +endef + +# we need to pass everything to $(MAKE) as well, as Makefiles may invoke qmake once again for creating further Makefiles +define Build/Compile/Default + TARGET_CC="$(TARGET_CROSS)gcc" \ + TARGET_CXX="$(TARGET_CROSS)g++" \ + TARGET_AR="$(TARGET_CROSS)ar cqs" \ + TARGET_OBJCOPY="$(TARGET_CROSS)objcopy" \ + TARGET_RANLIB="$(TARGET_CROSS)ranlib" \ + TARGET_CFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + TARGET_CXXFLAGS="$(TARGET_CFLAGS) $(EXTRA_CFLAGS)" \ + TARGET_LDFLAGS="$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \ + TARGET_INCDIRS="$(TARGET_INCDIRS)" \ + TARGET_LIBDIRS="$(TARGET_LIBDIRS)" \ + TARGET_LIBS="$(TARGET_LIBS)" \ + STAGING_DIR_HOST="$(STAGING_DIR)/../host" \ + STAGING_DIR="$(STAGING_DIR)" \ + $(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH) \ + $(1); +endef diff --git a/package/lean/qt5/files/qplatformdefs.h b/package/lean/qt5/files/qplatformdefs.h index aedffeb1ef..02e77c9a37 100644 --- a/package/lean/qt5/files/qplatformdefs.h +++ b/package/lean/qt5/files/qplatformdefs.h @@ -1,40 +1,9 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the qmake spec of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - #include "../linux-g++/qplatformdefs.h" + +#undef QT_SOCKLEN_T + +#if defined(__GLIBC__) && (__GLIBC__ < 2) +#define QT_SOCKLEN_T int +#else +#define QT_SOCKLEN_T socklen_t +#endif