diff options
author | Steven Knight <knight@baldmt.com> | 2004-11-19 12:04:49 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2004-11-19 12:04:49 (GMT) |
commit | c1c940944e1cf0481242dbb71b8bda055aacea0a (patch) | |
tree | ca936249027169efdb956dc4687e33d22b3297ea /src/engine/SCons/Tool/icl.py | |
parent | 27db7fcdedd3043ae5d2f7f869f07e8533e63ba3 (diff) | |
download | SCons-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.py | 106 |
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) |