package/pkg-qmake: add <pkg>_SYNC_QT_HEADERS support

Some qmake based packages need to call the syncqt.pl script before
building to have a properly populated "include" directory inside the
package build tree.

This script is normally automatically executed by qmake when a source
tree is from a git clone: buildroot purges the .git directory hence
the script never runs, and we need to call it explicitly. Setting
<pkg>_SYNC_QT_HEADERS = YES will force calling this script.

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Angelo Compagnucci 2020-11-24 07:59:14 +01:00 committed by Thomas Petazzoni
parent 79d7d5840e
commit 39d334faa5
2 changed files with 16 additions and 0 deletions

View File

@ -79,3 +79,7 @@ also be defined.
* +LIBFOO_INSTALL_TARGET_OPTS+, to specify additional targets to pass
to the +make+ command during the target installation step. By default,
+install+.
* +LIBFOO_SYNC_HEADERS+, to run syncqt.pl before qmake. Some packages
need this to have a properly populated include directory before
running the build.

View File

@ -20,6 +20,13 @@
#
################################################################################
#
# Hook to sync Qt headers
#
define QT_HEADERS_SYNC_HOOK
$(Q)cd $($(PKG)_BUILDDIR) && $(HOST_DIR)/bin/syncqt.pl -version $(QT5_VERSION)
endef
################################################################################
# inner-qmake-package -- defines how the configuration, compilation and
# installation of a qmake package should be done, implements a few hooks
@ -44,6 +51,11 @@ ifneq ($(1),qt5base)
$(2)_DEPENDENCIES += qt5base
endif
ifeq ($$($(2)_SYNC_QT_HEADERS),YES)
$(2)_DEPENDENCIES += host-perl
$(2)_PRE_CONFIGURE_HOOKS += QT_HEADERS_SYNC_HOOK
endif
#
# Configure step. Only define it if not already defined by the package
# .mk file.