1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 """Environment setup for Microsoft Visual Studio. Set INCLUDE,
34 LIBPATH, LIB, PATH, VCINSTALLDIR, VS80COMNTOOLS, VSINSTALLDIR, etc.
35 """
36
37 import os
38 import sys
39 import platform
40 from base import *
41 from util import *
42 from env import *
43
44
46 """Add v=s to the shell environment"""
47 if v in os.environ:
48 orig = os.environ[v]
49 else:
50 orig = ''
51
52
53
54
55 try:
56 os.environ[v]=s
57 except Exception, e:
58 sys.stderr.write( str(e) + '\n')
59 sys.stderr.write("Env Variable [%s]\n" % (v))
60 sys.stderr.write("Original was [%s]\n" % (orig))
61 sys.stderr.write("New value was [%s]\n" % (s))
62 sys.exit(1)
63
66
68 """Add v=s+old_v to the shell environment"""
69 set_env(v,s + ';' + os.environ[v])
70
73
75 """Add v=v;old_vs to the shell environment. Inserts at front"""
76 v.insert(0,s)
77
78
80 for dir in lst:
81 if os.path.exists(dir):
82 return dir
83 return None
84
85
87 vc_prefixes = [ "C:/VC98",
88 "C:/Program Files (x86)/Microsoft Visual Studio",
89 "C:/Program Files/Microsoft Visual Studio" ]
90
91 msdev_prefixes = [
92 "C:/Program Files/Microsoft Visual Studio/Common" ]
93 vc_prefix = _find_dir_list(vc_prefixes)
94 msdev_prefix = _find_dir_list(msdev_prefixes)
95 if not vc_prefix:
96 die("Could not find VC98")
97 if not msdev_prefix:
98 die("Could not find VC98 MSDEV")
99
100 i = []
101 add_env(i, vc_prefix + "/VC98/ATL/INCLUDE")
102 add_env(i, vc_prefix + "/VC98/INCLUDE")
103 add_env(i, vc_prefix + "/VC98/MFC/INCUDE")
104 set_env_list("INCLUDE",i)
105
106 lib = []
107 add_env(lib, vc_prefix + "/VC98/LIB")
108 add_env(lib, vc_prefix + "/VC98/MFC/LIB")
109 set_env_list("LIB",lib)
110
111 path=[]
112 add_env(path, msdev_prefix + "/msdev98/Bin")
113 add_env(path, vc_prefix + "/VC98/Bin")
114 add_env(path, msdev_prefix + "/TOOLS/WINNT")
115 add_env(path, msdev_prefix + "/TOOLS")
116 add_to_front_list('PATH', path)
117
118 set_env("MSDevDir", msdev_prefix + "/msdev98")
119 set_env("MSVCDir", vc_prefix + "/VC98")
120
121 return vc_prefix + "/VC98"
122
124
125 prefixes = [ "c:/Program Files/Microsoft Visual Studio .NET 2003",
126 "c:/Program Files (x86)/Microsoft Visual Studio .NET 2003"]
127 prefix = _find_dir_list(prefixes)
128 if not prefix:
129 die("Could not find MSVS7 .NET 2003")
130
131 inc = []
132 add_env(inc, prefix + '/VC7/ATLMFC/INCLUDE')
133 add_env(inc, prefix + '/VC7/include')
134 add_env(inc, prefix + '/VC7/PlatformSDK/include/prerelease')
135 add_env(inc, prefix + '/VC7/PlatformSDK/include')
136 add_env(inc, prefix + '/SDK/v1.1/include')
137 add_env(inc, prefix + '/SDK/v1.1/include/')
138 set_env_list("INCLUDE",inc)
139
140 lib = []
141 add_env(lib, prefix + '/VC7/ATLMFC/LIB')
142 add_env(lib, prefix + '/VC7/LIB')
143 add_env(lib, prefix + '/VC7/PlatformSDK/lib/prerelease')
144 add_env(lib, prefix + '/VC7/PlatformSDK/lib')
145 add_env(lib, prefix + '/SDK/v1.1/lib')
146 add_env(lib, prefix + '/SDK/v1.1/Lib/')
147 set_env_list("LIB",lib)
148
149 path = []
150 add_env(path, prefix + "/Common7/IDE")
151 add_env(path, prefix + "/VC7/bin")
152 add_env(path, prefix + "/Common7/Tools")
153 add_env(path, prefix + "/Common7/Tools/bin/prerelease")
154 add_env(path, prefix + "/Common7/Tools/bin")
155 add_env(path, prefix + "/SDK/v1.1/bin")
156 add_to_front_list('PATH', path)
157
158 set_env("VCINSTALLDIR", prefix)
159 set_env("VC71COMNTOOLS", prefix + "/Common7/Tools/")
160 set_env("VSINSTALLDIR", prefix + '/Common7/IDE')
161 set_env("MSVCDir", prefix + '/VC7')
162 set_env("FrameworkVersion","v1.1.4322")
163 set_env("FrameworkSDKDir", prefix + "/SDK/v1.1")
164 set_env("FrameworkDir", "C:/WINDOWS/Microsoft.NET/Framework")
165
166 set_env("DevEnvDir", prefix + "/Common7/IDE/")
167
168 return prefix + "/VC7"
170 if regv:
171 prefix = regv
172 else:
173 prefixes = ["c:/Program Files (x86)/Microsoft Visual Studio 8",
174 "c:/Program Files/Microsoft Visual Studio 8"]
175 prefix = _find_dir_list(prefixes)
176 if not os.path.exists(prefix):
177 die("Could not find MSVC8 (2005)")
178
179 set_env('VCINSTALLDIR', prefix + '/VC')
180 set_env('VS80COMNTOOLS', prefix + "/Common7/Tools")
181 set_env('VSINSTALLDIR', prefix)
182
183 i =[]
184 add_env(i, prefix + "/VC/ATLMFC/INCLUDE")
185 add_env(i, prefix + "/VC/INCLUDE")
186 add_env(i, prefix + "/VC/PlatformSDK/include")
187 add_env(i, prefix + "/SDK/v2.0/include")
188 set_env_list('INCLUDE', i)
189
190 set_env('FrameworkDir','C:/WINDOWS/Microsoft.NET/Framework')
191 set_env('FrameworkVersion', 'v2.0.50727')
192 set_env('FrameworkSDKDir', prefix +'/SDK/v2.0')
193
194
195 set_env("DevEnvDir", prefix +'/Common7/IDE/')
196
197 lp = []
198 path=[]
199 lib=[]
200 if x64_host and x64_target:
201 add_env(lp, prefix + '/VC/ATLMFC/LIB/amd64')
202
203 add_env(lib, prefix + "/VC/ATLMFC/LIB/amd64")
204 add_env(lib, prefix + "/VC/LIB/amd64")
205 add_env(lib, prefix + "/VC/PlatformSDK/lib/amd64")
206 add_env(lib, prefix + "/SDK/v2.0/LIBAMD64")
207
208 add_env(path, prefix + "/VC/bin/amd64")
209 add_env(path, prefix + "/VC/PlatformSDK/bin/win64/amd64")
210 add_env(path, prefix + "/VC/PlatformSDK/bin")
211 add_env(path, prefix + "/VC/VCPackages")
212 add_env(path, prefix + "/Common7/IDE")
213 add_env(path, prefix + "/Common7/Tools")
214 add_env(path, prefix + "/Common7/Tools/bin")
215 add_env(path, prefix + "/SDK/v2.0/bin")
216 add_env(path, prefix + "C:/WINDOWS/Microsoft.NET/Framework64/v2.0.50727")
217
218 elif not x64_target:
219
220 add_env(path, prefix + '/Common7/IDE')
221 add_env(path, prefix + '/VC/BIN')
222 add_env(path, prefix + '/Common7/Tools')
223 add_env(path, prefix + '/Common7/Tools/bin')
224 add_env(path, prefix + '/VC/PlatformSDK/bin')
225 add_env(path, prefix + '/SDK/v2.0/bin')
226 add_env(path, prefix + '/VC/VCPackages')
227 add_env(path, 'C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727')
228
229 add_env(lib, prefix + '/VC/ATLMFC/LIB')
230 add_env(lib, prefix + '/VC/LIB')
231 add_env(lib, prefix + '/VC/PlatformSDK/lib')
232 add_env(lib, prefix + '/SDK/v2.0/lib')
233
234 add_env(lp, prefix + '/VC/ATLMFC/LIB')
235 add_env(lp, 'C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727')
236
237 add_to_front_list('PATH', path)
238 set_env_list('LIB',lib)
239 set_env_list('LIBPATH', lp)
240
241 return prefix + "/VC"
242
244 if regv:
245 prefix = regv
246 else:
247 prefixes = ['C:/Program Files (x86)/Microsoft Visual Studio 9.0',
248 'C:/Program Files/Microsoft Visual Studio 9.0']
249 prefix = _find_dir_list(prefixes)
250
251 set_env('VSINSTALLDIR', prefix)
252 set_env('VS90COMNTOOLS', prefix + '/Common7/Tools')
253 set_env('VCINSTALLDIR', prefix +'/VC')
254 set_env('FrameworkDir', 'C:/WINDOWS/Microsoft.NET/Framework')
255 set_env('Framework35Version','v3.5')
256 set_env('FrameworkVersion','v2.0.50727')
257 set_env('FrameworkSDKDir', prefix +'/SDK/v3.5')
258 set_env('WindowsSdkDir','C:/Program Files/Microsoft SDKs/Windows/v6.0A')
259
260
261 set_env('DevEnvDir', prefix + '/Common7/IDE/')
262 inc = []
263 add_env(inc, prefix + 'VC/ATLMFC/INCLUDE')
264 add_env(inc, prefix + '/VC/INCLUDE')
265 add_env(inc, 'C:/Program Files/Microsoft SDKs/Windows/v6.0A/include')
266 set_env_list('INCLUDE',inc)
267
268 path = []
269 lib = []
270 libpath = []
271
272 if x64_target:
273 add_env(path, prefix + '/Common7/IDE')
274 add_env(path, prefix + '/VC/BIN')
275 add_env(path, prefix + '/Common7/Tools')
276 add_env(path, prefix + '/VC/VCPackages')
277 add_env(path, 'C:/Program Files/Microsoft SDKs/Windows/v6.0A/bin')
278 add_env(path, 'C:/WINDOWS/Microsoft.NET/Framework/v3.5')
279 add_env(path, 'C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727')
280
281 add_env(lib, prefix +'/VC/ATLMFC/LIB/amdt64')
282 add_env(lib, prefix +'/VC/LIB/amd64')
283 add_env(lib, 'C:/Program Files/Microsoft SDKs/Windows/v6.0A/lib/x64')
284
285 add_env(libpath, 'C:/WINDOWS/Microsoft.NET/Framework64/v2.0.50727')
286 add_env(libpath, 'C:/WINDOWS/Microsoft.NET/Framework64/v3.5')
287 add_env(libpath, 'C:/WINDOWS/Microsoft.NET/Framework64/v2.0.50727')
288 add_env(libpath, 'C:/WINDOWS/Microsoft.NET/Framework64/v2.0.50727')
289 add_env(libpath, prefix + '/VC/ATLMFC/LIB/amd64')
290 add_env(libpath, prefix + '/VC/LIB/amd64')
291 else:
292 add_env(path, prefix + '/Common7/IDE')
293 add_env(path, prefix + '/VC/BIN')
294 add_env(path, prefix + '/Common7/Tools')
295 add_env(path, prefix + '/VC/VCPackages')
296 add_env(path, 'C:/Program Files/Microsoft SDKs/Windows/v6.0A/bin')
297 add_env(path, 'C:/WINDOWS/Microsoft.NET/Framework/v3.5')
298 add_env(path, 'C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727')
299
300 add_env(lib, prefix +'/VC/LIB')
301 add_env(lib, prefix +'/VC/ATLMFC/LIB')
302 add_env(lib, 'C:/Program Files/Microsoft SDKs/Windows/v6.0A/lib')
303
304 add_env(libpath, 'C:/WINDOWS/Microsoft.NET/Framework/v3.5')
305 add_env(libpath, 'C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727')
306 add_env(libpath, prefix + '/VC/ATLMFC/LIB')
307 add_env(libpath, prefix + '/VC/LIB')
308
309 set_env_list('LIBPATH',libpath)
310 set_env_list('LIB',lib)
311 add_to_front_list('PATH',path)
312
313 return prefix + "/VC"
314
315
317 if regv:
318 prefix = regv
319 else:
320 prefix = 'C:/Program Files (x86)/Microsoft Visual Studio 10.0'
321
322 path = []
323 lib = []
324 libpath = []
325
326 inc = []
327 add_env(inc, prefix + '/VC/INCLUDE')
328 add_env(inc, prefix + '/VC/ATLMFC/INCLUDE')
329 add_env(inc, 'c:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/include')
330 set_env_list('INCLUDE',inc)
331
332 set_env('Framework35Version','v3.5')
333 set_env('FrameworkVersion', 'v4.0.20728')
334 set_env('FrameworkVersion32', 'v4.0.20728')
335
336 set_env('VCINSTALLDIR', prefix + '/VC')
337 set_env('VS100COMNTOOLS', prefix + '/Common7/Tools')
338 set_env('VSINSTALLDIR' , prefix)
339 set_env('WindowsSdkDir', 'c:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A')
340
341
342 set_env('DevEnvDir', prefix + '/Common7/IDE/')
343
344 if x64_target:
345 set_env('FrameworkDir','c:/WINDOWS/Microsoft.NET/Framework64')
346 set_env('FrameworkDIR64','c:/WINDOWS/Microsoft.NET/Framework64')
347 set_env('FrameworkVersion64', 'v4.0.20728')
348
349 set_env('Platform','X64')
350 add_env(lib, prefix + '/VC/LIB/amd64')
351 add_env(lib, prefix + '/VC/ATLMFC/LIB/amd64')
352 add_env(lib, 'c:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/lib/x64')
353
354 add_env(libpath, 'c:/WINDOWS/Microsoft.NET/Framework64/v4.0.20728')
355 add_env(libpath, 'c:/WINDOWS/Microsoft.NET/Framework64/v3.5')
356 add_env(libpath, prefix + '/VC/LIB/amd64')
357 add_env(libpath, prefix + '/VC/ATLMFC/LIB/amd64')
358
359 add_env(path, prefix + '/VC/BIN/amd64')
360 add_env(path, 'c:/WINDOWS/Microsoft.NET/Framework64/v4.0.20728')
361 add_env(path, 'C:/WINDOWS/Microsoft.NET/Framework64/v3.5')
362 add_env(path, prefix + '/VC/VCPackages')
363 add_env(path, prefix + '/Common7/IDE')
364 add_env(path, prefix + '/Common7/Tools')
365 add_env(path, 'C:/Program Files (x86)/HTML Help Workshop')
366 add_env(path, 'C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/' +
367 'bin/NETFX 4.0 Tools/x64')
368 add_env(path, 'C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/bin/x64')
369 add_env(path, 'C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/bin')
370 else:
371 set_env('FrameworkDir', 'c:/WINDOWS/Microsoft.NET/Framework')
372 set_env('FrameworkDIR32', 'c:/WINDOWS/Microsoft.NET/Framework')
373
374 add_env(lib, prefix + '/VC/LIB')
375 add_env(lib, prefix + '/VC/ATLMFC/LIB')
376 add_env(lib, 'c:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/lib')
377
378 add_env(libpath, 'c:/WINDOWS/Microsoft.NET/Framework/v4.0.20728')
379 add_env(libpath, 'c:/WINDOWS/Microsoft.NET/Framework/v3.5')
380 add_env(libpath, prefix + '/VC/LIB')
381 add_env(libpath, prefix + '/VC/ATLMFC/LIB')
382
383 add_env(path, prefix + '/Common7/IDE/')
384 add_env(path, prefix + '/VC/BIN')
385 add_env(path, prefix +'/Common7/Tools')
386 add_env(path, 'C:/WINDOWS/Microsoft.NET/Framework/v4.0.20728')
387 add_env(path, 'C:/WINDOWS/Microsoft.NET/Framework/v3.5')
388 add_env(path, prefix + '/VC/VCPackages')
389 add_env(path, 'C:/Program Files (x86)/HTML Help Workshop')
390 add_env(path, prefix + '/Team Tools/Performance Tools')
391 add_env(path, 'C;/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/' +
392 'bin/NETFX 4.0 Tools')
393 add_env(path, 'C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/bin')
394
395 set_env_list('LIBPATH',libpath)
396 set_env_list('LIB',lib)
397 add_to_front_list('PATH',path)
398
399 return prefix + "/VC"
400
401
403 progfi = 'C:/Program Files (x86)'
404 if regv:
405 prefix = regv
406 else:
407 prefix = progfi + '/Microsoft Visual Studio 11.0'
408
409 sdkdir = progfi + '/Microsoft SDKs/Windows/v8.0'
410 sdk8 = progfi + '/Microsoft SDKs/Windows/v8.0A'
411 sdk7 = progfi + '/Microsoft SDKs/Windows/v7.0A'
412 winkit = progfi + '/Windows Kits/8.0'
413
414 path = []
415 lib = []
416 libpath = []
417
418 inc = []
419 add_env(inc, prefix + '/VC/INCLUDE')
420 add_env(inc, prefix + '/VC/ATLMFC/INCLUDE')
421 add_env(inc, winkit + '/include')
422 add_env(inc, winkit + '/include/um')
423 add_env(inc, winkit + '/include/shared')
424 add_env(inc, winkit + '/include/winrt')
425 set_env_list('INCLUDE',inc)
426
427 set_env('Framework35Version','v3.5')
428 set_env('FrameworkVersion', 'v4.0.30319')
429 set_env('FrameworkVersion32', 'v4.0.30319')
430
431 set_env('VCINSTALLDIR', prefix + '/VC/')
432 set_env('VS110COMNTOOLS', prefix + '/Common7/Tools')
433 set_env('VSINSTALLDIR' , prefix)
434 set_env('WindowsSdkDir', winkit)
435
436
437 if x64_target:
438 set_env('FrameworkDir','c:/WINDOWS/Microsoft.NET/Framework64')
439 set_env('FrameworkDIR64','c:/WINDOWS/Microsoft.NET/Framework64')
440 set_env('FrameworkVersion64', 'v4.0.30319')
441
442 set_env('Platform','X64')
443
444 add_env(lib, prefix + '/VC/LIB/amd64')
445 add_env(lib, prefix + '/VC/ATLMFC/LIB/amd64')
446 add_env(lib, winkit + '/lib/win8/um/x64')
447
448
449 add_env(libpath, 'c:/WINDOWS/Microsoft.NET/Framework64/v4.0.30319')
450 add_env(libpath, 'c:/WINDOWS/Microsoft.NET/Framework64/v3.5')
451 add_env(libpath, prefix + '/VC/LIB/amd64')
452 add_env(libpath, prefix + '/VC/ATLMFC/LIB/amd64')
453 add_env(libpath, winkit + '/References/CommonConfiguration/Neutral')
454 add_env(libpath, sdkdir + 'ExtensionSDKs/Microsoft.VCLibs/11.0/' +
455 'References/CommonConfiguration/neutral')
456
457 add_env(path, prefix + '/VC/BIN/amd64')
458 add_env(path, 'c:/WINDOWS/Microsoft.NET/Framework64/v4.0.30319')
459 add_env(path, 'C:/WINDOWS/Microsoft.NET/Framework64/v3.5')
460
461 add_env(path, prefix + '/Common7/IDE/CommonExtensions/Microsoft/TestWindow')
462 add_env(path, prefix + '/VC/VCPackages')
463 add_env(path, prefix + '/Common7/IDE')
464 add_env(path, prefix + '/Common7/Tools')
465 add_env(path, 'C:/Program Files (x86)/HTML Help Workshop')
466 add_env(path, prefix + '/Team Tools/Performance Tools/x64')
467 add_env(path, prefix + '/Team Tools/Performance Tools')
468 add_env(path, winkit + '/8.0/bin/x64')
469 add_env(path, sdk8 + '/bin/NETFX 4.0 Tools/x64')
470 add_env(path, sdk7 + '/Bin/x64')
471 add_env(path, sdk8 + '/bin/NETFX 4.0 Tools')
472 add_env(path, sdk7 + '/Bin')
473 add_env(path, winkit + '/Windows Performance Toolkit')
474 add_env(path, 'C:/Program Files/Microsoft SQL Server/110/Tools/Binn')
475
476 else:
477 set_env('FrameworkDir', 'c:/WINDOWS/Microsoft.NET/Framework')
478 set_env('FrameworkDIR32', 'c:/WINDOWS/Microsoft.NET/Framework')
479
480 add_env(lib, prefix + '/VC/LIB')
481 add_env(lib, prefix + '/VC/ATLMFC/LIB')
482 add_env(lib, winkit + '/lib/win8/um/x86')
483
484
485 add_env(libpath, 'c:/WINDOWS/Microsoft.NET/Framework/v4.0.30319')
486 add_env(libpath, 'c:/WINDOWS/Microsoft.NET/Framework/v3.5')
487 add_env(libpath, prefix + '/VC/LIB')
488 add_env(libpath, prefix + '/VC/ATLMFC/LIB')
489 add_env(libpath, winkit + '/References/CommonConfiguration/Neutral')
490 add_env(libpath, sdkdir + '/ExtensionSDKs/Microsoft.VCLibs/11.0/' +
491 'References/CommonConfiguration/neutral')
492
493
494 add_env(path, prefix + '/Common7/IDE/CommonExtensions/Microsoft/TestWindow')
495 add_env(path, 'C:/Program Files (x86)/Microsoft SDKs/F#/3.0/Framework/v4.0')
496 add_env(path, prefix + '/Common7/IDE')
497 add_env(path, prefix + '/VC/BIN')
498 add_env(path, prefix + '/Common7/Tools')
499 add_env(path, 'C:/Windows/Microsoft.NET/Framework/v4.0.30319')
500 add_env(path, 'C:/Windows/Microsoft.NET/Framework/v3.5')
501 add_env(path, prefix + '/VC/VCPackages')
502 add_env(path, 'C:/Program Files (x86)/HTML Help Workshop')
503 add_env(path, prefix + '/Team Tools/Performance Tools')
504 add_env(path, winkit + '/bin/x86')
505 add_env(path, sdk8 + '/bin/NETFX 4.0 Tools')
506 add_env(path, sdk7 + '/Bin')
507 add_env(path, winkit + '/Windows Performance Toolkit')
508 add_env(path, 'C:/Program Files/Microsoft SQL Server/110/Tools/Binn')
509
510
511
512 set_env_list('LIBPATH',libpath)
513 set_env_list('LIB',lib)
514 add_to_front_list('PATH',path)
515
516 return prefix + "/VC"
517
518
519
521 progfi = 'C:/Program Files (x86)'
522 if regv:
523 prefix = regv
524 else:
525 prefix = progfi + '/Microsoft Visual Studio 12.0'
526
527 sdk81a = progfi + '/Microsoft SDKs/Windows/v8.1A'
528 sdk81 = progfi + '/Microsoft SDKs/Windows/v8.1'
529 winkit = progfi + '/Windows Kits/8.1'
530
531
532 path = []
533 lib = []
534 libpath = []
535
536 inc = []
537 add_env(inc, prefix + '/VC/INCLUDE')
538 add_env(inc, prefix + '/VC/ATLMFC/INCLUDE')
539 add_env(inc, winkit + '/include')
540 add_env(inc, winkit + '/include/um')
541 add_env(inc, winkit + '/include/shared')
542 add_env(inc, winkit + '/include/winrt')
543 set_env_list('INCLUDE',inc)
544
545 set_env('Framework40Version','v4.0')
546 set_env('FrameworkVersion', 'v4.0.30319')
547 set_env('ExtensionSdkDir',
548 sdk81 + '/ExtensionSDKs')
549
550 set_env('VCINSTALLDIR', prefix + '/VC/')
551 set_env('VS120COMNTOOLS', prefix + '/Common7/Tools')
552 set_env('VSINSTALLDIR' , prefix)
553 set_env('WindowsSdkDir', winkit)
554 set_env('VisualStudioVersion','12.0')
555
556 set_env('WindowsSDK_ExecutablePath_x86',
557 sdk81a + '/bin/NETFX 4.5.1 Tools/')
558
559 if x64_target:
560 set_env('WindowsSDK_ExecutablePath_x64',
561 sdk81a +'/bin/NETFX 4.5.1 Tools/x64/')
562
563 set_env('FrameworkDir','c:/WINDOWS/Microsoft.NET/Framework64')
564 set_env('FrameworkDIR64','c:/WINDOWS/Microsoft.NET/Framework64')
565 set_env('FrameworkVersion64', 'v4.0.30319')
566
567 set_env('Platform','X64')
568
569 add_env(lib, prefix + '/VC/LIB/amd64')
570 add_env(lib, prefix + '/VC/ATLMFC/LIB/amd64')
571 add_env(lib, winkit + '/lib/winv6.3/um/x64')
572
573 add_env(libpath, 'c:/WINDOWS/Microsoft.NET/Framework64/v4.0.30319')
574 add_env(libpath, prefix + '/VC/LIB/amd64')
575 add_env(libpath, prefix + '/VC/ATLMFC/LIB/amd64')
576 add_env(libpath, winkit + '/References/CommonConfiguration/Neutral')
577 add_env(libpath, sdk81 + '/ExtensionSDKs/Microsoft.VCLibs/12.0/' +
578 'References/CommonConfiguration/neutral')
579
580 add_env(path, prefix + '/Common7/IDE/CommonExtensions/Microsoft/TestWindow')
581 add_env(path, prefix + '/VC/BIN/amd64')
582 add_env(path, 'c:/WINDOWS/Microsoft.NET/Framework64/v4.0.30319')
583
584 add_env(path, prefix + '/VC/VCPackages')
585 add_env(path, prefix + '/Common7/IDE')
586 add_env(path, prefix + '/Common7/Tools')
587 add_env(path, 'C:/Program Files (x86)/HTML Help Workshop')
588 add_env(path, prefix + '/Team Tools/Performance Tools/x64')
589 add_env(path, prefix + '/Team Tools/Performance Tools')
590 add_env(path, winkit + '/8.1/bin/x64')
591 add_env(path, winkit + '/8.1/bin/x86')
592 add_env(path, sdk81a + '/bin/NETFX 4.5.1 Tools/x64')
593 add_env(path, winkit + '/Windows Performance Toolkit')
594
595
596 else:
597 set_env('FrameworkDir', 'c:/WINDOWS/Microsoft.NET/Framework')
598 set_env('FrameworkDIR32', 'c:/WINDOWS/Microsoft.NET/Framework')
599 set_env('FrameworkVersion32','v4.0.30319')
600
601 add_env(lib, prefix + '/VC/LIB')
602 add_env(lib, prefix + '/VC/ATLMFC/LIB')
603 add_env(lib, winkit + '/lib/winv6.3/um/x86')
604
605 add_env(libpath, 'c:/WINDOWS/Microsoft.NET/Framework/v4.0.30319')
606 add_env(libpath, prefix + '/VC/LIB')
607 add_env(libpath, prefix + '/VC/ATLMFC/LIB')
608 add_env(libpath, winkit + '/References/CommonConfiguration/Neutral')
609 add_env(libpath, sdk81 + '/ExtensionSDKs/Microsoft.VCLibs/12.0/' +
610 'References/CommonConfiguration/neutral')
611
612
613 add_env(path, prefix + '/Common7/IDE/CommonExtensions/Microsoft/TestWindow')
614 add_env(path, progfi + '/Microsoft SDKs/F#/3.1/Framework/v4.0')
615 add_env(path, progfi + '/MSBuild/12.0/bin')
616 add_env(path, prefix + '/Common7/IDE')
617 add_env(path, prefix + '/VC/BIN')
618 add_env(path, prefix + '/Common7/Tools')
619 add_env(path, 'C:/Windows/Microsoft.NET/Framework/v4.0.30319')
620 add_env(path, prefix + '/VC/VCPackages')
621 add_env(path, progfi + '/HTML Help Workshop')
622 add_env(path, prefix + '/Team Tools/Performance Tools')
623 add_env(path, winkit + '/bin/x86')
624 add_env(path, sdk81a + '/bin/NETFX 4.5.1 Tools')
625 add_env(path, winkit + '/Windows Performance Toolkit')
626
627
628 set_env_list('LIBPATH',libpath)
629 set_env_list('LIB',lib)
630 add_to_front_list('PATH',path)
631
632 return prefix + "/VC"
633
634
635
636
638 progfi = 'C:/Program Files (x86)'
639 if regv:
640 prefix = regv
641 else:
642 prefix = progfi + '/Microsoft Visual Studio 14.0'
643
644 sdk81a = progfi + '/Microsoft SDKs/Windows/v8.1A'
645 sdk81 = progfi + '/Microsoft SDKs/Windows/v8.1'
646 winkit = progfi + '/Windows Kits/8.1'
647 winkit10 = progfi + '/Windows Kits/10'
648
649
650
651
652
653 winkit10version = None
654 if 'UCRTVersion' in os.environ:
655 winkit10version = os.environ['UCRTVersion']
656 if not winkit10version:
657
658 ctime = 0
659 for g in glob(winkit10 + '/include/*'):
660 if os.path.exists('{}/ucrt'.format(g)):
661 gtime = os.path.getctime(g)
662 if gtime > ctime:
663 winkit10version = os.path.basename(g)
664 ctime = gtime
665 if not winkit10version:
666 die("Did not find winkit 10 version")
667 msgb("UCRT Version", winkit10version)
668
669 path = []
670 lib = []
671 libpath = []
672
673 inc = []
674 add_env(inc, prefix + '/VC/INCLUDE')
675 add_env(inc, prefix + '/VC/ATLMFC/INCLUDE')
676 add_env(inc, winkit + '/include')
677
678 add_env(inc, winkit10 + '/include/{}/ucrt'.format(winkit10version))
679 add_env(inc, winkit + '/include/shared')
680 add_env(inc, winkit + '/include/um')
681 add_env(inc, winkit + '/include/winrt')
682 set_env_list('INCLUDE',inc)
683
684 set_env('Framework40Version','v4.0')
685 set_env('FrameworkVersion', 'v4.0.30319')
686 set_env('ExtensionSdkDir',
687 sdk81 + '/ExtensionSDKs')
688
689 set_env('VCINSTALLDIR', prefix + '/VC/')
690 set_env('VS140COMNTOOLS', prefix + '/Common7/Tools')
691 set_env('VSINSTALLDIR' , prefix)
692 set_env('WindowsSdkDir', winkit)
693 set_env('VisualStudioVersion','14.0')
694
695 set_env('WindowsSDK_ExecutablePath_x86',
696 sdk81a + '/bin/NETFX 4.5.1 Tools/')
697
698 if x64_target:
699 set_env('WindowsSDK_ExecutablePath_x64',
700 sdk81a +'/bin/NETFX 4.5.1 Tools/x64/')
701
702 set_env('FrameworkDir','c:/WINDOWS/Microsoft.NET/Framework64')
703 set_env('FrameworkDIR64','c:/WINDOWS/Microsoft.NET/Framework64')
704 set_env('FrameworkVersion64', 'v4.0.30319')
705
706 set_env('Platform','X64')
707
708 add_env(lib, prefix + '/VC/LIB/amd64')
709 add_env(lib, prefix + '/VC/ATLMFC/LIB/amd64')
710 add_env(lib, winkit10 + '/lib/{}/ucrt/x64'.format(winkit10version))
711 add_env(lib, winkit + '/lib/winv6.3/um/x64')
712
713 add_env(libpath, 'c:/WINDOWS/Microsoft.NET/Framework64/v4.0.30319')
714 add_env(libpath, prefix + '/VC/LIB/amd64')
715 add_env(libpath, prefix + '/VC/ATLMFC/LIB/amd64')
716 add_env(libpath, winkit + '/References/CommonConfiguration/Neutral')
717 add_env(libpath, sdk81 + '/ExtensionSDKs/Microsoft.VCLibs/14.0/' +
718 'References/CommonConfiguration/neutral')
719
720 add_env(path, prefix + '/Common7/IDE/CommonExtensions/Microsoft/TestWindow')
721 add_env(path, prefix + '/VC/BIN/amd64')
722 add_env(path, 'c:/WINDOWS/Microsoft.NET/Framework64/v4.0.30319')
723
724 add_env(path, prefix + '/VC/VCPackages')
725 add_env(path, prefix + '/Common7/IDE')
726 add_env(path, prefix + '/Common7/Tools')
727 add_env(path, 'C:/Program Files (x86)/HTML Help Workshop')
728 add_env(path, prefix + '/Team Tools/Performance Tools/x64')
729 add_env(path, prefix + '/Team Tools/Performance Tools')
730 add_env(path, winkit + '/8.1/bin/x64')
731 add_env(path, winkit + '/8.1/bin/x86')
732 add_env(path, sdk81a + '/bin/NETFX 4.5.1 Tools/x64')
733 add_env(path, winkit + '/Windows Performance Toolkit')
734
735
736 else:
737 set_env('FrameworkDir', 'c:/WINDOWS/Microsoft.NET/Framework')
738 set_env('FrameworkDIR32', 'c:/WINDOWS/Microsoft.NET/Framework')
739 set_env('FrameworkVersion32','v4.0.30319')
740
741 add_env(lib, prefix + '/VC/LIB')
742 add_env(lib, prefix + '/VC/ATLMFC/LIB')
743 add_env(lib, winkit10 + '/lib/{}/ucrt/x86'.format(winkit10version))
744 add_env(lib, winkit + '/lib/winv6.3/um/x86')
745
746 add_env(libpath, 'c:/WINDOWS/Microsoft.NET/Framework/v4.0.30319')
747 add_env(libpath, prefix + '/VC/LIB')
748 add_env(libpath, prefix + '/VC/ATLMFC/LIB')
749 add_env(libpath, winkit + '/References/CommonConfiguration/Neutral')
750 add_env(libpath, sdk81 + '/ExtensionSDKs/Microsoft.VCLibs/14.0/' +
751 'References/CommonConfiguration/neutral')
752
753
754 add_env(path, prefix + '/Common7/IDE/CommonExtensions/Microsoft/TestWindow')
755 add_env(path, progfi + '/Microsoft SDKs/F#/3.1/Framework/v4.0')
756 add_env(path, progfi + '/MSBuild/14.0/bin')
757 add_env(path, prefix + '/Common7/IDE')
758 add_env(path, prefix + '/VC/BIN')
759 add_env(path, prefix + '/Common7/Tools')
760 add_env(path, 'C:/Windows/Microsoft.NET/Framework/v4.0.30319')
761 add_env(path, prefix + '/VC/VCPackages')
762 add_env(path, progfi + '/HTML Help Workshop')
763 add_env(path, prefix + '/Team Tools/Performance Tools')
764 add_env(path, winkit + '/bin/x86')
765 add_env(path, sdk81a + '/bin/NETFX 4.5.1 Tools')
766 add_env(path, winkit + '/Windows Performance Toolkit')
767
768
769 set_env_list('LIBPATH',libpath)
770 set_env_list('LIB',lib)
771 add_to_front_list('PATH',path)
772
773 return prefix + "/VC"
774
775
806
808 import _winreg
809 try:
810 hkey = _winreg.OpenKey(root, key)
811 except:
812 return None
813 try:
814 (val, typ) = _winreg.QueryValueEx(hkey, value)
815 except:
816 _winreg.CloseKey(hkey)
817 return None
818 _winreg.CloseKey(hkey)
819 return val
820
822 import _winreg
823 vs_ver = str(version) + '.0'
824 vs_key = 'SOFTWARE\\Microsoft\\VisualStudio\\' + vs_ver + '\\Setup\\VS'
825 vc_key = 'SOFTWARE\\Microsoft\\VisualStudio\\' + vs_ver + '\\Setup\\VC'
826 vs_dir = _read_registry(_winreg.HKEY_LOCAL_MACHINE, vs_key, 'ProductDir')
827 vc_dir = _read_registry(_winreg.HKEY_LOCAL_MACHINE, vc_key, 'ProductDir')
828
829
830
831 if (not vs_dir or not vc_dir):
832 vs_key = 'SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\' + \
833 vs_ver + '\\Setup\\VS'
834 vc_key = 'SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\' + \
835 vs_ver + '\\Setup\\VC'
836 vs_dir = _read_registry(_winreg.HKEY_LOCAL_MACHINE,
837 vs_key, 'ProductDir')
838 vc_dir = _read_registry(_winreg.HKEY_LOCAL_MACHINE,
839 vc_key, 'ProductDir')
840 return (vs_dir,vc_dir)
841
849
851 x64_target=False
852 if env['host_cpu'] == 'x86-64':
853 x64_target=True
854
855 x64_host = False
856 if env['build_cpu'] == 'x86-64':
857 x64_host=True
858
859
860 vc = None
861
862 if env['msvs_version'] != '' :
863 v = int(env['msvs_version'])
864 (vs_dir,vc_dir) = find_msvc(env,v)
865 if not (vs_dir and vc_dir):
866 warn("Could no find specified version of MSVS. Looking around...")
867 env['msvs_version'] = ''
868 if env['msvs_version'] == '':
869
870 env['msvs_version'] = _try_to_figure_out_msvs_version(env)
871
872 if env['msvs_version'] == '':
873 env['msvs_version'], vs_dir = \
874 _try_to_figure_out_msvs_version_registry(env)
875 if env['msvs_version'] == None:
876 die("Did not find MSVS version!")
877
878 vs_dir = None
879 i = int(env['msvs_version'])
880 if i == 6:
881 vc = _set_msvs_dev6(env,x64_host, x64_target)
882 elif i == 7:
883 vc = _set_msvs_dev7(env,x64_host, x64_target)
884
885 elif i == 8:
886 vc = _set_msvs_dev8(env, x64_host, x64_target, vs_dir)
887 elif i == 9:
888 vc = _set_msvs_dev9(env, x64_host, x64_target, vs_dir)
889 elif i == 10:
890 vc = _set_msvs_dev10(env, x64_host, x64_target, vs_dir)
891 elif i == 11:
892 vc = _set_msvs_dev11(env, x64_host, x64_target, vs_dir)
893 elif i == 12:
894 vc = _set_msvs_dev12(env, x64_host, x64_target, vs_dir)
895
896 elif i == 14:
897 vc = _set_msvs_dev14(env, x64_host, x64_target, vs_dir)
898 else:
899 die("Unhandled MSVS version: " + env['msvs_version'])
900
901 msgb("FOUND MS VERSION",env['msvs_version'])
902 return vc
903