
Hi Andrew, Thanks! Andrew Wilkinson wrote:
On 1/7/07, Peter Tanski wrote:
I looked at Issue 49, on setting the correct environment variables for a Visual Studio (Visual C++) toolset using vcvars32.bat or whatever the correct batch file is (see below)...
... Getting the right environment variables is probably complicated enough to warrant a new file with a function called from build/ platform.py, but it could be included in the same function.
It would also be easier to modify later on. Am I correct that "vc" is the MS CL compiler?
The basic strategy I want to try is this:
1. find the correct Visual Studio build by querying the system ...
The dictionary os.environ is probably what you're looking for.
2. find the correct vcvars32.bat or vsvars32.bat ... The easiest solution is to query the settings in the Registry... I haven't explored this thoroughly and expect there is some cool Python or scons function for that purpose.)
http://sourceforge.net/projects/pywin32/ will let you query the registry. I'm not sure if it is included in the main Python windows installer, but it is definitely include in ActiveState's ActivePython.
The Python 2.5 Windows installer includes _winreg, as well.
3. run the batch file and query the environment variables
Is the batch file simple enough to use regular expressions to extract the values? That might be easier?
It could be parsed but in many cases and for different versions of VS, the main batch file calls other batch files. I discovered a MS tool, Program Files\Microsoft Platform SDK [version, type]\Setup \VCDetect.Exe that will find the correct vsvars32.bat.
4. propagate the variables into scons ENV
... after this, if Yhc ever needs the Visual Studio tools again, it might be able to perform the same process after (or during) installation.
This is as simple as env["CC"] = "path to compiler"
Very nice :) Cheers, Pete