From dc68822dcce78482101cf45131b47a39bff1506b Mon Sep 17 00:00:00 2001 From: Alexandru Ardelean Date: Mon, 15 Nov 2021 09:26:29 +0200 Subject: python-build: add support for pyproject.toml files A new PEP 517 (https://www.python.org/dev/peps/pep-0517/) has defined that Python packages can be shipped without any `setup.py` file, and that a `pyproject.toml` file is sufficient. A `setup.py` shim layer is suggested as a method for running the build. For these cases, we will add a support in the OpenWrt build-system to provide the default `setup.py` shim layer in case this file does not exist, but there is a `pyproject.toml` file. We also seem to need to tweak the shim layer with the PKG_VERSION, otherwise the detected version is 0.0.0. We will need to see if this will be fixed later in setuptools{-scm}. Signed-off-by: Alexandru Ardelean (cherry picked from commit 61f202c0170785addbbc449e4de61cc5886f0833) --- lang/python/python3-host.mk | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'lang/python/python3-host.mk') diff --git a/lang/python/python3-host.mk b/lang/python/python3-host.mk index fa3d3ace3..fdf6658fd 100644 --- a/lang/python/python3-host.mk +++ b/lang/python/python3-host.mk @@ -93,6 +93,12 @@ HOST_PYTHON3_PIP:=$(STAGING_DIR_HOSTPKG)/bin/pip$(PYTHON3_VERSION) HOST_PYTHON3_PIP_CACHE_DIR:=$(DL_DIR)/pip-cache +define SetupPyShim + if [ -f $(1)/pyproject.toml ] && [ ! -f $(1)/setup.py ] ; then \ + $(CP) $(python3_mk_path)setup.py.shim $(1)setup.py ; \ + fi +endef + # Multiple concurrent pip processes can lead to errors or unexpected results: https://github.com/pypa/pip/issues/2361 # $(1) => packages to install define HostPython3/PipInstall @@ -117,8 +123,9 @@ endef # $(2) => additional arguments to setup.py # $(3) => additional variables define HostPython3/ModSetup + $(call SetupPyShim,$(HOST_BUILD_DIR)/$(strip $(1))) $(call HostPython3/Run, \ $(HOST_BUILD_DIR)/$(strip $(1)), \ setup.py $(2), \ - $(3)) + $(3) PY_PKG_VERSION=$(PKG_VERSION)) endef -- cgit