meson: allow using staging python
authorDaniel Golle <daniel@makrotopia.org>
Mon, 2 Dec 2024 01:05:01 +0000 (01:05 +0000)
committerDaniel Golle <daniel@makrotopia.org>
Mon, 2 Dec 2024 19:30:22 +0000 (19:30 +0000)
Introduce package flag MESON_USE_STAGING_PYTHON which allows packages
to be built with the OpenWrt-built python3/host instead of relying on the
buildhost's Python distribution.
This is useful for packages using Meson which require additional Python
modules during build.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
include/meson.mk

index fdb94b65425ab3d8080e0750b134927f9f620486..62dc7bd5dec30bad7803e2d9f89395416ba15fbb 100644 (file)
@@ -55,8 +55,14 @@ else
 MESON_CPU:="$(CPU_TYPE)$(if $(CPU_SUBTYPE),+$(CPU_SUBTYPE))"
 endif
 
+ifeq ($(MESON_USE_STAGING_PYTHON),)
+PYTHON_BIN:=$(STAGING_DIR_HOST)/bin/$(PYTHON)
+else
+PYTHON_BIN:=$(STAGING_DIR_HOSTPKG)/bin/$(PYTHON)
+endif
+
 define Meson
-       $(2) $(STAGING_DIR_HOST)/bin/$(PYTHON) $(STAGING_DIR_HOST)/bin/meson.py $(1)
+       $(2) $(PYTHON_BIN) $(STAGING_DIR_HOST)/bin/meson.py $(1)
 endef
 
 define Meson/CreateNativeFile
@@ -65,7 +71,7 @@ define Meson/CreateNativeFile
                -e "s|@CXX@|$(foreach BIN,$(HOSTCXX),'$(BIN)',)|" \
                -e "s|@PKGCONFIG@|$(PKG_CONFIG)|" \
                -e "s|@CMAKE@|$(STAGING_DIR_HOST)/bin/cmake|" \
-               -e "s|@PYTHON@|$(STAGING_DIR_HOST)/bin/python3|" \
+               -e "s|@PYTHON@|$(PYTHON_BIN)|" \
                -e "s|@CFLAGS@|$(foreach FLAG,$(HOST_CFLAGS) $(HOST_CPPFLAGS),'$(FLAG)',)|" \
                -e "s|@CXXFLAGS@|$(foreach FLAG,$(HOST_CXXFLAGS) $(HOST_CPPFLAGS),'$(FLAG)',)|" \
                -e "s|@LDFLAGS@|$(foreach FLAG,$(HOST_LDFLAGS),'$(FLAG)',)|" \
@@ -84,7 +90,7 @@ define Meson/CreateCrossFile
                -e "s|@NM@|$(TARGET_NM)|" \
                -e "s|@PKGCONFIG@|$(PKG_CONFIG)|" \
                -e "s|@CMAKE@|$(STAGING_DIR_HOST)/bin/cmake|" \
-               -e "s|@PYTHON@|$(STAGING_DIR_HOST)/bin/python3|" \
+               -e "s|@PYTHON@|$(PYTHON_BIN)|" \
                -e "s|@CFLAGS@|$(foreach FLAG,$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS),'$(FLAG)',)|" \
                -e "s|@CXXFLAGS@|$(foreach FLAG,$(TARGET_CXXFLAGS) $(EXTRA_CXXFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS),'$(FLAG)',)|" \
                -e "s|@LDFLAGS@|$(foreach FLAG,$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS),'$(FLAG)',)|" \