Browse Source

Detect newer Visual Studio compilers correctly like VS2017.

Aren Villanueva 8 years ago
parent
commit
14a982a0c2
1 changed files with 27 additions and 0 deletions
  1. 27 0
      methods.py

+ 27 - 0
methods.py

@@ -1623,6 +1623,33 @@ def detect_visual_c_compiler_version(tools_env):
         vc_chosen_compiler_index = vc_x86_amd64_compiler_detection_index
         vc_chosen_compiler_str = "x86_amd64"
 
+    # Newer versions have a different path available
+    vc_amd64_compiler_detection_index = tools_env["PATH"].upper().find(tools_env['VCTOOLSINSTALLDIR'].upper() + "BIN\\HOSTX64\\X64;")
+    if(vc_amd64_compiler_detection_index > -1):
+        vc_chosen_compiler_index = vc_amd64_compiler_detection_index
+        vc_chosen_compiler_str = "amd64"
+
+    vc_amd64_x86_compiler_detection_index = tools_env["PATH"].upper().find(tools_env['VCTOOLSINSTALLDIR'].upper() + "BIN\\HOSTX64\\X86;")
+    if(vc_amd64_x86_compiler_detection_index > -1
+       and (vc_chosen_compiler_index == -1
+            or vc_chosen_compiler_index > vc_amd64_x86_compiler_detection_index)):
+        vc_chosen_compiler_index = vc_amd64_x86_compiler_detection_index
+        vc_chosen_compiler_str = "amd64_x86"
+
+    vc_x86_compiler_detection_index = tools_env["PATH"].upper().find(tools_env['VCTOOLSINSTALLDIR'].upper() + "BIN\\HOSTX86\\X86;")
+    if(vc_x86_compiler_detection_index > -1
+       and (vc_chosen_compiler_index == -1
+            or vc_chosen_compiler_index > vc_x86_compiler_detection_index)):
+        vc_chosen_compiler_index = vc_x86_compiler_detection_index
+        vc_chosen_compiler_str = "x86"
+
+    vc_x86_amd64_compiler_detection_index = tools_env["PATH"].upper().find(tools_env['VCTOOLSINSTALLDIR'].upper() + "BIN\\HOSTX86\\X64;")
+    if(vc_x86_amd64_compiler_detection_index > -1
+       and (vc_chosen_compiler_index == -1
+            or vc_chosen_compiler_index > vc_x86_amd64_compiler_detection_index)):
+        vc_chosen_compiler_index = vc_x86_amd64_compiler_detection_index
+        vc_chosen_compiler_str = "x86_amd64"
+
     # debug help
     # print vc_amd64_compiler_detection_index
     # print vc_amd64_x86_compiler_detection_index