From 2507e29a9e4e9dcac6eab46546bd3d34a69342ba Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Fri, 19 Jan 2018 09:09:36 +1100 Subject: bpo-32588: Move _findvs into its own module and add missing _queue module to installer (#5227) --- Lib/distutils/_msvccompiler.py | 4 +- Lib/distutils/command/bdist_wininst.py | 9 ++- .../2018-01-18-14-56-45.bpo-32588.vHww6F.rst | 2 + PC/_findvs.cpp | 12 ++-- PC/config.c | 3 - PCbuild/_distutils_findvs.vcxproj | 83 ++++++++++++++++++++++ PCbuild/_distutils_findvs.vcxproj.filters | 16 +++++ PCbuild/pcbuild.proj | 2 +- PCbuild/pcbuild.sln | 20 +++++- PCbuild/pythoncore.vcxproj | 2 - Tools/msi/lib/lib_files.wxs | 2 +- 11 files changed, 132 insertions(+), 23 deletions(-) create mode 100644 Misc/NEWS.d/next/Windows/2018-01-18-14-56-45.bpo-32588.vHww6F.rst create mode 100644 PCbuild/_distutils_findvs.vcxproj create mode 100644 PCbuild/_distutils_findvs.vcxproj.filters diff --git a/Lib/distutils/_msvccompiler.py b/Lib/distutils/_msvccompiler.py index ef1356b..c9d3c6c 100644 --- a/Lib/distutils/_msvccompiler.py +++ b/Lib/distutils/_msvccompiler.py @@ -56,7 +56,7 @@ def _find_vc2015(): return best_version, best_dir def _find_vc2017(): - import _findvs + import _distutils_findvs import threading best_version = 0, # tuple for full version comparisons @@ -66,7 +66,7 @@ def _find_vc2017(): # initialize COM. all_packages = [] def _getall(): - all_packages.extend(_findvs.findall()) + all_packages.extend(_distutils_findvs.findall()) t = threading.Thread(target=_getall) t.start() t.join() diff --git a/Lib/distutils/command/bdist_wininst.py b/Lib/distutils/command/bdist_wininst.py index 83f0073..0871a4f 100644 --- a/Lib/distutils/command/bdist_wininst.py +++ b/Lib/distutils/command/bdist_wininst.py @@ -337,11 +337,10 @@ class bdist_wininst(Command): # cross-building, so assume the latest version bv = '14.0' else: - bv = '.'.join(CRT_ASSEMBLY_VERSION.split('.', 2)[:2]) - if bv in ('14.11', '14.12'): - # v142, v141 and v140 are binary compatible, - # so keep using the 14.0 stub. - bv = '14.0' + # as far as we know, CRT is binary compatible based on + # the first field, so assume 'x.0' until proven otherwise + major = CRT_ASSEMBLY_VERSION.partition('.')[0] + bv = major + '.0' # wininst-x.y.exe is in the same directory as this file diff --git a/Misc/NEWS.d/next/Windows/2018-01-18-14-56-45.bpo-32588.vHww6F.rst b/Misc/NEWS.d/next/Windows/2018-01-18-14-56-45.bpo-32588.vHww6F.rst new file mode 100644 index 0000000..0766a7e --- /dev/null +++ b/Misc/NEWS.d/next/Windows/2018-01-18-14-56-45.bpo-32588.vHww6F.rst @@ -0,0 +1,2 @@ +Create standalone _distutils_findvs module and add missing _queue module to +installer. diff --git a/PC/_findvs.cpp b/PC/_findvs.cpp index dd7c1fc..ecc68e8 100644 --- a/PC/_findvs.cpp +++ b/PC/_findvs.cpp @@ -12,10 +12,6 @@ #include #include #include "external\include\Setup.Configuration.h" -#pragma comment(lib, "ole32.lib") -#pragma comment(lib, "oleaut32.lib") -#pragma comment(lib, "version.lib") -#pragma comment(lib, "Microsoft.VisualStudio.Setup.Configuration.Native.lib") #include @@ -236,7 +232,7 @@ static int exec_findvs(PyObject *module) return 0; // success } -PyDoc_STRVAR(findvs_doc, "The _findvs helper module"); +PyDoc_STRVAR(findvs_doc, "The _distutils_findvs helper module"); static PyModuleDef_Slot findvs_slots[] = { { Py_mod_exec, exec_findvs }, @@ -245,7 +241,7 @@ static PyModuleDef_Slot findvs_slots[] = { static PyModuleDef findvs_def = { PyModuleDef_HEAD_INIT, - "_findvs", + "_distutils_findvs", findvs_doc, 0, // m_size NULL, // m_methods @@ -256,8 +252,8 @@ static PyModuleDef findvs_def = { }; extern "C" { - PyMODINIT_FUNC PyInit__findvs(void) + PyMODINIT_FUNC PyInit__distutils_findvs(void) { return PyModuleDef_Init(&findvs_def); } -} \ No newline at end of file +} diff --git a/PC/config.c b/PC/config.c index 699e1d0..91f15b5 100644 --- a/PC/config.c +++ b/PC/config.c @@ -69,7 +69,6 @@ extern PyObject* _PyWarnings_Init(void); extern PyObject* PyInit__string(void); extern PyObject* PyInit__stat(void); extern PyObject* PyInit__opcode(void); -extern PyObject* PyInit__findvs(void); /* tools/freeze/makeconfig.py marker for additional "extern" */ /* -- ADDMODULE MARKER 1 -- */ @@ -162,8 +161,6 @@ struct _inittab _PyImport_Inittab[] = { {"_stat", PyInit__stat}, {"_opcode", PyInit__opcode}, - {"_findvs", PyInit__findvs}, - /* Sentinel */ {0, 0} }; diff --git a/PCbuild/_distutils_findvs.vcxproj b/PCbuild/_distutils_findvs.vcxproj new file mode 100644 index 0000000..3db1280 --- /dev/null +++ b/PCbuild/_distutils_findvs.vcxproj @@ -0,0 +1,83 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + PGInstrument + Win32 + + + PGInstrument + x64 + + + PGUpdate + Win32 + + + PGUpdate + x64 + + + Release + Win32 + + + Release + x64 + + + + {41ADEDF9-11D8-474E-B4D7-BB82332C878E} + _distutils_findvs + Win32Proj + + + + + DynamicLibrary + NotSet + + + + .pyd + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + + + + version.lib;ole32.lib;oleaut32.lib;Microsoft.VisualStudio.Setup.Configuration.Native.lib;%(AdditionalDependencies) + %(AdditionalLibraryDirectories);$(PySourcePath)PC\external\$(PlatformToolset)\$(ArchName) + + + + + + + + + + + {cf7ac3d1-e2df-41d2-bea6-1e2556cdea26} + false + + + + + + diff --git a/PCbuild/_distutils_findvs.vcxproj.filters b/PCbuild/_distutils_findvs.vcxproj.filters new file mode 100644 index 0000000..f48d74f --- /dev/null +++ b/PCbuild/_distutils_findvs.vcxproj.filters @@ -0,0 +1,16 @@ + + + + + + + + {c56a5dd3-7838-48e9-a781-855d8be7370f} + + + + + Source Files + + + \ No newline at end of file diff --git a/PCbuild/pcbuild.proj b/PCbuild/pcbuild.proj index 05e8857..848b3b2 100644 --- a/PCbuild/pcbuild.proj +++ b/PCbuild/pcbuild.proj @@ -49,7 +49,7 @@ - + diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln index 5ff86a4..0443610 100644 --- a/PCbuild/pcbuild.sln +++ b/PCbuild/pcbuild.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.26621.2 +VisualStudioVersion = 15.0.27130.2024 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{553EC33E-9816-4996-A660-5D6186A0B0B3}" ProjectSection(SolutionItems) = preProject @@ -93,6 +93,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_queue", "_queue.vcxproj", EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblzma", "liblzma.vcxproj", "{12728250-16EC-4DC6-94D7-E21DD88947F8}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_distutils_findvs", "_distutils_findvs.vcxproj", "{41ADEDF9-11D8-474E-B4D7-BB82332C878E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -693,6 +695,22 @@ Global {12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|Win32.Build.0 = Release|Win32 {12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|x64.ActiveCfg = Release|x64 {12728250-16EC-4DC6-94D7-E21DD88947F8}.Release|x64.Build.0 = Release|x64 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Debug|Win32.ActiveCfg = Debug|Win32 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Debug|Win32.Build.0 = Debug|Win32 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Debug|x64.ActiveCfg = Debug|x64 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Debug|x64.Build.0 = Debug|x64 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.PGInstrument|Win32.ActiveCfg = PGInstrument|Win32 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.PGInstrument|Win32.Build.0 = PGInstrument|Win32 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.PGInstrument|x64.ActiveCfg = PGInstrument|x64 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.PGInstrument|x64.Build.0 = PGInstrument|x64 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.PGUpdate|Win32.ActiveCfg = PGUpdate|Win32 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.PGUpdate|Win32.Build.0 = PGUpdate|Win32 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.PGUpdate|x64.ActiveCfg = PGUpdate|x64 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.PGUpdate|x64.Build.0 = PGUpdate|x64 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Release|Win32.ActiveCfg = Release|Win32 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Release|Win32.Build.0 = Release|Win32 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Release|x64.ActiveCfg = Release|x64 + {41ADEDF9-11D8-474E-B4D7-BB82332C878E}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/PCbuild/pythoncore.vcxproj b/PCbuild/pythoncore.vcxproj index c8a5d7d..bf2ce66 100644 --- a/PCbuild/pythoncore.vcxproj +++ b/PCbuild/pythoncore.vcxproj @@ -75,7 +75,6 @@ version.lib;shlwapi.lib;ws2_32.lib;%(AdditionalDependencies) - %(AdditionalLibraryDirectories);$(PySourcePath)PC\external\$(PlatformToolset)\$(ArchName) @@ -350,7 +349,6 @@ - diff --git a/Tools/msi/lib/lib_files.wxs b/Tools/msi/lib/lib_files.wxs index fa0da3a..5a72612 100644 --- a/Tools/msi/lib/lib_files.wxs +++ b/Tools/msi/lib/lib_files.wxs @@ -1,6 +1,6 @@  - + -- cgit v0.12