- Issue #15484: Fix _PYTHON_PROJECT_BASE for srcdir != builddir builds;
use _PYTHON_PROJECT_BASE in distutils/sysconfig.py.
This commit is contained in:
parent
0c77bf757f
commit
9731330d6f
|
@ -24,7 +24,11 @@ BASE_EXEC_PREFIX = os.path.normpath(sys.base_exec_prefix)
|
||||||
# Path to the base directory of the project. On Windows the binary may
|
# Path to the base directory of the project. On Windows the binary may
|
||||||
# live in project/PCBuild9. If we're dealing with an x64 Windows build,
|
# live in project/PCBuild9. If we're dealing with an x64 Windows build,
|
||||||
# it'll live in project/PCbuild/amd64.
|
# it'll live in project/PCbuild/amd64.
|
||||||
project_base = os.path.dirname(os.path.abspath(sys.executable))
|
# set for cross builds
|
||||||
|
if "_PYTHON_PROJECT_BASE" in os.environ:
|
||||||
|
project_base = os.path.abspath(os.environ["_PYTHON_PROJECT_BASE"])
|
||||||
|
else:
|
||||||
|
project_base = os.path.dirname(os.path.abspath(sys.executable))
|
||||||
if os.name == "nt" and "pcbuild" in project_base[-8:].lower():
|
if os.name == "nt" and "pcbuild" in project_base[-8:].lower():
|
||||||
project_base = os.path.abspath(os.path.join(project_base, os.path.pardir))
|
project_base = os.path.abspath(os.path.join(project_base, os.path.pardir))
|
||||||
# PC/VS7.1
|
# PC/VS7.1
|
||||||
|
@ -98,7 +102,7 @@ def get_python_inc(plat_specific=0, prefix=None):
|
||||||
# the build directory may not be the source directory, we
|
# the build directory may not be the source directory, we
|
||||||
# must use "srcdir" from the makefile to find the "Include"
|
# must use "srcdir" from the makefile to find the "Include"
|
||||||
# directory.
|
# directory.
|
||||||
base = _sys_home or os.path.dirname(os.path.abspath(sys.executable))
|
base = _sys_home or project_base
|
||||||
if plat_specific:
|
if plat_specific:
|
||||||
return base
|
return base
|
||||||
if _sys_home:
|
if _sys_home:
|
||||||
|
@ -251,8 +255,7 @@ def get_config_h_filename():
|
||||||
def get_makefile_filename():
|
def get_makefile_filename():
|
||||||
"""Return full pathname of installed Makefile from the Python build."""
|
"""Return full pathname of installed Makefile from the Python build."""
|
||||||
if python_build:
|
if python_build:
|
||||||
return os.path.join(_sys_home or os.path.dirname(sys.executable),
|
return os.path.join(_sys_home or project_base, "Makefile")
|
||||||
"Makefile")
|
|
||||||
lib_dir = get_python_lib(plat_specific=0, standard_lib=1)
|
lib_dir = get_python_lib(plat_specific=0, standard_lib=1)
|
||||||
config_file = 'config-{}{}'.format(get_python_version(), build_flags)
|
config_file = 'config-{}{}'.format(get_python_version(), build_flags)
|
||||||
return os.path.join(lib_dir, config_file, 'Makefile')
|
return os.path.join(lib_dir, config_file, 'Makefile')
|
||||||
|
@ -555,7 +558,7 @@ def get_config_vars(*args):
|
||||||
# testing, for example, we might be running a non-installed python
|
# testing, for example, we might be running a non-installed python
|
||||||
# from a different directory.
|
# from a different directory.
|
||||||
if python_build and os.name == "posix":
|
if python_build and os.name == "posix":
|
||||||
base = os.path.dirname(os.path.abspath(sys.executable))
|
base = project_base
|
||||||
if (not os.path.isabs(_config_vars['srcdir']) and
|
if (not os.path.isabs(_config_vars['srcdir']) and
|
||||||
base != os.getcwd()):
|
base != os.getcwd()):
|
||||||
# srcdir is relative and we are not in the same directory
|
# srcdir is relative and we are not in the same directory
|
||||||
|
|
|
@ -533,6 +533,9 @@ Tests
|
||||||
Build
|
Build
|
||||||
-----
|
-----
|
||||||
|
|
||||||
|
- Issue #15484: Fix _PYTHON_PROJECT_BASE for srcdir != builddir builds;
|
||||||
|
use _PYTHON_PROJECT_BASE in distutils/sysconfig.py.
|
||||||
|
|
||||||
- Issue #17029: Let h2py search the multiarch system include directory.
|
- Issue #17029: Let h2py search the multiarch system include directory.
|
||||||
|
|
||||||
- Issue #16953: Fix socket module compilation on platforms with
|
- Issue #16953: Fix socket module compilation on platforms with
|
||||||
|
|
|
@ -2942,7 +2942,7 @@ $as_echo_n "checking for python interpreter for cross build... " >&6; }
|
||||||
fi
|
fi
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $interp" >&5
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $interp" >&5
|
||||||
$as_echo "$interp" >&6; }
|
$as_echo "$interp" >&6; }
|
||||||
PYTHON_FOR_BUILD="_PYTHON_PROJECT_BASE=$srcdir"' _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(srcdir)/Lib:$(srcdir)/Lib/plat-$(MACHDEP) '$interp
|
PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/plat-$(MACHDEP) '$interp
|
||||||
fi
|
fi
|
||||||
elif test "$cross_compiling" = maybe; then
|
elif test "$cross_compiling" = maybe; then
|
||||||
as_fn_error $? "Cross compiling required --host=HOST-TUPLE and --build=ARCH" "$LINENO" 5
|
as_fn_error $? "Cross compiling required --host=HOST-TUPLE and --build=ARCH" "$LINENO" 5
|
||||||
|
|
|
@ -65,7 +65,7 @@ if test "$cross_compiling" = yes; then
|
||||||
AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found])
|
AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found])
|
||||||
fi
|
fi
|
||||||
AC_MSG_RESULT($interp)
|
AC_MSG_RESULT($interp)
|
||||||
PYTHON_FOR_BUILD="_PYTHON_PROJECT_BASE=$srcdir"' _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(srcdir)/Lib:$(srcdir)/Lib/plat-$(MACHDEP) '$interp
|
PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/plat-$(MACHDEP) '$interp
|
||||||
fi
|
fi
|
||||||
elif test "$cross_compiling" = maybe; then
|
elif test "$cross_compiling" = maybe; then
|
||||||
AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])
|
AC_MSG_ERROR([Cross compiling required --host=HOST-TUPLE and --build=ARCH])
|
||||||
|
|
Loading…
Reference in New Issue