[SciPy-dev] VS revamp: it runs

David Cournapeau david at ar.media.kyoto-u.ac.jp
Fri Sep 26 03:29:37 EDT 2008


Hi,

    I finally took the time to finish basic support of new VS versions
(8 and 9). At this point, I believe it can be merged into the trunk, to
solve remaining problems. From a user POV, this should be transparent: I
use the new support in msvc.py (I did not remove all the magic code in
there, but I don't use it; can it be removed ?). So:

env = Environment()
env.Program('hello.c')

Should work if you have Visual Studio installed (tested with 8 and 9,
express versions). You can set the version used by using MSVS_VERSION as
before, this works as expected.

Detailed comments
=================

    - New code to find Visual Studio properties is < 200 lines. This is
the most important point IMHO, because it means normal people like me
can finally understand what's going on instead of hundred of lines of
registry magic only a MS guru would know about.
    - Should support 7.1, and maybe 6.0 (I don't have easy access to
7.1, and no access at all to 6.0). This needs testing.
    - Does not support cross compilation yet, but this should be doable
without too much hassle. Someone more familiar with MS platforms should
do it IMO, because I don't know what's expected there. AFAIU, it is just
a matter of finding a different .bat file, everything else would be the
same. I don't know if this can be ready for 1.1.
    - Does not automatically support manifest. This is a new MS feature
which is awfully complicated and not well documented if at all, and will
be hard to support in a clean, proper way. I think at this point (1.1),
it is outside the scope of this work. People will have to deal with MS
crap manually (more importantly for me, this also means we can't help
people using mingw for this, unfortunately).

There was discussion about making some function to get the internals
(MergeBatFile, etc...); I did implement the functions as asked, but
believe it should not be made public for 1.1. There are some things
which are not quite right (how to handle errors, for example); the
internal API simply is not ready to be published. But because it brings
support for VS 8 and 9, and does not impact scons scripts users/writers
as long as they stay with the published API, I think the support itself
should be there.

thanks to people who helped this: Gary Oberbrunner for updated
PrependENVPath, Matthieu Brucher and Kenny Jason L for windows
expertise, and of course G. Noel and Steve Knight for scons knowledge.
This would not have happened without their help,

cheers,

David



More information about the SciPy-Dev mailing list