From aae52e9b465d1bceb103b2747b2072d260bdc4c8 Mon Sep 17 00:00:00 2001 From: Mirko Vogt Date: Sun, 11 May 2025 21:14:47 +0000 Subject: [PATCH] qt5base: change dir/file structure for Qt5 install in staging-dirs Main objective is to make sure every Qt5 related file is clearly about Qt version *5*. For files which do not contain the version number, make sure the path contains it (e.g. suffixing the directory paths with "/qt5"). This is done for host and target builds and accounts for the following paths: /bin -> /bin/qt5 /share -> /share/qt5 Every file inside /lib (except /lib/qt5/* which is covered by the archdata-directory) is already versioned by its respective file names. Keep target specific host builds inside $(STAGING_DIR)/host. --- frameworks/qt5/qt5base/Makefile | 55 ++++++++++----------------- frameworks/qt5/qt5base/files/qmake.mk | 37 +++++++++++++----- 2 files changed, 48 insertions(+), 44 deletions(-) diff --git a/frameworks/qt5/qt5base/Makefile b/frameworks/qt5/qt5base/Makefile index b59c7c5..306c5d6 100644 --- a/frameworks/qt5/qt5base/Makefile +++ b/frameworks/qt5/qt5base/Makefile @@ -310,10 +310,8 @@ define Build/Configure TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \ PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \ ./configure \ + --extprefix=$(STAGING_DIR)/$(CONFIGURE_PREFIX) \ --prefix=$(QT_INSTALL_PREFIX) \ - --extprefix=$(QT_EXTPREFIX) \ - --hostprefix=$(QT_HOST_PREFIX) \ - --gcc-sysroot=no \ --bindir=$(QT_INSTALL_BINS) \ --headerdir=$(QT_INSTALL_HEADERS) \ --libdir=$(QT_INSTALL_LIBS) \ @@ -328,9 +326,10 @@ define Build/Configure --sysconfdir=$(QT_INSTALL_CONFIGURATION) \ --examplesdir=$(QT_INSTALL_EXAMPLES) \ --testsdir=$(QT_INSTALL_TESTS) \ + --hostprefix=$(QT_HOST_PREFIX) \ --hostbindir=$(QT_HOST_BINS) \ - --hostlibdir=$(QT_HOST_LIBS) \ --hostdatadir=$(QT_HOST_DATA) \ + --gcc-sysroot=no \ --verbose=yes \ --opensource \ --confirm-license \ @@ -418,11 +417,21 @@ define Host/Configure TARGET_CXXFLAGS="$(HOST_CFLAGS) $(HOST_CXXFLAGS)" \ TARGET_LDFLAGS="$(HOST_LDFLAGS)" \ ./configure \ - --prefix=$(STAGING_DIR_HOST) \ - --hostprefix=$(STAGING_DIR_HOST) \ - --hostdatadir=$(STAGING_DIR_HOST)/share \ - --datadir=$(STAGING_DIR_HOST)/share \ - --archdatadir=$(STAGING_DIR_HOST)/lib \ + --prefix=$(QT_HOSTPKG_PREFIX) \ + --bindir=$(QT_HOSTPKG_BINS) \ + --headerdir=$(QT_HOSTPKG_HEADERS) \ + --libdir=$(QT_HOSTPKG_LIBS) \ + --archdatadir=$(QT_HOSTPKG_ARCHDATA) \ + --plugindir=$(QT_HOSTPKG_PLUGINS) \ + --libexecdir=$(QT_HOSTPKG_LIBEXECS) \ + --importdir=$(QT_HOSTPKG_IMPORTS) \ + --qmldir=$(QT_HOSTPKG_QML) \ + --datadir=$(QT_HOSTPKG_DATA) \ + --docdir=$(QT_HOSTPKG_DOCS) \ + --translationdir=$(QT_HOSTPKG_TRANSLATIONS) \ + --sysconfdir=$(QT_HOSTPKG_CONFIGURATION) \ + --examplesdir=$(QT_HOSTPKG_EXAMPLES) \ + --testsdir=$(QT_HOSTPKG_TESTS) \ --gcc-sysroot=no \ --verbose=yes \ --opensource \ @@ -506,7 +515,7 @@ define Build/InstallDev $(CP) \ ./files/qmake.mk \ - $(STAGING_DIR)/host/mk/ + $(STAGING_DIR)/host/mk/qmake5.mk $(call Build/Install/HostFiles,$(1)) $(call Build/Install/Headers,$(1)) @@ -516,31 +525,9 @@ endef define Host/Install $(call Host/Install/Default) - $(INSTALL_DIR) \ - $(STAGING_DIR_HOST)/bin \ - $(STAGING_DIR_HOST)/lib \ - $(STAGING_DIR_HOST)/include \ - $(STAGING_DIR_HOST)/share - - $(CP) \ - $(HOST_INSTALL_DIR)/lib/* \ - $(STAGING_DIR_HOST)/lib/ - - $(CP) \ - $(HOST_INSTALL_DIR)/include/* \ - $(STAGING_DIR_HOST)/include/ - $(CP) \ - $(HOST_INSTALL_DIR)/share/* \ - $(STAGING_DIR_HOST)/share/ - - $(CP) \ - $(HOST_INSTALL_DIR)/bin/* \ - $(STAGING_DIR_HOST)/bin/ -endef - -define Package/qt5base-concurrent/install - $(call Build/Install/Libs,$(1),libQt5Concurrent) + $(HOST_INSTALL_DIR)/* \ + $(STAGING_DIR_HOST)/ endef define Package/qt5base-core/install diff --git a/frameworks/qt5/qt5base/files/qmake.mk b/frameworks/qt5/qt5base/files/qmake.mk index 34903b7..a687ee7 100644 --- a/frameworks/qt5/qt5base/files/qmake.mk +++ b/frameworks/qt5/qt5base/files/qmake.mk @@ -38,13 +38,11 @@ # one might use the QT_INSTALL_* variables for some weird reason during runtime. # for target builds (STAGING_DIR) -QT_EXTPREFIX:=$(STAGING_DIR)/$(CONFIGURE_PREFIX) -QT_SYSROOT:= -QT_INSTALL_CONFIGURATION:=/etc/qt5 QT_INSTALL_PREFIX:=$(CONFIGURE_PREFIX) +QT_INSTALL_CONFIGURATION:=/etc/qt5 QT_INSTALL_LIBS:=$(QT_INSTALL_PREFIX)/lib QT_INSTALL_DATA:=$(QT_INSTALL_PREFIX)/share/qt5 -QT_INSTALL_HEADERS:=$(QT_INSTALL_PREFIX)/include +QT_INSTALL_HEADERS:=$(QT_INSTALL_PREFIX)/include/qt5 QT_INSTALL_BINS:=$(QT_INSTALL_PREFIX)/bin QT_INSTALL_DOCS:=$(QT_INSTALL_DATA)/doc QT_INSTALL_TRANSLATIONS:=$(QT_INSTALL_DATA)/translations @@ -57,11 +55,27 @@ QT_INSTALL_QML:=$(QT_INSTALL_ARCHDATA)/qml QT_INSTALL_EXAMPLES:=$(QT_INSTALL_ARCHDATA)/examples QT_INSTALL_DEMOS:=$(QT_INSTALL_EXAMPLES) # for host builds defined in target project files (STAGING_DIR)/host -QT_HOST_EXTPREFIX:=$(STAGING_DIR)/host -QT_HOST_PREFIX:=$(QT_HOST_EXTPREFIX) -QT_HOST_DATA:=$(QT_HOST_PREFIX)/share -QT_HOST_BINS:=$(QT_HOST_PREFIX)/bin +QT_HOST_PREFIX:=$(STAGING_DIR)/host +QT_HOST_DATA:=$(QT_HOST_PREFIX)/share/qt5 +QT_HOST_BINS:=$(QT_HOST_PREFIX)/bin/qt5 QT_HOST_LIBS:=$(QT_HOST_PREFIX)/lib +# for host builds defined in host project files (STAGING_DIR_HOST) +QT_HOSTPKG_PREFIX:=$(STAGING_DIR_HOST) +QT_HOSTPKG_CONFIGURATION:=$(STAGING_DIR_HOST)/etc/qt5 +QT_HOSTPKG_LIBS:=$(QT_HOSTPKG_PREFIX)/lib +QT_HOSTPKG_DATA:=$(QT_HOSTPKG_PREFIX)/share/qt5 +QT_HOSTPKG_HEADERS:=$(QT_HOSTPKG_PREFIX)/include/qt5 +QT_HOSTPKG_BINS:=$(QT_HOSTPKG_PREFIX)/bin/qt5 +QT_HOSTPKG_DOCS:=$(QT_HOSTPKG_DATA)/doc +QT_HOSTPKG_TRANSLATIONS:=$(QT_HOSTPKG_DATA)/translations +QT_HOSTPKG_ARCHDATA:=$(QT_HOSTPKG_LIBS)/qt5 +QT_HOSTPKG_LIBEXECS:=$(QT_HOSTPKG_ARCHDATA)/libexec +QT_HOSTPKG_TESTS:=$(QT_HOSTPKG_ARCHDATA)/tests +QT_HOSTPKG_PLUGINS:=$(QT_HOSTPKG_ARCHDATA)/plugins +QT_HOSTPKG_IMPORTS:=$(QT_HOSTPKG_ARCHDATA)/imports +QT_HOSTPKG_QML:=$(QT_HOSTPKG_ARCHDATA)/qml +QT_HOSTPKG_EXAMPLES:=$(QT_HOSTPKG_ARCHDATA)/examples +QT_HOSTPKG_DEMOS:=$(QT_HOSTPKG_EXAMPLES) QMAKE_SPEC:=linux-g++ QMAKE_XSPEC:=linux-openwrt-g++ @@ -74,8 +88,11 @@ HOST_INSTALL_DIR_ROOT:=$(HOST_INSTALL_DIR) HOST_INSTALL_DIR:=$(HOST_INSTALL_DIR_ROOT)/$(STAGING_DIR_HOST) #HOST_INSTALL_DIR:=$(HOST_INSTALL_DIR_ROOT)/$(STAGING_DIR) -QMAKE_TARGET=$(STAGING_DIR)/host/bin/qmake -QMAKE_HOST=$(STAGING_DIR_HOST)/bin/qmake +# qmake host tool for target builds +QMAKE_TARGET=$(STAGING_DIR)/host/bin/qt5/qmake +# qmake host tool for host builds +QMAKE_HOST=$(STAGING_DIR_HOST)/bin/qt5/qmake + define Build/Configure/Default TARGET_CROSS="$(TARGET_CROSS)" \ -- 2.30.2