diff options
author | Michał Górny <mgorny@gentoo.org> | 2019-12-22 13:13:18 +0100 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2020-02-20 10:18:55 +0100 |
commit | 894dd695f7be1e79f018f9cf3a1c6a13ba49eb71 (patch) | |
tree | bdfecace61194f9bf82f127e7ef5cef4aadbbb94 /eclass/distutils-r1.eclass | |
parent | net-libs/gupnp-1.0: lock to gssdp-1.0 API (diff) | |
download | gentoo-894dd695f7be1e79f018f9cf3a1c6a13ba49eb71.tar.gz gentoo-894dd695f7be1e79f018f9cf3a1c6a13ba49eb71.tar.bz2 gentoo-894dd695f7be1e79f018f9cf3a1c6a13ba49eb71.zip |
distutils-r1.eclass: Add pyproject.toml support
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'eclass/distutils-r1.eclass')
-rw-r--r-- | eclass/distutils-r1.eclass | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index e546aadfa4a7..27ca236ccf5f 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -86,6 +86,8 @@ esac # - no -- do not add the dependency (pure distutils package) # - bdepend -- add it to BDEPEND (the default) # - rdepend -- add it to BDEPEND+RDEPEND (when using entry_points) +# - pyproject.toml -- use pyproject2setuptools to install a project +# using pyproject.toml (flit, poetry...) # - manual -- do not add the depedency and suppress the checks # (assumes you will take care of doing it correctly) # @@ -135,6 +137,9 @@ _distutils_set_globals() { bdep+=" ${sdep}" rdep+=" ${sdep}" ;; + pyproject.toml) + bdep+=" dev-python/pyproject2setuppy[${PYTHON_USEDEP}]" + ;; *) die "Invalid DISTUTILS_USE_SETUPTOOLS=${DISTUTILS_USE_SETUPTOOLS}" ;; @@ -457,6 +462,7 @@ distutils_enable_tests() { _distutils_verify_use_setuptools() { [[ ${DISTUTILS_OPTIONAL} ]] && return [[ ${DISTUTILS_USE_SETUPTOOLS} == manual ]] && return + [[ ${DISTUTILS_USE_SETUPTOOLS} == pyproject.toml ]] && return # ok, those are cheap greps. we can try toimprove them if we hit # false positives. @@ -580,6 +586,28 @@ _distutils-r1_disable_ez_setup() { fi } +# @FUNCTION: _distutils-r1_handle_pyproject_toml +# @INTERNAL +# @DESCRIPTION: +# Generate setup.py for pyproject.toml if requested. +_distutils-r1_handle_pyproject_toml() { + if [[ ! -f setup.py && -f pyproject.toml ]]; then + if [[ ${DISTUTILS_USE_SETUPTOOLS} == pyproject.toml ]]; then + cat > setup.py <<-EOF || die + #!/usr/bin/env python + from pyproject2setuppy.main import main + main() + EOF + chmod +x setup.py || die + else + eerror "No setup.py found but pyproject.toml is present. In order to enable" + eerror "pyproject.toml support in distutils-r1, set:" + eerror " DISTUTILS_USE_SETUPTOOLS=pyproject.toml" + die "No setup.py found and DISTUTILS_USE_SETUPTOOLS!=pyproject.toml" + fi + fi +} + # @FUNCTION: distutils-r1_python_prepare_all # @DESCRIPTION: # The default python_prepare_all(). It applies the patches from PATCHES @@ -608,6 +636,7 @@ distutils-r1_python_prepare_all() { fi _distutils-r1_disable_ez_setup + _distutils-r1_handle_pyproject_toml if [[ ${DISTUTILS_IN_SOURCE_BUILD} && ! ${DISTUTILS_SINGLE_IMPL} ]] then |