diff options
author | Steven Knight <knight@baldmt.com> | 2004-04-13 03:46:05 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2004-04-13 03:46:05 (GMT) |
commit | c271fd87bcba82b535267c8c5e454615e2a4aa4f (patch) | |
tree | 78e53644e9c5ebc5de83171602f2f31b894179b7 /src/engine/SCons/Tool/icl.py | |
parent | 088bb633e0ebcba2c8fea69a06bc426f3b1d27fb (diff) | |
download | SCons-c271fd87bcba82b535267c8c5e454615e2a4aa4f.zip SCons-c271fd87bcba82b535267c8c5e454615e2a4aa4f.tar.gz SCons-c271fd87bcba82b535267c8c5e454615e2a4aa4f.tar.bz2 |
More robust searching for the ICL license file. (Gary Oberbrunner)
Diffstat (limited to 'src/engine/SCons/Tool/icl.py')
-rw-r--r-- | src/engine/SCons/Tool/icl.py | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/engine/SCons/Tool/icl.py b/src/engine/SCons/Tool/icl.py index ec1e063..d59647c 100644 --- a/src/engine/SCons/Tool/icl.py +++ b/src/engine/SCons/Tool/icl.py @@ -38,6 +38,7 @@ import string import SCons.Tool.msvc import SCons.Util +import SCons.Warnings # Find Intel compiler: # Could enumerate subkeys here to be more flexible. @@ -99,7 +100,33 @@ def generate(env): env['CXX'] = 'icl' env['LINK'] = 'xilink' - env['ENV']['INTEL_LICENSE_FILE'] = r'C:\Program Files\Common Files\Intel\Licenses' + # Look for license file dir. + envlicdir = os.environ.get("INTEL_LICENSE_FILE", '') + K = ('SOFTWARE\Intel\Licenses') + try: + k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_LOCAL_MACHINE, K) + reglicdir = SCons.Util.RegQueryValueEx(k, "w_cpp")[0] + except (AttributeError, SCons.Util.RegError): + reglicdir = "" + defaultlicdir = r'C:\Program Files\Common Files\Intel\Licenses' + + licdir = None + for ld in [envlicdir, reglicdir]: + if ld and os.path.exists(ld): + licdir = ld + break + if not licdir: + licdir = defaultlicdir + if not os.path.exists(licdir): + class ICLLicenseDirWarning(SCons.Warnings.Warning): + pass + SCons.Warnings.enableWarningClass(ICLLicenseDirWarning) + SCons.Warnings.warn(ICLLicenseDirWarning, + "Intel license dir was not found." + " Tried using the INTEL_LICENSE_FILE environment variable (%s), the registry (%s) and the default path (%s)." + " Using the default path as a last resort." + % (envlicdir, reglicdir, defaultlicdir)) + env['ENV']['INTEL_LICENSE_FILE'] = licdir def exists(env): try: |