From b1aa01e14e21176f0dd33919fae528e26280dec4 Mon Sep 17 00:00:00 2001 From: Gary Oberbrunner Date: Sun, 6 May 2012 22:35:22 -0400 Subject: MSVC: show valid $TARGET_ARCH values when invalid arch passed in. --- src/CHANGES.txt | 4 ++++ src/engine/SCons/Tool/MSCommon/vc.py | 3 ++- test/MSVC/TARGET_ARCH.py | 13 ++++++++++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/CHANGES.txt b/src/CHANGES.txt index 7747a3e..d1ae455 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -6,6 +6,10 @@ RELEASE 2.X.X - + From Gary Oberbrunner: + - Show valid Visual Studio architectures in error message + when user passes invalid arch. + From Alexey Petruchik: - Support for Microsoft Visual Studio 11 (both using it and generating MSVS11 solution files). diff --git a/src/engine/SCons/Tool/MSCommon/vc.py b/src/engine/SCons/Tool/MSCommon/vc.py index 6647087..91cae1c 100644 --- a/src/engine/SCons/Tool/MSCommon/vc.py +++ b/src/engine/SCons/Tool/MSCommon/vc.py @@ -124,7 +124,8 @@ def get_host_target(env): try: target = _ARCH_TO_CANONICAL[target_platform.lower()] except KeyError, e: - raise ValueError("Unrecognized target architecture %s" % target_platform) + all_archs = str(_ARCH_TO_CANONICAL.keys()) + raise ValueError("Unrecognized target architecture %s\n\tValid architectures: %s" % (target_platform, all_archs)) return (host, target,req_target_platform) diff --git a/test/MSVC/TARGET_ARCH.py b/test/MSVC/TARGET_ARCH.py index 963e2a5..d6d8b43 100644 --- a/test/MSVC/TARGET_ARCH.py +++ b/test/MSVC/TARGET_ARCH.py @@ -25,7 +25,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" """ -Test the ability to configure the $PCHCOM construction variable. +Test the ability to configure the $TARGET_ARCH construction variable. """ import TestSCons @@ -48,6 +48,17 @@ env_32 = Environment(tools=['default', 'msvc'], test.run(arguments = ".") +# test.pass_test() + +test.write('SConstruct', """ +env_xx = Environment(tools=['default', 'msvc'], + TARGET_ARCH = 'nosucharch') +""" % locals()) + +test.run(arguments = ".", status=2, stderr=None) +test.must_contain_any_line(test.stderr(), "Unrecognized target architecture") +test.must_contain_any_line(test.stderr(), "Valid architectures") + test.pass_test() # Local Variables: -- cgit v0.12