mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
distutils-r1.eclass: Fix setuptools without setup.py
Invoke pyproject2setuppy directly instead of writing the setup.py wrapper. This is necessary to correctly support setuptools via pyproject.toml without setup.py. Writing setup.py confuses pyproject2setuppy into running the setup.py code path instead of the correct non-setup.py path. Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
@@ -523,7 +523,13 @@ esetup.py() {
|
||||
|
||||
[[ ${BUILD_DIR} ]] && _distutils-r1_create_setup_cfg
|
||||
|
||||
set -- "${EPYTHON:-python}" setup.py "${mydistutilsargs[@]}" "${@}"
|
||||
local setup_py=( setup.py )
|
||||
if [[ ${DISTUTILS_USE_SETUPTOOLS} == pyproject.toml ]]; then
|
||||
# TODO: remove '.main' when we require v10
|
||||
setup_py=( -m pyproject2setuppy.main )
|
||||
fi
|
||||
|
||||
set -- "${EPYTHON:-python}" "${setup_py[@]}" "${mydistutilsargs[@]}" "${@}"
|
||||
|
||||
echo "${@}" >&2
|
||||
"${@}" || die "${die_args[@]}"
|
||||
@@ -632,14 +638,7 @@ _distutils-r1_disable_ez_setup() {
|
||||
# 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
|
||||
if [[ ${DISTUTILS_USE_SETUPTOOLS} != pyproject.toml ]]; then
|
||||
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"
|
||||
|
||||
Reference in New Issue
Block a user