summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Tool/icl.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-11-19 12:04:49 (GMT)
committerSteven Knight <knight@baldmt.com>2004-11-19 12:04:49 (GMT)
commitc1c940944e1cf0481242dbb71b8bda055aacea0a (patch)
treeca936249027169efdb956dc4687e33d22b3297ea /src/engine/SCons/Tool/icl.py
parent27db7fcdedd3043ae5d2f7f869f07e8533e63ba3 (diff)
downloadSCons-c1c940944e1cf0481242dbb71b8bda055aacea0a.zip
SCons-c1c940944e1cf0481242dbb71b8bda055aacea0a.tar.gz
SCons-c1c940944e1cf0481242dbb71b8bda055aacea0a.tar.bz2
Add support for new tools: Metroworks CodeWarrior compiler and linker (Russell Yanofsky); new Intel C compiler (Gary Oberbrunner).
Diffstat (limited to 'src/engine/SCons/Tool/icl.py')
-rw-r--r--src/engine/SCons/Tool/icl.py106
1 files changed, 7 insertions, 99 deletions
diff --git a/src/engine/SCons/Tool/icl.py b/src/engine/SCons/Tool/icl.py
index eeed447..8d7aea7 100644
--- a/src/engine/SCons/Tool/icl.py
+++ b/src/engine/SCons/Tool/icl.py
@@ -33,106 +33,14 @@ selection method.
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
-import os.path
+import SCons.Tool.intelc
-import SCons.Tool.msvc
-import SCons.Util
-import SCons.Warnings
+# This has been completely superceded by intelc.py, which can
+# handle both Windows and Linux versions.
-# Find Intel compiler:
-# Could enumerate subkeys here to be more flexible.
-def get_intel_compiler_top(version):
- """
- Return the main path to the top-level dir of the Intel compiler,
- using the given version or latest if 0.
- The compiler will be in <top>/Bin/icl.exe,
- the include dir is <top>/Include, etc.
- """
-
- if version == 0:
- version = "7.0" # XXX: should scan for latest
-
- if not SCons.Util.can_read_reg:
- raise SCons.Errors.InternalError, "No Windows registry module was found"
-
- K = ('Software\\Intel\\' +
- 'Intel(R) C/C++ Compiler for 32-bit apps, Version ' + version)
- # Note: v5 had slightly different key:
- # HKCU\Software\Intel\Intel C/C++ Compiler for 32-bit apps, Version 5.0
- # Note no (R).
- try:
- k = SCons.Util.RegOpenKeyEx(SCons.Util.HKEY_CURRENT_USER, K)
- except SCons.Util.RegError:
- return None
-
- try:
- # On my machine, this returns:
- # c:\Program Files\Intel\Compiler70
- top = SCons.Util.RegQueryValueEx(k, "Directory")[0]
- except SCons.Util.RegError:
- raise SCons.Errors.InternalError, "%s was not found in the registry."%K
-
- if os.path.exists(os.path.join(top, "ia32")):
- top = os.path.join(top, "ia32")
-
- if not os.path.exists(os.path.join(top, "Bin", "icl.exe")):
- raise SCons.Errors.InternalError, "Can't find Intel compiler in %s"%top
-
- return top
-
-
-def generate(env):
+def generate(*args, **kw):
"""Add Builders and construction variables for icl to an Environment."""
- SCons.Tool.msvc.generate(env)
-
- try:
- icltop = get_intel_compiler_top(0)
- except (SCons.Util.RegError, SCons.Errors.InternalError):
- icltop = None
-
- if icltop:
- env.PrependENVPath('INCLUDE', os.path.join(icltop, 'Include'))
- env.PrependENVPath('LIB', os.path.join(icltop, 'Lib'))
- env.PrependENVPath('PATH', os.path.join(icltop, 'Bin'))
-
- env['CC'] = 'icl'
- env['CXX'] = 'icl'
- env['LINK'] = 'xilink'
-
- # 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:
- top = get_intel_compiler_top(0)
- except (SCons.Util.RegError, SCons.Errors.InternalError):
- top = None
+ return apply(SCons.Tool.intelc.generate, args, kw)
- if not top:
- return env.Detect('icl')
- return top is not None
+def exists(*args, **kw):
+ return apply(SCons.Tool.intelc.exists, args, kw)