mirror of
https://git.busybox.net/buildroot.git
synced 2024-11-23 05:23:39 +08:00
package/pkg-python.mk: add hatch setup type
As we have many python packages using the hatch(hatchling) build system we should add a setup type for it so that we don't have to manually specify the host-python-hatchling dependency. Signed-off-by: James Hilliard <james.hilliard1@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
parent
7e739d49b2
commit
1459c0a6f0
@ -429,9 +429,9 @@ different way, using different infrastructures:
|
||||
and xref:cmake-package-reference[reference].
|
||||
|
||||
* *Makefiles for Python modules*: We have a dedicated infrastructure
|
||||
for Python modules that use the +flit+, +pep517+, +setuptools+,
|
||||
+setuptools-rust+ or +maturin+ mechanisms. We cover them through a
|
||||
xref:python-package-tutorial[tutorial] and a
|
||||
for Python modules that use the +flit+, +hatch+, +pep517+,
|
||||
+setuptools+, +setuptools-rust+ or +maturin+ mechanisms. We cover
|
||||
them through a xref:python-package-tutorial[tutorial] and a
|
||||
xref:python-package-reference[reference].
|
||||
|
||||
* *Makefiles for Lua modules*: We have a dedicated infrastructure for
|
||||
|
@ -51,9 +51,9 @@ On line 13, we declare our dependencies, so that they are built
|
||||
before the build process of our package starts.
|
||||
|
||||
On line 14, we declare the specific Python build system being used. In
|
||||
this case the +setuptools+ Python build system is used. The five
|
||||
supported ones are +flit+, +pep517+, +setuptools+, +setuptools-rust+
|
||||
and +maturin+.
|
||||
this case the +setuptools+ Python build system is used. The six
|
||||
supported ones are +flit+, +hatch+, +pep517+, +setuptools+,
|
||||
+setuptools-rust+ and +maturin+.
|
||||
|
||||
Finally, on line 16, we invoke the +python-package+ macro that
|
||||
generates all the Makefile rules that actually allow the package to be
|
||||
@ -96,10 +96,10 @@ Note that:
|
||||
One variable specific to the Python infrastructure is mandatory:
|
||||
|
||||
* +PYTHON_FOO_SETUP_TYPE+, to define which Python build system is used
|
||||
by the package. The five supported values are +flit+, +pep517+ and
|
||||
+setuptools+, +setuptools-rust+ and +maturin+. If you don't know
|
||||
which one is used in your package, look at the +setup.py+ or
|
||||
+pyproject.toml+ file in your package source code, and see whether
|
||||
by the package. The five supported values are +flit+, +hatch+,
|
||||
+pep517+ and +setuptools+, +setuptools-rust+ and +maturin+. If you
|
||||
don't know which one is used in your package, look at the +setup.py+
|
||||
or +pyproject.toml+ file in your package source code, and see whether
|
||||
it imports things from the +flit+ module or the +setuptools+
|
||||
module. If the package is using a +pyproject.toml+ file without any
|
||||
build-system requires and with a local in-tree backend-path one
|
||||
|
@ -200,6 +200,33 @@ HOST_PKG_PYTHON_FLIT_BOOTSTRAP_BUILD_CMD = \
|
||||
HOST_PKG_PYTHON_FLIT_BOOTSTRAP_INSTALL_CMD = \
|
||||
$(HOST_PKG_PYTHON_PEP517_INSTALL_CMD)
|
||||
|
||||
# Target hatch packages
|
||||
PKG_PYTHON_HATCH_ENV = \
|
||||
$(PKG_PYTHON_PEP517_ENV)
|
||||
|
||||
PKG_PYTHON_HATCH_BUILD_CMD = \
|
||||
$(PKG_PYTHON_PEP517_BUILD_CMD)
|
||||
|
||||
PKG_PYTHON_HATCH_INSTALL_TARGET_CMD = \
|
||||
$(PKG_PYTHON_PEP517_INSTALL_TARGET_CMD)
|
||||
|
||||
PKG_PYTHON_HATCH_INSTALL_STAGING_CMD = \
|
||||
$(PKG_PYTHON_PEP517_INSTALL_STAGING_CMD)
|
||||
|
||||
PKG_PYTHON_HATCH_DEPENDENCIES = \
|
||||
$(PKG_PYTHON_PEP517_DEPENDENCIES) \
|
||||
host-python-hatchling
|
||||
|
||||
# Host hatch packages
|
||||
HOST_PKG_PYTHON_HATCH_ENV = \
|
||||
$(HOST_PKG_PYTHON_PEP517_ENV)
|
||||
|
||||
HOST_PKG_PYTHON_HATCH_BUILD_CMD = \
|
||||
$(HOST_PKG_PYTHON_PEP517_BUILD_CMD)
|
||||
|
||||
HOST_PKG_PYTHON_HATCH_INSTALL_CMD = \
|
||||
$(HOST_PKG_PYTHON_PEP517_INSTALL_CMD)
|
||||
|
||||
# Target maturin packages
|
||||
PKG_PYTHON_MATURIN_ENV = \
|
||||
$(PKG_PYTHON_PEP517_ENV) \
|
||||
@ -257,8 +284,8 @@ endif
|
||||
|
||||
$(2)_SETUP_TYPE_UPPER = $$(call UPPERCASE,$$($(2)_SETUP_TYPE))
|
||||
|
||||
ifneq ($$(filter-out setuptools setuptools-rust pep517 flit flit-bootstrap maturin,$$($(2)_SETUP_TYPE)),)
|
||||
$$(error "Invalid $(2)_SETUP_TYPE. Valid options are 'maturin', 'setuptools', 'setuptools-rust', 'pep517' or 'flit'.")
|
||||
ifneq ($$(filter-out setuptools setuptools-rust pep517 flit flit-bootstrap hatch maturin,$$($(2)_SETUP_TYPE)),)
|
||||
$$(error "Invalid $(2)_SETUP_TYPE. Valid options are 'maturin', 'setuptools', 'setuptools-rust', 'pep517', 'flit' or 'hatch'.")
|
||||
endif
|
||||
ifeq ($(4)-$$($(2)_SETUP_TYPE),target-flit-bootstrap)
|
||||
$$(error flit-bootstrap setup type only supported for host packages)
|
||||
|
@ -417,6 +417,8 @@ class BuildrootPackage():
|
||||
self.build_backend = build_backend
|
||||
if build_backend == 'flit_core.buildapi':
|
||||
self.setup_metadata['method'] = 'flit'
|
||||
elif build_backend == 'hatchling.build':
|
||||
self.setup_metadata['method'] = 'hatch'
|
||||
elif build_backend == 'setuptools.build_meta':
|
||||
self.setup_metadata['method'] = 'setuptools'
|
||||
else:
|
||||
|
Loading…
Reference in New Issue
Block a user