|
@@ -1594,61 +1594,69 @@ def detect_visual_c_compiler_version(tools_env):
|
|
|
vc_chosen_compiler_index = -1
|
|
|
vc_chosen_compiler_str = ""
|
|
|
|
|
|
- # find() works with -1 so big ifs bellow are needed... the simplest solution, in fact
|
|
|
- # First test if amd64 and amd64_x86 compilers are present in the path
|
|
|
- vc_amd64_compiler_detection_index = tools_env["PATH"].find(tools_env["VCINSTALLDIR"] + "BIN\\amd64;")
|
|
|
- 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"].find(tools_env["VCINSTALLDIR"] + "BIN\\amd64_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"
|
|
|
-
|
|
|
- # Now check the 32 bit compilers
|
|
|
- vc_x86_compiler_detection_index = tools_env["PATH"].find(tools_env["VCINSTALLDIR"] + "BIN;")
|
|
|
- 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"].find(tools_env['VCINSTALLDIR'] + "BIN\\x86_amd64;")
|
|
|
- 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"
|
|
|
-
|
|
|
- # 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"
|
|
|
+ # Start with Pre VS 2017 checks which uses VCINSTALLDIR:
|
|
|
+ if 'VCINSTALLDIR' in tools_env:
|
|
|
+ # print "Checking VCINSTALLDIR"
|
|
|
+
|
|
|
+ # find() works with -1 so big ifs bellow are needed... the simplest solution, in fact
|
|
|
+ # First test if amd64 and amd64_x86 compilers are present in the path
|
|
|
+ vc_amd64_compiler_detection_index = tools_env["PATH"].find(tools_env["VCINSTALLDIR"] + "BIN\\amd64;")
|
|
|
+ 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"].find(tools_env["VCINSTALLDIR"] + "BIN\\amd64_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"
|
|
|
+
|
|
|
+ # Now check the 32 bit compilers
|
|
|
+ vc_x86_compiler_detection_index = tools_env["PATH"].find(tools_env["VCINSTALLDIR"] + "BIN;")
|
|
|
+ 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"].find(tools_env['VCINSTALLDIR'] + "BIN\\x86_amd64;")
|
|
|
+ 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"
|
|
|
+
|
|
|
+ # and for VS 2017 and newer we check VCTOOLSINSTALLDIR:
|
|
|
+ if 'VCTOOLSINSTALLDIR' in tools_env:
|
|
|
+ # print "Checking VCTOOLSINSTALLDIR"
|
|
|
+
|
|
|
+ # 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
|