better intel cc detection
authortnagy1024 <tnagy1024@f0382ac9-c320-0410-b3f0-b508d59f5a85>
Wed, 22 Dec 2010 19:48:47 +0000 (19:48 +0000)
committertnagy1024 <tnagy1024@f0382ac9-c320-0410-b3f0-b508d59f5a85>
Wed, 22 Dec 2010 19:48:47 +0000 (19:48 +0000)
git-svn-id: https://waf.googlecode.com/svn/trunk@10744 f0382ac9-c320-0410-b3f0-b508d59f5a85

waflib/Tools/msvc.py

index 28781e771de4592050bbf8866c4e21b86f2ea945..8bf980d4ddb910af44aae0ffa48d6e5669ef36d6 100644 (file)
@@ -126,7 +126,7 @@ echo LIB=%%LIB%%
        sout = conf.cmd_and_log(['cmd', '/E:on', '/V:on', '/C', batfile.abspath()])
        lines = sout.splitlines()
 
-       for x in ('Setting environment', 'Setting SDK environment', 'Intel(R) C++ Compiler'):
+       for x in ('Setting environment', 'Setting SDK environment', 'Intel(R) C++ Compiler', 'Intel Parallel Studio'):
                if lines[0].find(x) != -1:
                        break
        else:
@@ -341,6 +341,20 @@ def gather_icl_versions(conf, versions):
                if not version_pattern.match(version):
                        continue
                targets = []
+               for target,arch in all_icl_platforms:
+                       try:
+                               if target=='intel64': targetDir='EM64T_NATIVE'
+                               else: targetDir=target
+                               _winreg.OpenKey(all_versions,version+'\\'+targetDir)
+                               icl_version=_winreg.OpenKey(all_versions,version)
+                               path,type=_winreg.QueryValueEx(icl_version,'ProductDir')
+                               if os.path.isfile(os.path.join(path,'bin','iclvars.bat')):
+                                       try:
+                                               targets.append((target,(arch,conf.get_msvc_version('intel',version,target,os.path.join(path,'bin','iclvars.bat')))))
+                                       except conf.errors.ConfigurationError:
+                                               pass
+                       except WindowsError:
+                               pass
                for target,arch in all_icl_platforms:
                        try:
                                icl_version = _winreg.OpenKey(all_versions, version+'\\'+target)