diff options
-rw-r--r-- | Lib/sysconfig.py | 1 | ||||
-rw-r--r-- | Lib/test/test_embed.py | 11 | ||||
-rw-r--r-- | Modules/getpath.py | 2 | ||||
-rw-r--r-- | PCbuild/_freeze_module.vcxproj | 4 | ||||
-rw-r--r-- | PCbuild/python.props | 4 | ||||
-rw-r--r-- | PCbuild/pythoncore.vcxproj | 6 | ||||
-rw-r--r-- | Python/sysmodule.c | 2 |
7 files changed, 23 insertions, 7 deletions
diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py index da918b7..ef335c6 100644 --- a/Lib/sysconfig.py +++ b/Lib/sysconfig.py @@ -616,6 +616,7 @@ def get_config_vars(*args): if os.name == 'nt': _init_non_posix(_CONFIG_VARS) + _CONFIG_VARS['VPATH'] = sys._vpath if os.name == 'posix': _init_posix(_CONFIG_VARS) # For backward compatibility, see issue19555 diff --git a/Lib/test/test_embed.py b/Lib/test/test_embed.py index 8012d80..8799524 100644 --- a/Lib/test/test_embed.py +++ b/Lib/test/test_embed.py @@ -1300,11 +1300,16 @@ class InitConfigTests(EmbeddingTestsMixin, unittest.TestCase): def test_init_pybuilddir_win32(self): # Test path configuration with pybuilddir.txt configuration file - with self.tmpdir_with_python(r'PCbuild\arch') as tmpdir: + vpath = sysconfig.get_config_var("VPATH") + subdir = r'PCbuild\arch' + if os.path.normpath(vpath).count(os.sep) == 2: + subdir = os.path.join(subdir, 'instrumented') + + with self.tmpdir_with_python(subdir) as tmpdir: # The prefix is dirname(executable) + VPATH - prefix = os.path.normpath(os.path.join(tmpdir, r'..\..')) + prefix = os.path.normpath(os.path.join(tmpdir, vpath)) # The stdlib dir is dirname(executable) + VPATH + 'Lib' - stdlibdir = os.path.normpath(os.path.join(tmpdir, r'..\..\Lib')) + stdlibdir = os.path.normpath(os.path.join(tmpdir, vpath, 'Lib')) filename = os.path.join(tmpdir, 'pybuilddir.txt') with open(filename, "w", encoding="utf8") as fp: diff --git a/Modules/getpath.py b/Modules/getpath.py index 84c9760..77f951d 100644 --- a/Modules/getpath.py +++ b/Modules/getpath.py @@ -187,7 +187,7 @@ if os_name == 'posix' or os_name == 'darwin': elif os_name == 'nt': BUILDDIR_TXT = 'pybuilddir.txt' - BUILD_LANDMARK = r'..\..\Modules\Setup.local' + BUILD_LANDMARK = f'{VPATH}\\Modules\\Setup.local' DEFAULT_PROGRAM_NAME = f'python' STDLIB_SUBDIR = 'Lib' STDLIB_LANDMARKS = [f'{STDLIB_SUBDIR}\\os.py', f'{STDLIB_SUBDIR}\\os.pyc'] diff --git a/PCbuild/_freeze_module.vcxproj b/PCbuild/_freeze_module.vcxproj index 2c06a89..2beb425 100644 --- a/PCbuild/_freeze_module.vcxproj +++ b/PCbuild/_freeze_module.vcxproj @@ -226,7 +226,9 @@ <ClCompile Include="..\Python\structmember.c" /> <ClCompile Include="..\Python\suggestions.c" /> <ClCompile Include="..\Python\symtable.c" /> - <ClCompile Include="..\Python\sysmodule.c" /> + <ClCompile Include="..\Python\sysmodule.c"> + <PreprocessorDefinitions>VPATH="$(PyVPath)";%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> <ClCompile Include="..\Python\thread.c" /> <ClCompile Include="..\Python\traceback.c" /> </ItemGroup> diff --git a/PCbuild/python.props b/PCbuild/python.props index 7b85ad1..ce86076 100644 --- a/PCbuild/python.props +++ b/PCbuild/python.props @@ -53,6 +53,10 @@ <BuildPath Condition="!HasTrailingSlash($(BuildPath))">$(BuildPath)\</BuildPath> <BuildPath Condition="$(Configuration) == 'PGInstrument'">$(BuildPath)instrumented\</BuildPath> + <!-- VPATH definition (escaped) --> + <PyVPath Condition="$(Configuration) != 'PGInstrument'">..\\..</PyVPath> + <PyVPath Condition="$(Configuration) == 'PGInstrument'">..\\..\\..</PyVPath> + <!-- Directories of external projects. tcltk is handled in tcltk.props --> <ExternalsDir>$(EXTERNALS_DIR)</ExternalsDir> <ExternalsDir Condition="$(ExternalsDir) == ''">$([System.IO.Path]::GetFullPath(`$(PySourcePath)externals`))</ExternalsDir> diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index e3a71ca..33abfaf 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -115,7 +115,7 @@ PREFIX=NULL; EXEC_PREFIX=NULL; VERSION=NULL; - VPATH="..\\.."; + VPATH="$(PyVPath)"; PYDEBUGEXT="$(PyDebugExt)"; PLATLIBDIR="DLLs"; %(PreprocessorDefinitions) @@ -519,7 +519,9 @@ <ClCompile Include="..\Python\suggestions.c" /> <ClCompile Include="..\Python\structmember.c" /> <ClCompile Include="..\Python\symtable.c" /> - <ClCompile Include="..\Python\sysmodule.c" /> + <ClCompile Include="..\Python\sysmodule.c"> + <PreprocessorDefinitions>VPATH="$(PyVPath)";%(PreprocessorDefinitions)</PreprocessorDefinitions> + </ClCompile> <ClCompile Include="..\Python\thread.c" /> <ClCompile Include="..\Python\traceback.c" /> </ItemGroup> diff --git a/Python/sysmodule.c b/Python/sysmodule.c index af4f926..f912115 100644 --- a/Python/sysmodule.c +++ b/Python/sysmodule.c @@ -2823,6 +2823,8 @@ _PySys_InitCore(PyThreadState *tstate, PyObject *sysdict) goto type_init_failed; } } + + SET_SYS_FROM_STRING("_vpath", VPATH); #endif /* float repr style: 0.03 (short) vs 0.029999999999999999 (legacy) */ |