[Buildroot] [PATCH v6 19/28] core/pkg-infra: Add per-package support in qmake infra

Yann E. MORIN yann.morin.1998 at free.fr
Wed Jul 1 19:01:05 UTC 2020


Andreas, All,

Sorry for the long delay in looking (again) at this complex series...
I'll try and apply as much as I can in the following days...

On 2020-02-17 22:23 +0100, Andreas Naumann spake thusly:
> 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 at ultratronik.de>

I did the slight ammendment I already pointed out earlier, and applied
to master, thanks.

Regards,
Yann E. MORIN.

> ---
>  package/pkg-qmake.mk           |  1 +
>  package/qt5/qt5.mk             | 15 +++++++++++++++
>  package/qt5/qt5base/qt5base.mk |  9 +--------
>  3 files changed, 17 insertions(+), 8 deletions(-)
> 
> diff --git a/package/pkg-qmake.mk b/package/pkg-qmake.mk
> index 53ac3e4a1c..3aa0dd7101 100644
> --- a/package/pkg-qmake.mk
> +++ b/package/pkg-qmake.mk
> @@ -46,6 +46,7 @@ $(2)_INSTALL_TARGET_OPTS	?= $$($(2)_INSTALL_STAGING_OPTS)
>  #
>  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
> diff --git a/package/qt5/qt5.mk b/package/qt5/qt5.mk
> index d94d9cc99f..eb2a749678 100644
> --- a/package/qt5/qt5.mk
> +++ b/package/qt5/qt5.mk
> @@ -17,5 +17,20 @@ 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
> +	rm -f $(HOST_DIR)/bin/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++
> diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
> index 03f984ef8c..960a802b3b 100644
> --- a/package/qt5/qt5base/qt5base.mk
> +++ b/package/qt5/qt5base/qt5base.mk
> @@ -352,13 +352,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))
> -- 
> 2.25.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list