Better midl (Visual Studio MIDL compiler) Tool detection. (Anthony Roach)
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sat, 8 May 2004 23:00:41 +0000 (23:00 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Sat, 8 May 2004 23:00:41 +0000 (23:00 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@973 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/CHANGES.txt
src/engine/SCons/Tool/midl.py
src/engine/SCons/Tool/mslink.py
src/engine/SCons/Tool/msvc.py
src/engine/SCons/Tool/msvs.py

index 3d3d4cecf6ac9c8b1f2323b5d53ae510bcbdf394..215937ae4540cd908002b7f755d76db31da4a9d9 100644 (file)
@@ -127,6 +127,9 @@ RELEASE 0.96 - XXX
 
   - Fix use of the --implicit-cache option with timestamp signatures.
 
+  - If Visual Studio is installed, assume the C/C++ compiler, the linker
+    and the MIDL compiler that comes with it are available, too.
+
   From sam th:
 
   - Allow SConf.CheckLib() to search a list of libraries, like the
index 2efabccb8fe99fbdca80d2ccfff324c6af7956a8..d02f23a6db8579b2505861a90a9d0431a0205c06 100644 (file)
@@ -38,6 +38,7 @@ import os.path
 import SCons.Defaults
 import SCons.Scanner.IDL
 import SCons.Util
+import SCons.Tool.msvs
 
 def midl_emitter(target, source, env):
     """Produces a list of outputs from the MIDL compiler"""
@@ -69,4 +70,10 @@ def generate(env):
     env['BUILDERS']['TypeLibrary'] = midl_builder
 
 def exists(env):
-    return env.Detect('midl')
+    if SCons.Tool.msvs.is_msvs_installed():
+        # there's at least one version of MSVS installed, which comes with midl:
+        return 1
+    else:
+        return env.Detect('midl')
+
+
index 7e32e603b1661fa17440adf0c94cb3412e5a18b8..5ff8a011adf90f4505d1a41a4527a2d3b7db7054 100644 (file)
@@ -180,13 +180,8 @@ def generate(env):
         pass
 
 def exists(env):
-    try:
-        v = SCons.Tool.msvs.get_visualstudio_versions()
-    except (SCons.Util.RegError, SCons.Errors.InternalError):
-        pass
-    
-    if not v:
-        return env.Detect('link')
-    else:
+    if SCons.Tool.msvs.is_msvs_installed():
         # there's at least one version of MSVS installed.
         return 1
+    else:
+        return env.Detect('link')
index 1caa4dbcb8e184b0192d303cafdc9916ba46cbd5..3d498026d99fdf69771659c69fd25ae8c2c36a01 100644 (file)
@@ -478,13 +478,9 @@ def generate(env):
     env['BUILDERS']['PCH'] = pch_builder
 
 def exists(env):
-    try:
-        v = SCons.Tool.msvs.get_visualstudio_versions()
-    except (SCons.Util.RegError, SCons.Errors.InternalError):
-        pass
-
-    if not v:
-        return env.Detect('cl')
-    else:
+    if SCons.Tool.msvs.is_msvs_installed():
         # there's at least one version of MSVS installed.
         return 1
+    else:
+        return env.Detect('cl')
+
index 10ab42afdd13c1d48253961b9aa3e4989df63611..06f850ea0c66dd80dc2c86c928d7e298f7e41c5b 100644 (file)
@@ -846,6 +846,16 @@ def get_visualstudio_versions():
 
     return L
 
+def is_msvs_installed():
+    """
+    Check the registry for an installed visual studio.
+    """
+    try:
+        v = SCons.Tool.msvs.get_visualstudio_versions()
+        return v
+    except (SCons.Util.RegError, SCons.Errors.InternalError):
+        return 0
+
 def get_msvs_install_dirs(version = None):
     """
     Get installed locations for various msvc-related products, like the .NET SDK