core/pkg-infra: Add per-package support in qmake infra
Qmake configured packages will, by default, use the absolute HostPrefix/Sysroot pathes set during configuration/building of qt5base for their install destinations. For the per-package host/staging infrastructure, this causes non-qt5base packages to litter the qt5base folders. In addition, buildroots target-install step subsequently fails because the respective files are missing from the per-package sysroot of the package itself. Fortunately, qmake's built-in pathes can be overridden by placing a custom qt.conf next to the qmake binary. This is already used to facilitate SDK relocation. So for per-package path manipulation we can reuse that method, but need to change the host/sysroot values according to each per-package path. Signed-off-by: Andreas Naumann <anaumann@ultratronik.de> Reviewed-by: Yann E. MORIN <yann.morin.1998@free.fr> [yann.morin.1998@free.fr: drop useless 'rm -f' of generated file] Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
parent
c3294956d5
commit
60e3a09693
@ -50,6 +50,7 @@ endif
|
||||
#
|
||||
ifndef $(2)_CONFIGURE_CMDS
|
||||
define $(2)_CONFIGURE_CMDS
|
||||
$$(QT5_QT_CONF_FIXUP)
|
||||
cd $$($(2)_BUILDDIR) && \
|
||||
$$(TARGET_MAKE_ENV) $$($(2)_CONF_ENV) $$(QT5_QMAKE) $$($(2)_CONF_OPTS)
|
||||
endef
|
||||
|
@ -11,5 +11,19 @@ QT5_SITE = https://download.qt.io/archive/qt/$(QT5_VERSION_MAJOR)/$(QT5_VERSION)
|
||||
|
||||
include $(sort $(wildcard package/qt5/*/*.mk))
|
||||
|
||||
# The file "qt.conf" can be used to override the hard-coded paths that are
|
||||
# compiled into the Qt library. We need it to make "qmake" relocatable and
|
||||
# tweak the per-package install pathes
|
||||
define QT5_INSTALL_QT_CONF
|
||||
sed -e "s|@@HOST_DIR@@|$(HOST_DIR)|" -e "s|@@STAGING_DIR@@|$(STAGING_DIR)|" \
|
||||
$(QT5BASE_PKGDIR)/qt.conf.in > $(HOST_DIR)/bin/qt.conf
|
||||
endef
|
||||
|
||||
ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
|
||||
define QT5_QT_CONF_FIXUP
|
||||
$(QT5_INSTALL_QT_CONF)
|
||||
endef
|
||||
endif
|
||||
|
||||
# Variable for other Qt applications to use
|
||||
QT5_QMAKE = $(HOST_DIR)/bin/qmake -spec devices/linux-buildroot-g++
|
||||
|
@ -314,13 +314,6 @@ define QT5BASE_CONFIGURE_CMDS
|
||||
)
|
||||
endef
|
||||
|
||||
# The file "qt.conf" can be used to override the hard-coded paths that are
|
||||
# compiled into the Qt library. We need it to make "qmake" relocatable.
|
||||
define QT5BASE_INSTALL_QT_CONF
|
||||
sed -e "s|@@HOST_DIR@@|$(HOST_DIR)|" -e "s|@@STAGING_DIR@@|$(STAGING_DIR)|" \
|
||||
$(QT5BASE_PKGDIR)/qt.conf.in > $(HOST_DIR)/bin/qt.conf
|
||||
endef
|
||||
|
||||
QT5BASE_POST_INSTALL_STAGING_HOOKS += QT5BASE_INSTALL_QT_CONF
|
||||
QT5BASE_POST_INSTALL_STAGING_HOOKS += QT5_INSTALL_QT_CONF
|
||||
|
||||
$(eval $(qmake-package))
|
||||
|
Loading…
Reference in New Issue
Block a user