qt5: fix compile

This commit is contained in:
CN_SZTL 2019-10-28 22:20:00 +08:00
parent e2373ba648
commit fddf50c0b2
No known key found for this signature in database
GPG Key ID: 6850B6345C862176
12 changed files with 70 additions and 101 deletions

View File

@ -19,8 +19,8 @@ PKG_BUILD_DIR=$(BUILD_DIR)/qt-everywhere-src-$(PKG_VERSION).$(PKG_RELEASE)
PKG_BUILD_PARALLEL:=1
PKG_USE_MIPS16:=0
include $(INCLUDE_DIR)/package.mk
-include $(if $(DUMP),,./files/qmake.mk)
# not using sstrip here as this fucks up the .so's somehow
STRIP:=/bin/true
@ -36,7 +36,7 @@ define Package/qt5/Default
SUBMENU:=Qt5
TITLE:=qt5
URL:=http://qt-project.org
DEPENDS:=+icu +librt +zlib +libpcre2-16 +libstdcpp +libpthread +libatomic +libopenssl @!LINUX_2_6
DEPENDS:=+libatomic +libstdcpp +libopenssl +zlib +icu @!LINUX_2_6
endef
define Package/qt5-core
@ -74,6 +74,12 @@ define Package/qt5-xml
DEPENDS+=+qt5-core
endef
define Package/qt5-serialport
$(call Package/qt5/Default)
TITLE+=serialport
DEPENDS+=+qt5-core
endef
define Package/qt5-xmlpatterns
$(call Package/qt5/Default)
TITLE+=xmlpatterns
@ -87,31 +93,13 @@ 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= \
CXXFLAGS= \
LDFLAGS= \
./configure \
-prefix /usr \
-extprefix $(TOOLCHAIN_DIR) \
-sysroot $(TOOLCHAIN_DIR) \
-plugindir /usr/lib/Qt/plugins \
-prefix $(TOOLCHAIN_DIR) \
-xplatform linux-openwrt-g++ \
-opensource \
-confirm-license \
@ -128,9 +116,11 @@ define Build/Configure
-no-xcb \
-no-openssl \
-qt-zlib \
-qt-pcre \
-qt-freetype \
-make libs \
-nomake examples \
-nomake tools \
-nomake tests \
-skip qtdeclarative \
-skip qtmultimedia \
@ -144,20 +134,7 @@ define Build/Configure
endef
define Build/Compile
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)" \
$(MAKE) -j4 -C $(PKG_BUILD_DIR)
$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)
endef
define Build/InstallDev
@ -224,6 +201,13 @@ define Package/qt5-xml/install
$(CP) $(PKG_BUILD_DIR)/qtbase/lib/libQt5Xml.la $(1)/usr/lib/
endef
define Package/qt5-serialport/install
$(INSTALL_DIR) $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/qtserialport/lib/libQt5SerialPort.so* $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/qtserialport/lib/libQt5SerialPort.prl $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/qtserialport/lib/libQt5SerialPort.la $(1)/usr/lib/
endef
define Package/qt5-xmlpatterns/install
$(INSTALL_DIR) $(1)/usr/lib/
$(CP) $(PKG_BUILD_DIR)/qtxmlpatterns/lib/libQt5XmlPatterns.so* $(1)/usr/lib/
@ -244,5 +228,6 @@ $(eval $(call BuildPackage,qt5-network))
$(eval $(call BuildPackage,qt5-widgets))
$(eval $(call BuildPackage,qt5-sql))
$(eval $(call BuildPackage,qt5-xml))
$(eval $(call BuildPackage,qt5-serialport))
$(eval $(call BuildPackage,qt5-xmlpatterns))
$(eval $(call BuildPackage,qt5-test))

View File

@ -13,12 +13,21 @@ include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = $(TARGET_CROSS)gcc
QMAKE_CXX = $(TARGET_CROSS)g++
QMAKE_LINK = $(TARGET_CROSS)g++
QMAKE_LINK_SHLIB = $(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
# 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)

View File

@ -1,56 +0,0 @@
#
# 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

View File

@ -1,9 +1,40 @@
/****************************************************************************
**
** 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