qt5base: change dir/file structure for Qt5 install in staging-dirs
authorMirko Vogt <[email protected]>
Sun, 11 May 2025 21:14:47 +0000 (21:14 +0000)
committerMirko Vogt <[email protected]>
Thu, 22 May 2025 10:58:15 +0000 (10:58 +0000)
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
frameworks/qt5/qt5base/files/qmake.mk

index b59c7c5ff3541b3ac54ebad0d8662d401f05e3c3..306c5d6acfa6e2c107336bab5ee25c6ea895f1fb 100644 (file)
@@ -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
index 34903b7b1ef2249e399dfcd9dcff1040dcc73d69..a687ee790cc9a09e999de3a5990f065ebbf0366c 100644 (file)
 #    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)" \