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.
This commit is contained in:
Mirko Vogt
2025-05-11 21:14:47 +00:00
parent 6655386d5c
commit aae52e9b46
2 changed files with 48 additions and 44 deletions

View 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

View File

@@ -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)" \