[pypy-commit] pypy win32-vcvars: maybe fix?

mattip pypy.commits at gmail.com
Wed Nov 29 03:10:49 EST 2017


Author: Matti Picus <matti.picus at gmail.com>
Branch: win32-vcvars
Changeset: r93206:7f64b9246539
Date: 2017-11-29 10:13 +0200
http://bitbucket.org/pypy/pypy/changeset/7f64b9246539/

Log:	maybe fix?

diff --git a/rpython/translator/platform/windows.py b/rpython/translator/platform/windows.py
--- a/rpython/translator/platform/windows.py
+++ b/rpython/translator/platform/windows.py
@@ -65,12 +65,12 @@
             vcbindir = os.path.join(vcinstalldir, 'BIN')
             vcvars = os.path.join(vcbindir, 'amd64', 'vcvarsamd64.bat')
         else:
-            vcvars = os.path.join(toolsdir, 'vcvars32.bat')
+            vcvars = os.path.join(toolsdir, 'vsvars32.bat')
             if not os.path.exists(vcvars):
                 # even msdn does not know which to run
                 # see https://msdn.microsoft.com/en-us/library/1700bbwd(v=vs.90).aspx
                 # wich names both
-                vcvars = os.path.join(toolsdir, 'vsvars32.bat') 
+                vcvars = os.path.join(toolsdir, 'vcvars32.bat') 
 
     import subprocess
     try:
@@ -92,25 +92,21 @@
         key, value = line.split('=', 1)
         if key.upper() in ['PATH', 'INCLUDE', 'LIB']:
             env[key.upper()] = value
-    ## log.msg("Updated environment with %s" % (vcvars,))
+    log.msg("Updated environment with %s" % (vcvars,))
     return env
 
 def find_msvc_env(x64flag=False):
+    vcvers = [140, 100, 90, 80, 71, 70]
     # First, try to get the compiler which served to compile python
     msc_pos = sys.version.find('MSC v.')
     if msc_pos != -1:
         msc_ver = int(sys.version[msc_pos+6:msc_pos+10])
-        # 1300 -> 70, 1310 -> 71, 1400 -> 80, 1500 -> 90
+        # 1500 -> 90, 1900 -> 140
         vsver = (msc_ver / 10) - 60
-        env = _get_msvc_env(vsver, x64flag)
-
-        if env is not None:
-            return env
-
-    # Then, try any other version
-    for vsver in (100, 90, 80, 71, 70): # All the versions I know
-        env = _get_msvc_env(vsver, x64flag)
-
+        vcvers.insert(0, vsver)
+    errs = []
+    for vsver in vcvers: 
+        env, errstr = _get_msvc_env(vsver, x64flag)
         if env is not None:
             return env
     log.error("Could not find a Microsoft Compiler")


More information about the pypy-commit mailing list