mirror of
https://github.com/kenzok8/small-package
synced 2025-01-07 07:06:58 +08:00
210 lines
6.6 KiB
Makefile
210 lines
6.6 KiB
Makefile
#
|
|
# Copyright (C) 2020 Openwrt.org
|
|
#
|
|
# This is free software, licensed under the Apache License, Version 2.0 .
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=qt6base
|
|
PKG_VERSION:=6.8.1
|
|
PKG_RELEASE:=1
|
|
|
|
PKG_SOURCE:=qtbase-$(PKG_VERSION).tar.gz
|
|
PKG_SOURCE_URL:=https://codeload.github.com/qt/qtbase/tar.gz/v$(PKG_VERSION)?
|
|
PKG_HASH:=9b81b83e4079d2f79ae057902973fc0ebb10d566ec022f483e7c0f2294acb19c
|
|
|
|
HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/qtbase-$(PKG_VERSION)
|
|
PKG_BUILD_DIR:=$(BUILD_DIR)/qtbase-$(PKG_VERSION)
|
|
|
|
PKG_BUILD_DEPENDS:=qt6base/host
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_USE_MIPS16:=0
|
|
PKG_BUILD_FLAGS:=no-mips16
|
|
CMAKE_INSTALL:=1
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include $(INCLUDE_DIR)/host-build.mk
|
|
include $(INCLUDE_DIR)/cmake.mk
|
|
|
|
STRIP:=$(TARGET_CROSS)strip $(call qstrip,$(CONFIG_STRIP_ARGS))
|
|
|
|
define Package/libQt6/Default
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
SUBMENU:=Qt6
|
|
TITLE:=Qt6
|
|
URL:=http://qt-project.org
|
|
DEPENDS:=@!arc +libatomic +libstdcpp +zlib
|
|
endef
|
|
|
|
define Package/libQt6
|
|
$(call Package/libQt6/Default)
|
|
HIDDEN:=1
|
|
endef
|
|
|
|
define Package/libQt6/install
|
|
endef
|
|
|
|
TARGET_CFLAGS+= -I$(STAGING_DIR)/usr/include/libdrm
|
|
ifdef CONFIG_USE_GLIBC
|
|
ifeq ($(ARCH),x86_64)
|
|
TARGET_LDFLAGS+= -Wl,--sysroot=$(TOOLCHAIN_DIR)
|
|
endif
|
|
endif
|
|
|
|
CMAKE_SHARED_LDFLAGS := $(filter-out -Wl$(comma)-Bsymbolic-functions,$(CMAKE_SHARED_LDFLAGS))
|
|
|
|
CMAKE_HOST_OPTIONS+= \
|
|
-DQT_FORCE_MIN_CMAKE_VERSION_FOR_BUILDING_QT=3.19 \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DFEATURE_optimize_full=ON \
|
|
-DFEATURE_glib=OFF \
|
|
-DFEATURE_zstd=OFF \
|
|
-DFEATURE_concurrent=OFF \
|
|
-DFEATURE_dbus=ON \
|
|
-DFEATURE_gui=OFF \
|
|
-DFEATURE_network=ON \
|
|
-DFEATURE_openssl=OFF \
|
|
-DFEATURE_sql=OFF \
|
|
-DFEATURE_testlib=OFF \
|
|
-DFEATURE_xml=ON
|
|
|
|
CMAKE_OPTIONS+= \
|
|
-DQT_FORCE_MIN_CMAKE_VERSION_FOR_BUILDING_QT=3.19 \
|
|
-DQT_FORCE_MIN_CMAKE_VERSION_FOR_USING_QT=3.19 \
|
|
-DBUILD_SHARED_LIBS=ON \
|
|
-DCMAKE_SYSROOT=$(STAGING_DIR) \
|
|
-DQT_HOST_PATH=$(STAGING_DIR_HOSTPKG) \
|
|
-DINSTALL_PLUGINSDIR=/usr/lib/qt6plugins \
|
|
-DQT_QMAKE_TARGET_MKSPEC=devices/linux-generic-g++ \
|
|
-DQT_QMAKE_DEVICE_OPTIONS=CROSS_COMPILE="$(TARGET_CROSS);COMPILER_FLAGS=$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS);LINKER_FLAGS=$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS)" \
|
|
-DQT_BUILD_EXAMPLES=OFF \
|
|
-DQT_BUILD_TESTS=OFF \
|
|
-DQT_BUILD_TOOLS_WHEN_CROSSCOMPILING=OFF \
|
|
-DINPUT_opengl=no \
|
|
-DFEATURE_optimize_full=ON \
|
|
-DFEATURE_system_zlib=ON \
|
|
-DFEATURE_zstd=OFF \
|
|
-DFEATURE_backtrace=OFF \
|
|
-DFEATURE_system_doubleconversion=OFF \
|
|
-DFEATURE_glib=OFF \
|
|
-DFEATURE_icu=OFF \
|
|
-DFEATURE_mimetype_database=ON \
|
|
-DFEATURE_system_pcre2=ON \
|
|
-DFEATURE_concurrent=$(if $(CONFIG_PACKAGE_libQt6Concurrent),ON,OFF) \
|
|
-DFEATURE_dbus=$(if $(CONFIG_PACKAGE_libQt6DBus),ON,OFF) \
|
|
-DFEATURE_gui=$(if $(CONFIG_PACKAGE_libQt6Gui),ON,OFF) \
|
|
-DFEATURE_fontconfig=OFF \
|
|
-DFEATURE_system_freetype=ON \
|
|
-DFEATURE_accessibility=OFF \
|
|
-DFEATURE_harfbuzz=OFF \
|
|
-DFEATURE_gif=OFF \
|
|
-DFEATURE_ico=OFF \
|
|
-DFEATURE_jpeg=OFF \
|
|
-DFEATURE_png=OFF \
|
|
-DFEATURE_texthtmlparser=OFF \
|
|
-DFEATURE_cssparser=OFF \
|
|
-DFEATURE_textodfwriter=OFF \
|
|
-DFEATURE_textmarkdownreader=OFF \
|
|
-DFEATURE_textmarkdownwriter=OFF \
|
|
-DFEATURE_sessionmanager=OFF \
|
|
-DFEATURE_evdev=OFF \
|
|
-DFEATURE_vnc=OFF \
|
|
-DFEATURE_linuxfb=OFF \
|
|
-DFEATURE_network=$(if $(CONFIG_PACKAGE_libQt6Network),ON,OFF) \
|
|
-DFEATURE_openssl=ON \
|
|
-DFEATURE_openssl_runtime=ON \
|
|
-DFEATURE_ocsp=OFF \
|
|
-DFEATURE_printsupport=$(if $(CONFIG_PACKAGE_libQt6PrintSupport),ON,OFF) \
|
|
-DFEATURE_sql=$(if $(CONFIG_PACKAGE_libQt6Sql),ON,OFF) \
|
|
-DFEATURE_sqlmodel=OFF \
|
|
-DFEATURE_sql_sqlite=ON \
|
|
-DFEATURE_system_sqlite=OFF \
|
|
-DFEATURE_sql_db2=OFF \
|
|
-DFEATURE_sql_ibase=OFF \
|
|
-DFEATURE_sql_mysql=OFF \
|
|
-DFEATURE_sql_oci=OFF \
|
|
-DFEATURE_sql_odbc=OFF \
|
|
-DFEATURE_sql_psql=OFF \
|
|
-DFEATURE_testlib=$(if $(CONFIG_PACKAGE_libQt6Test),ON,OFF) \
|
|
-DFEATURE_itemmodeltester=OFF \
|
|
-DFEATURE_widgets=$(if $(CONFIG_PACKAGE_libQt6Widgets),ON,OFF) \
|
|
-DFEATURE_xml=$(if $(CONFIG_PACKAGE_libQt6Xml),ON,OFF) \
|
|
-DFEATURE_tuiotouch=$(if $(CONFIG_PACKAGE_qt6-plugin-libqtuiotouchplugin),ON,OFF)
|
|
|
|
define Package/libQt6/Default/install
|
|
$(INSTALL_DIR) $(1)/usr/lib/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libQt6$(2).so* $(1)/usr/lib/
|
|
endef
|
|
|
|
# 1: short name
|
|
# 2: dependencies on other qt6 libraries (short name)
|
|
# 3: dependencies on other packages
|
|
define DefineQt6Package
|
|
QT6BASE_LIBS+=$(1)
|
|
PKG_CONFIG_DEPENDS+=CONFIG_PACKAGE_libQt6$(1)
|
|
|
|
define Package/libQt6$(1)
|
|
$(call Package/libQt6/Default)
|
|
TITLE+=$(1) Library
|
|
DEPENDS+=$(foreach lib,$(2),+libQt6$(lib)) $(3)
|
|
endef
|
|
|
|
define Package/libQt6$(1)/description
|
|
This package provides the Qt6 $(1) v$(PKG_VERSION) library.
|
|
endef
|
|
|
|
define Package/libQt6$(1)/install
|
|
$(call Package/libQt6/Default/install,$$(1),$(1))
|
|
endef
|
|
endef
|
|
|
|
$(eval $(call DefineQt6Package,Concurrent,Core,))
|
|
$(eval $(call DefineQt6Package,Core,,+libpcre2-16))
|
|
$(eval $(call DefineQt6Package,DBus,Core,))
|
|
$(eval $(call DefineQt6Package,Gui,DBus,+libdrm +libfreetype))
|
|
$(eval $(call DefineQt6Package,Network,Core,+libopenssl +krb5-libs))
|
|
$(eval $(call DefineQt6Package,PrintSupport,Widgets,))
|
|
$(eval $(call DefineQt6Package,Sql,Core,))
|
|
$(eval $(call DefineQt6Package,Test,Core,))
|
|
$(eval $(call DefineQt6Package,Widgets,Gui,))
|
|
$(eval $(call DefineQt6Package,Xml,Core,))
|
|
|
|
define Package/qt6-plugin/Default/install
|
|
$(INSTALL_DIR) $(1)/usr/lib/qt6plugins/$(2)/
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/qt6plugins/$(2)/libq$(3).so $(1)/usr/lib/qt6plugins/$(2)/
|
|
endef
|
|
|
|
# 1: plugin diretory
|
|
# 2: plugin name (short name)
|
|
# 3: dependencies on other qt6 libraries (short name)
|
|
define DefineQt6PluginPackage
|
|
QT6_PLUGINS+=$(2)
|
|
|
|
define Package/qt6-plugin-libq$(2)
|
|
$(call Package/libQt6/Default)
|
|
TITLE+=Plugin libq$(2)
|
|
DEPENDS+=$(foreach lib,$(3),+libQt6$(lib))
|
|
endef
|
|
|
|
define Package/qt6-plugin-libq$(2)/install
|
|
$(call Package/qt6-plugin/Default/install,$$(1),$(1),$(2))
|
|
endef
|
|
endef
|
|
|
|
$(eval $(call DefineQt6PluginPackage,generic,tuiotouchplugin,Gui Network))
|
|
$(eval $(call DefineQt6PluginPackage,networkinformation,networkmanager,DBus Network))
|
|
$(eval $(call DefineQt6PluginPackage,platforms,minimal,Gui))
|
|
$(eval $(call DefineQt6PluginPackage,platforms,offscreen,Gui))
|
|
$(eval $(call DefineQt6PluginPackage,platformthemes,xdgdesktopportal,Gui))
|
|
$(eval $(call DefineQt6PluginPackage,sqldrivers,sqlite,Sql))
|
|
$(eval $(call DefineQt6PluginPackage,tls,certonlybackend,Network))
|
|
$(eval $(call DefineQt6PluginPackage,tls,opensslbackend,Network))
|
|
PKG_CONFIG_DEPENDS+=CONFIG_PACKAGE_qt6-plugin-libqtuiotouchplugin
|
|
|
|
$(foreach lib,$(QT6BASE_LIBS),$(eval $(call BuildPackage,libQt6$(lib))))
|
|
$(foreach lib,$(QT6_PLUGINS),$(eval $(call BuildPackage,qt6-plugin-libq$(lib))))
|
|
$(eval $(call BuildPackage,libQt6))
|
|
$(eval $(call HostBuild))
|