summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel <dmoody256@gmail.com>2018-08-13 05:28:05 (GMT)
committerDaniel <dmoody256@gmail.com>2018-08-13 05:28:05 (GMT)
commit57d09cd12f950ba938ab0164f3b68ed937353318 (patch)
treec1508ec7442c392ef70418ca8fde4e60bf78f762
parent5d21b1cac7605f4df43ddc6db30011e6d1006859 (diff)
downloadSCons-57d09cd12f950ba938ab0164f3b68ed937353318.zip
SCons-57d09cd12f950ba938ab0164f3b68ed937353318.tar.gz
SCons-57d09cd12f950ba938ab0164f3b68ed937353318.tar.bz2
updated vc and tests to check the msvc cl binary
-rw-r--r--src/engine/SCons/Tool/MSCommon/vc.py14
-rw-r--r--test/MSVS/vs-10.0Exp-exec.py8
-rw-r--r--test/MSVS/vs-11.0-exec.py8
-rw-r--r--test/MSVS/vs-11.0Exp-exec.py8
-rw-r--r--test/MSVS/vs-14.0-exec.py8
-rw-r--r--test/MSVS/vs-6.0-clean.py2
-rw-r--r--test/MSVS/vs-6.0-exec.py8
-rw-r--r--test/MSVS/vs-7.0-exec.py8
-rw-r--r--test/MSVS/vs-7.1-exec.py8
-rw-r--r--test/MSVS/vs-8.0-exec.py7
-rw-r--r--test/MSVS/vs-8.0Exp-exec.py8
-rw-r--r--test/MSVS/vs-9.0-exec.py8
-rw-r--r--test/MSVS/vs-9.0Exp-exec.py8
13 files changed, 79 insertions, 24 deletions
diff --git a/src/engine/SCons/Tool/MSCommon/vc.py b/src/engine/SCons/Tool/MSCommon/vc.py
index 53bd397..e5c9aaf 100644
--- a/src/engine/SCons/Tool/MSCommon/vc.py
+++ b/src/engine/SCons/Tool/MSCommon/vc.py
@@ -43,6 +43,7 @@ import platform
from string import digits as string_digits
import SCons.Warnings
+from SCons.Tool import find_program_path
from . import common
@@ -357,9 +358,13 @@ def get_installed_vcs():
for ver in _VCVER:
debug('trying to find VC %s' % ver)
try:
- if find_vc_pdir(ver):
+ VC_DIR = find_vc_pdir(ver)
+ if VC_DIR:
debug('found VC %s' % ver)
- installed_versions.append(ver)
+ if os.path.exists(os.path.join(VC_DIR, r'bin\cl.exe')):
+ installed_versions.append(ver)
+ else:
+ debug('find_vc_pdir no cl.exe found %s' % ver)
else:
debug('find_vc_pdir return None for ver %s' % ver)
except VisualCException as e:
@@ -565,6 +570,11 @@ def msvc_setup_env(env):
for k, v in d.items():
debug('vc.py:msvc_setup_env() env:%s -> %s'%(k,v))
env.PrependENVPath(k, v, delete_existing=True)
+
+ msvc_cl = find_program_path(env, 'cl')
+ if not msvc_cl:
+ SCons.Warnings.warn(SCons.Warnings.VisualCMissingWarning,
+ "Could not find MSVC compiler 'cl.exe', it may need to be installed separately with Visual Studio")
def msvc_exists(version=None):
vcs = cached_get_installed_vcs()
diff --git a/test/MSVS/vs-10.0Exp-exec.py b/test/MSVS/vs-10.0Exp-exec.py
index a63f6c4..d6114bd 100644
--- a/test/MSVS/vs-10.0Exp-exec.py
+++ b/test/MSVS/vs-10.0Exp-exec.py
@@ -55,10 +55,14 @@ if not msvs_version in test.msvs_versions():
test.run(arguments = '-n -q -Q -f -', stdin = """\
env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s')
-sconsEnv = repr(env['ENV'])
-print("os.environ.update(" + sconsEnv + ")")
+if env.WhereIs('cl'):
+ print("os.environ.update(%%s)" %% repr(env['ENV']))
""" % locals())
+if(test.stdout() == ""):
+ msg = "Visual Studio %s missing cl.exe; skipping test.\n" % msvs_version
+ test.skip_test(msg)
+
exec(test.stdout())
diff --git a/test/MSVS/vs-11.0-exec.py b/test/MSVS/vs-11.0-exec.py
index 21645f5..48acd1c 100644
--- a/test/MSVS/vs-11.0-exec.py
+++ b/test/MSVS/vs-11.0-exec.py
@@ -55,10 +55,14 @@ if not msvs_version in test.msvs_versions():
test.run(arguments = '-n -q -Q -f -', stdin = """\
env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s')
-sconsEnv = repr(env['ENV'])
-print("os.environ.update(" + sconsEnv + ")")
+if env.WhereIs('cl'):
+ print("os.environ.update(%%s)" %% repr(env['ENV']))
""" % locals())
+if(test.stdout() == ""):
+ msg = "Visual Studio %s missing cl.exe; skipping test.\n" % msvs_version
+ test.skip_test(msg)
+
exec(test.stdout())
diff --git a/test/MSVS/vs-11.0Exp-exec.py b/test/MSVS/vs-11.0Exp-exec.py
index be48971..6a288a5 100644
--- a/test/MSVS/vs-11.0Exp-exec.py
+++ b/test/MSVS/vs-11.0Exp-exec.py
@@ -55,10 +55,14 @@ if not msvs_version in test.msvs_versions():
test.run(arguments = '-n -q -Q -f -', stdin = """\
env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s')
-sconsEnv = repr(env['ENV'])
-print("os.environ.update(" + sconsEnv + ")")
+if env.WhereIs('cl'):
+ print("os.environ.update(%%s)" %% repr(env['ENV']))
""" % locals())
+if(test.stdout() == ""):
+ msg = "Visual Studio %s missing cl.exe; skipping test.\n" % msvs_version
+ test.skip_test(msg)
+
exec(test.stdout())
diff --git a/test/MSVS/vs-14.0-exec.py b/test/MSVS/vs-14.0-exec.py
index f2a826c..d2b7112 100644
--- a/test/MSVS/vs-14.0-exec.py
+++ b/test/MSVS/vs-14.0-exec.py
@@ -55,10 +55,14 @@ if not msvs_version in test.msvs_versions():
test.run(arguments = '-n -q -Q -f -', stdin = """\
env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s')
-sconsEnv = repr(env['ENV'])
-print("os.environ.update(" + sconsEnv + ")")
+if env.WhereIs('cl'):
+ print("os.environ.update(%%s)" %% repr(env['ENV']))
""" % locals())
+if(test.stdout() == ""):
+ msg = "Visual Studio %s missing cl.exe; skipping test.\n" % msvs_version
+ test.skip_test(msg)
+
exec(test.stdout())
diff --git a/test/MSVS/vs-6.0-clean.py b/test/MSVS/vs-6.0-clean.py
index 6b9bd98..0cbadba 100644
--- a/test/MSVS/vs-6.0-clean.py
+++ b/test/MSVS/vs-6.0-clean.py
@@ -72,7 +72,7 @@ env.MSVSSolution(target = 'Test.dsw',
variant = 'Release')
"""%{'HOST_ARCH':host_arch})
-test.run(arguments=".")
+test.run()
test.must_exist(test.workpath('Test.dsp'))
dsp = test.read('Test.dsp', 'r')
diff --git a/test/MSVS/vs-6.0-exec.py b/test/MSVS/vs-6.0-exec.py
index d017790..0864f76 100644
--- a/test/MSVS/vs-6.0-exec.py
+++ b/test/MSVS/vs-6.0-exec.py
@@ -54,10 +54,14 @@ if not msvs_version in test.msvs_versions():
test.run(arguments = '-n -q -Q -f -', stdin = """\
env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s')
-sconsEnv = repr(env['ENV'])
-print("os.environ.update(" + sconsEnv + ")")
+if env.WhereIs('cl'):
+ print("os.environ.update(%%s)" %% repr(env['ENV']))
""" % locals())
+if(test.stdout() == ""):
+ msg = "Visual Studio %s missing cl.exe; skipping test.\n" % msvs_version
+ test.skip_test(msg)
+
exec(test.stdout())
diff --git a/test/MSVS/vs-7.0-exec.py b/test/MSVS/vs-7.0-exec.py
index e62ee77..e95ca83 100644
--- a/test/MSVS/vs-7.0-exec.py
+++ b/test/MSVS/vs-7.0-exec.py
@@ -54,10 +54,14 @@ if not msvs_version in test.msvs_versions():
test.run(arguments = '-n -q -Q -f -', stdin = """\
env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s')
-sconsEnv = repr(env['ENV'])
-print("os.environ.update(" + sconsEnv + ")")
+if env.WhereIs('cl'):
+ print("os.environ.update(%%s)" %% repr(env['ENV']))
""" % locals())
+if(test.stdout() == ""):
+ msg = "Visual Studio %s missing cl.exe; skipping test.\n" % msvs_version
+ test.skip_test(msg)
+
exec(test.stdout())
diff --git a/test/MSVS/vs-7.1-exec.py b/test/MSVS/vs-7.1-exec.py
index 42f6ae8..11ea617 100644
--- a/test/MSVS/vs-7.1-exec.py
+++ b/test/MSVS/vs-7.1-exec.py
@@ -54,10 +54,14 @@ if not msvs_version in test.msvs_versions():
test.run(arguments = '-n -q -Q -f -', stdin = """\
env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s')
-sconsEnv = repr(env['ENV'])
-print("os.environ.update(" + sconsEnv + ")")
+if env.WhereIs('cl'):
+ print("os.environ.update(%%s)" %% repr(env['ENV']))
""" % locals())
+if(test.stdout() == ""):
+ msg = "Visual Studio %s missing cl.exe; skipping test.\n" % msvs_version
+ test.skip_test(msg)
+
exec(test.stdout())
diff --git a/test/MSVS/vs-8.0-exec.py b/test/MSVS/vs-8.0-exec.py
index 96c4c29..4b0a6dd 100644
--- a/test/MSVS/vs-8.0-exec.py
+++ b/test/MSVS/vs-8.0-exec.py
@@ -55,9 +55,14 @@ if not msvs_version in test.msvs_versions():
test.run(arguments = '-n -q -Q -f -', stdin = """\
env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s')
-print("os.environ.update(%%s)" %% repr(env['ENV']))
+if env.WhereIs('cl'):
+ print("os.environ.update(%%s)" %% repr(env['ENV']))
""" % locals())
+if(test.stdout() == ""):
+ msg = "Visual Studio %s missing cl.exe; skipping test.\n" % msvs_version
+ test.skip_test(msg)
+
exec(test.stdout())
diff --git a/test/MSVS/vs-8.0Exp-exec.py b/test/MSVS/vs-8.0Exp-exec.py
index 66196f1..0e4396d 100644
--- a/test/MSVS/vs-8.0Exp-exec.py
+++ b/test/MSVS/vs-8.0Exp-exec.py
@@ -55,10 +55,14 @@ if not msvs_version in test.msvs_versions():
test.run(arguments = '-n -q -Q -f -', stdin = """\
env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s')
-sconsEnv = repr(env['ENV'])
-print("os.environ.update(" + sconsEnv + ")")
+if env.WhereIs('cl'):
+ print("os.environ.update(%%s)" %% repr(env['ENV']))
""" % locals())
+if(test.stdout() == ""):
+ msg = "Visual Studio %s missing cl.exe; skipping test.\n" % msvs_version
+ test.skip_test(msg)
+
exec(test.stdout())
diff --git a/test/MSVS/vs-9.0-exec.py b/test/MSVS/vs-9.0-exec.py
index 7b544aa..3f823fa 100644
--- a/test/MSVS/vs-9.0-exec.py
+++ b/test/MSVS/vs-9.0-exec.py
@@ -55,10 +55,14 @@ if not msvs_version in test.msvs_versions():
test.run(arguments = '-n -q -Q -f -', stdin = """\
env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s')
-sconsEnv = repr(env['ENV'])
-print("os.environ.update(" + sconsEnv + ")")
+if env.WhereIs('cl'):
+ print("os.environ.update(%%s)" %% repr(env['ENV']))
""" % locals())
+if(test.stdout() == ""):
+ msg = "Visual Studio %s missing cl.exe; skipping test.\n" % msvs_version
+ test.skip_test(msg)
+
exec(test.stdout())
diff --git a/test/MSVS/vs-9.0Exp-exec.py b/test/MSVS/vs-9.0Exp-exec.py
index caa763e..5a65faf 100644
--- a/test/MSVS/vs-9.0Exp-exec.py
+++ b/test/MSVS/vs-9.0Exp-exec.py
@@ -55,10 +55,14 @@ if not msvs_version in test.msvs_versions():
test.run(arguments = '-n -q -Q -f -', stdin = """\
env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s')
-sconsEnv = repr(env['ENV'])
-print("os.environ.update(" + sconsEnv + ")")
+if env.WhereIs('cl'):
+ print("os.environ.update(%%s)" %% repr(env['ENV']))
""" % locals())
+if(test.stdout() == ""):
+ msg = "Visual Studio %s missing cl.exe; skipping test.\n" % msvs_version
+ test.skip_test(msg)
+
exec(test.stdout())