package/pkg-qmake: add <pkg>_SYNC_QT_HEADERS support
authorAngelo Compagnucci <angelo@amarulasolutions.com>
Tue, 24 Nov 2020 06:59:14 +0000 (07:59 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sat, 5 Dec 2020 21:48:47 +0000 (22:48 +0100)
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>
docs/manual/adding-packages-qmake.txt
package/pkg-qmake.mk

index e1621e914ec7c5af89cc3ecc1acde71ed094afe9..c7e6ff354a7e5e2e21d75b9e8dff7289832cf0fc 100644 (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.
index 27727119d79897fdedf1d7bcd27f00b7980e3920..a77286fe3aec606a4cba5201c608e336dbece28b 100644 (file)
 #
 ################################################################################
 
+#
+# 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.