[Python-Dev] Backporting the 3.5+ Windows build project files to 2.7

Zachary Ware zachary.ware+pydev at gmail.com
Mon Jun 22 19:03:04 CEST 2015


Hi,

As you may know, Steve Dower put significant effort into rewriting the
project files used by the Windows build as part of moving to VC14 as
the official compiler for Python 3.5.  Compared to the project files
for 3.4 (and older), the new project files are smaller, cleaner,
simpler, more easily extensible, and in some cases quite a bit more
correct.

I'd like to backport those new project files to 2.7, and Intel is
willing to fund that work as part of making Python ICC compilable on
all platforms they support since it makes building Python 2.7 with ICC
much easier.  I have no intention of changing the version of MSVC used
for official 2.7 builds, it *will* remain at MSVC 9.0 (VS 2008) as
determined the last time we had a thread about it.  VS 2010 and newer
can access older compilers (back to 2008) as a 'PlatformToolset' if
they're installed, so all we have to do is set the PlatformToolset in
the projects at 'v90'.  Backporting the projects would make it easier
to build 2.7 with a newer compiler, but that's already possible if
somebody wants to put enough work into it, the default will be the old
compiler, and we can emit big scary warnings if somebody does use a
compiler other than v90.

With the stipulation that the officially supported compiler won't
change, I want to make sure there's no major opposition to replacing
the old project files in PCbuild.  The old files would move to
PC\VS9.0, so they'll still be available and usable if necessary.

Using the backported project files to build 2.7 would require two
versions of Visual Studio to be installed; VS2010 (or newer) would be
required in addition to VS2008.  All Windows core developers should
already have VS2010 for Python 3.4 (and/or VS2015 for 3.5) and I
expect that anyone else who cares enough to still have VS2008 probably
has (or can easily get) one of the free editions of VS 2010 or newer,
so I don't consider this to be a major issue.

The backported files could be added alongside the old files in
PCbuild, in a better-named 'NewPCbuild' directory, or in a
subdirectory of PC. I would rather replace the old project files in
PCbuild, though; I'd like for the backported files to be the
recommended way to build, complete with support from PCbuild/build.bat
which would make the new project files the default for the buildbots.

I have a work-in-progress branch with the backported files in PCbuild,
which you can find at
https://hg.python.org/sandbox/zware/log/project_files_backport.  There
are still a couple bugs to work out (and a couple unrelated changes to
PC/pyconfig.h), but most everything works as expected.

Looking forward to hearing others' opinions,
-- 
Zach


More information about the Python-Dev mailing list