[Python-Dev] [Distutils] Adventures with x64, VS7 and VS8 on Windows

Mark Hammond mhammond at skippinet.com.au
Tue May 29 05:11:33 CEST 2007


> From: Jamie Kirkpatrick [mailto:jkp at kirkconsulting.co.uk]
> Sent: Wednesday, 23 May 2007 5:16 AM

> I have a set of extensions that use SWIG to wrap my own C++ library.  This
library, on a
> day-to-day basis is built against VS8 since the rest of our product suite
is.  Right now
> I have no way to work with this code using VS8 since the standard
distribution is built
> against VS7 which uses a different CRT.   This is an absolute nightmare in
practice since
> I currently have to maintain VS7 projects in parallel with the standard
VS8 ones simply
> so that I can run and test my python code.

If you are brave and willing to ensure your module doesn't voilate certain
constraints (such as never passing a CRT 'concept' - such as a file handle
or memory block to be free'd) across mismatched CRT boundaries, you may find
that you can happily load your VS8 built pronect with VS7 - but yes, your
general point is valid but beyond the scope of this discussion.  A separate
discussion on making Python "crt agnostic" is almost certainly worthwhile
though, but not directly related to this current discussion.

> I've downloaded the Python source and had a look at building up my own
distributions for each case
>  (ideally there would be an easy way to separate out Release / Debug
products as well as the
> VS8 / VS7 variants, and I guess potentially for those cross-compiling we'd
need to go a step
> further and do this per arch as well.  Anyway, this isn't how it works at
the moment, but I'm
> still searching for a way to be able to work on the python code in VS8.
Building using the
> current projects I seem to get everything in the PCBuild8 / PCBuild dirs.
How can I work with
> what is build?

This is *exactly* the point of this thread, and what we are trying to
resolve.  In the short term, we have agreed a change to PCBuild8\build.bat
that copies the build files into PCBuild is a solution that should "work",
where "work" is defined as "allow a source tree built with VS8 to operate in
the same way, from the POV of building extensions, as one built with VS8."
My primary issue with this is solved by the change to the .bat file, but we
welcome all feedback from people who believe this is not ideal.  I've
agreement from Kristjan on the specific change to that .bat file, I'm just
yet to check it in (but it literally just copies everything from the
PVBuild8 target dir into the PCBuild dir after checking the expected dirs do
indeed exist)

> Is there a shell script to build a final distribution tree?  If not, is
there a simple
> way to build an MSI similar to the one found on the Python.org site for
the official
> releases but using the PCBuild8 stuff?

I believe not.  In most cases, people who build from source on Windows will
run directly from that source tree, rather than attempting the intermediate
step of creating a .msi and installing it.

> If not how do you recommend getting myself to a state where I have at
least a feature complete
> distribution build against VS8?  I'm happy with a one time build that I
can just install into
> my source tree and upload to the SCM.

I'd suggest that once I check the .bat change in, you build the PCBuild8
directory via that .bat file, then continue to use the 'PCBuild' directory
as it it were a VC7 build.

Cheers,

Mark



More information about the Python-Dev mailing list