|
@@ -111,6 +111,47 @@ HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS = \
|
|
|
--root=/ \
|
|
|
--single-version-externally-managed
|
|
|
|
|
|
+# Target pep517-based packages
|
|
|
+PKG_PYTHON_PEP517_ENV = \
|
|
|
+ _PYTHON_SYSCONFIGDATA_NAME="$(PKG_PYTHON_SYSCONFIGDATA_NAME)" \
|
|
|
+ PATH=$(BR_PATH) \
|
|
|
+ $(TARGET_CONFIGURE_OPTS) \
|
|
|
+ PYTHONPATH="$(PYTHON3_PATH)" \
|
|
|
+ PYTHONNOUSERSITE=1 \
|
|
|
+ _python_sysroot=$(STAGING_DIR) \
|
|
|
+ _python_prefix=/usr \
|
|
|
+ _python_exec_prefix=/usr
|
|
|
+
|
|
|
+PKG_PYTHON_PEP517_INSTALL_TARGET_OPTS = \
|
|
|
+ --interpreter=/usr/bin/python \
|
|
|
+ --script-kind=posix \
|
|
|
+ --purelib=$(TARGET_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages \
|
|
|
+ --headers=$(TARGET_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR) \
|
|
|
+ --scripts=$(TARGET_DIR)/usr/bin \
|
|
|
+ --data=$(TARGET_DIR)/usr
|
|
|
+
|
|
|
+PKG_PYTHON_PEP517_INSTALL_STAGING_OPTS = \
|
|
|
+ --interpreter=/usr/bin/python \
|
|
|
+ --script-kind=posix \
|
|
|
+ --purelib=$(STAGING_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages \
|
|
|
+ --headers=$(STAGING_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR) \
|
|
|
+ --scripts=$(STAGING_DIR)/usr/bin \
|
|
|
+ --data=$(STAGING_DIR)/usr
|
|
|
+
|
|
|
+# Host pep517-based packages
|
|
|
+HOST_PKG_PYTHON_PEP517_ENV = \
|
|
|
+ PATH=$(BR_PATH) \
|
|
|
+ PYTHONNOUSERSITE=1 \
|
|
|
+ $(HOST_CONFIGURE_OPTS)
|
|
|
+
|
|
|
+HOST_PKG_PYTHON_PEP517_INSTALL_OPTS = \
|
|
|
+ --interpreter=/usr/bin/python \
|
|
|
+ --script-kind=posix \
|
|
|
+ --purelib=$(HOST_DIR)/lib/python$(PYTHON3_VERSION_MAJOR)/site-packages \
|
|
|
+ --headers=$(HOST_DIR)/usr/include/python$(PYTHON3_VERSION_MAJOR) \
|
|
|
+ --scripts=$(HOST_DIR)/usr/bin \
|
|
|
+ --data=$(HOST_DIR)/usr
|
|
|
+
|
|
|
################################################################################
|
|
|
# inner-python-package -- defines how the configuration, compilation
|
|
|
# and installation of a Python package should be done, implements a
|
|
@@ -138,30 +179,41 @@ endif
|
|
|
# Distutils
|
|
|
ifeq ($$($(2)_SETUP_TYPE),distutils)
|
|
|
ifeq ($(4),target)
|
|
|
-$(2)_BASE_ENV = $$(PKG_PYTHON_DISTUTILS_ENV)
|
|
|
-$(2)_BASE_BUILD_TGT = build
|
|
|
-$(2)_BASE_BUILD_OPTS = $$(PKG_PYTHON_DISTUTILS_BUILD_OPTS)
|
|
|
-$(2)_BASE_INSTALL_TARGET_OPTS = $$(PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPTS)
|
|
|
-$(2)_BASE_INSTALL_STAGING_OPTS = $$(PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPTS)
|
|
|
+$(2)_BASE_ENV = $$(PKG_PYTHON_DISTUTILS_ENV)
|
|
|
+$(2)_BASE_BUILD_CMD = setup.py build
|
|
|
+$(2)_BASE_BUILD_OPTS = $$(PKG_PYTHON_DISTUTILS_BUILD_OPTS)
|
|
|
+$(2)_BASE_INSTALL_TARGET_CMD = setup.py install --no-compile $$(PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPTS)
|
|
|
+$(2)_BASE_INSTALL_STAGING_CMD = setup.py install $$(PKG_PYTHON_DISTUTILS_INSTALL_STAGING_OPTS)
|
|
|
else
|
|
|
$(2)_BASE_ENV = $$(HOST_PKG_PYTHON_DISTUTILS_ENV)
|
|
|
-$(2)_BASE_BUILD_TGT = build
|
|
|
-$(2)_BASE_INSTALL_OPTS = $$(HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS)
|
|
|
+$(2)_BASE_BUILD_CMD = setup.py build
|
|
|
+$(2)_BASE_INSTALL_CMD = setup.py install $$(HOST_PKG_PYTHON_DISTUTILS_INSTALL_OPTS)
|
|
|
endif
|
|
|
# Setuptools
|
|
|
else ifeq ($$($(2)_SETUP_TYPE),setuptools)
|
|
|
ifeq ($(4),target)
|
|
|
-$(2)_BASE_ENV = $$(PKG_PYTHON_SETUPTOOLS_ENV)
|
|
|
-$(2)_BASE_BUILD_TGT = build
|
|
|
-$(2)_BASE_INSTALL_TARGET_OPTS = $$(PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPTS)
|
|
|
-$(2)_BASE_INSTALL_STAGING_OPTS = $$(PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPTS)
|
|
|
+$(2)_BASE_ENV = $$(PKG_PYTHON_SETUPTOOLS_ENV)
|
|
|
+$(2)_BASE_BUILD_CMD = setup.py build
|
|
|
+$(2)_BASE_INSTALL_TARGET_CMD = setup.py install --no-compile $$(PKG_PYTHON_SETUPTOOLS_INSTALL_TARGET_OPTS)
|
|
|
+$(2)_BASE_INSTALL_STAGING_CMD = setup.py install $$(PKG_PYTHON_SETUPTOOLS_INSTALL_STAGING_OPTS)
|
|
|
else
|
|
|
-$(2)_BASE_ENV = $$(HOST_PKG_PYTHON_SETUPTOOLS_ENV)
|
|
|
-$(2)_BASE_BUILD_TGT = build
|
|
|
-$(2)_BASE_INSTALL_OPTS = $$(HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS)
|
|
|
+$(2)_BASE_ENV = $$(HOST_PKG_PYTHON_SETUPTOOLS_ENV)
|
|
|
+$(2)_BASE_BUILD_CMD = setup.py build
|
|
|
+$(2)_BASE_INSTALL_CMD = setup.py install $$(HOST_PKG_PYTHON_SETUPTOOLS_INSTALL_OPTS)
|
|
|
endif
|
|
|
+else ifneq ($$(filter flit pep517,$$($(2)_SETUP_TYPE)),)
|
|
|
+ifeq ($(4),target)
|
|
|
+$(2)_BASE_ENV = $$(PKG_PYTHON_PEP517_ENV)
|
|
|
+$(2)_BASE_BUILD_CMD = -m build -n -w
|
|
|
+$(2)_BASE_INSTALL_TARGET_CMD = $(TOPDIR)/support/scripts/pyinstaller.py dist/* $$(PKG_PYTHON_PEP517_INSTALL_TARGET_OPTS)
|
|
|
+$(2)_BASE_INSTALL_STAGING_CMD = $(TOPDIR)/support/scripts/pyinstaller.py dist/* $$(PKG_PYTHON_PEP517_INSTALL_STAGING_OPTS)
|
|
|
else
|
|
|
-$$(error "Invalid $(2)_SETUP_TYPE. Valid options are 'distutils' or 'setuptools'")
|
|
|
+$(2)_BASE_ENV = $$(HOST_PKG_PYTHON_PEP517_ENV)
|
|
|
+$(2)_BASE_BUILD_CMD = -m build -n -w
|
|
|
+$(2)_BASE_INSTALL_CMD = $(TOPDIR)/support/scripts/pyinstaller.py dist/* $$(HOST_PKG_PYTHON_PEP517_INSTALL_OPTS)
|
|
|
+endif
|
|
|
+else
|
|
|
+$$(error "Invalid $(2)_SETUP_TYPE. Valid options are 'distutils', 'setuptools', 'pep517' or 'flit'.")
|
|
|
endif
|
|
|
|
|
|
# Target packages need both the python interpreter on the target (for
|
|
@@ -180,6 +232,11 @@ endif # ($(4),target)
|
|
|
#
|
|
|
ifeq ($$($(2)_SETUP_TYPE),setuptools)
|
|
|
$(2)_DEPENDENCIES += $$(if $$(filter host-python-setuptools,$(1)),,host-python-setuptools)
|
|
|
+else ifneq ($$(filter flit pep517,$$($(2)_SETUP_TYPE)),)
|
|
|
+$(2)_DEPENDENCIES += host-python-pypa-build host-python-installer
|
|
|
+ifeq ($$($(2)_SETUP_TYPE),flit)
|
|
|
+$(2)_DEPENDENCIES += host-python-flit-core
|
|
|
+endif
|
|
|
endif # SETUP_TYPE
|
|
|
|
|
|
# Python interpreter to use for building the package.
|
|
@@ -194,8 +251,8 @@ ifndef $(2)_BUILD_CMDS
|
|
|
define $(2)_BUILD_CMDS
|
|
|
(cd $$($$(PKG)_BUILDDIR)/; \
|
|
|
$$($$(PKG)_BASE_ENV) $$($$(PKG)_ENV) \
|
|
|
- $$($(2)_PYTHON_INTERPRETER) setup.py \
|
|
|
- $$($$(PKG)_BASE_BUILD_TGT) \
|
|
|
+ $$($(2)_PYTHON_INTERPRETER) \
|
|
|
+ $$($$(PKG)_BASE_BUILD_CMD) \
|
|
|
$$($$(PKG)_BASE_BUILD_OPTS) $$($$(PKG)_BUILD_OPTS))
|
|
|
endef
|
|
|
endif
|
|
@@ -208,8 +265,9 @@ ifndef $(2)_INSTALL_CMDS
|
|
|
define $(2)_INSTALL_CMDS
|
|
|
(cd $$($$(PKG)_BUILDDIR)/; \
|
|
|
$$($$(PKG)_BASE_ENV) $$($$(PKG)_ENV) \
|
|
|
- $$($(2)_PYTHON_INTERPRETER) setup.py install \
|
|
|
- $$($$(PKG)_BASE_INSTALL_OPTS) $$($$(PKG)_INSTALL_OPTS))
|
|
|
+ $$($(2)_PYTHON_INTERPRETER) \
|
|
|
+ $$($$(PKG)_BASE_INSTALL_CMD) \
|
|
|
+ $$($$(PKG)_INSTALL_OPTS))
|
|
|
endef
|
|
|
endif
|
|
|
|
|
@@ -221,8 +279,8 @@ ifndef $(2)_INSTALL_TARGET_CMDS
|
|
|
define $(2)_INSTALL_TARGET_CMDS
|
|
|
(cd $$($$(PKG)_BUILDDIR)/; \
|
|
|
$$($$(PKG)_BASE_ENV) $$($$(PKG)_ENV) \
|
|
|
- $$($(2)_PYTHON_INTERPRETER) setup.py install --no-compile \
|
|
|
- $$($$(PKG)_BASE_INSTALL_TARGET_OPTS) \
|
|
|
+ $$($(2)_PYTHON_INTERPRETER) \
|
|
|
+ $$($$(PKG)_BASE_INSTALL_TARGET_CMD) \
|
|
|
$$($$(PKG)_INSTALL_TARGET_OPTS))
|
|
|
endef
|
|
|
endif
|
|
@@ -235,8 +293,8 @@ ifndef $(2)_INSTALL_STAGING_CMDS
|
|
|
define $(2)_INSTALL_STAGING_CMDS
|
|
|
(cd $$($$(PKG)_BUILDDIR)/; \
|
|
|
$$($$(PKG)_BASE_ENV) $$($$(PKG)_ENV) \
|
|
|
- $$($(2)_PYTHON_INTERPRETER) setup.py install \
|
|
|
- $$($$(PKG)_BASE_INSTALL_STAGING_OPTS) \
|
|
|
+ $$($(2)_PYTHON_INTERPRETER) \
|
|
|
+ $$($$(PKG)_BASE_INSTALL_STAGING_CMD) \
|
|
|
$$($$(PKG)_INSTALL_STAGING_OPTS))
|
|
|
endef
|
|
|
endif
|