From c77b57ba7d8198a71d8d90a4eac5bcd526050cf9 Mon Sep 17 00:00:00 2001 From: David Cole Date: Sun, 24 Jun 2012 08:11:52 -0400 Subject: [PATCH] CTest: Allow -Dvar=value with no space between the D and the var Similar to CMake's handling of -D command line arguments, for consistency and to avoid silent ignoring of "unknown command line" args. --- Source/cmCTest.cxx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 05e823768..b5687e39a 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -2289,6 +2289,17 @@ int cmCTest::Run(std::vector &args, std::string* output) } } + // If it's not exactly -D, but it starts with -D, then try to parse out + // a variable definition from it, same as CMake does. Unsuccessful + // attempts are simply ignored since previous ctest versions ignore + // this too. (As well as many other unknown command line args.) + // + if(arg != "-D" && cmSystemTools::StringStartsWith(arg.c_str(), "-D")) + { + std::string input = arg.substr(2); + this->AddVariableDefinition(input); + } + if(this->CheckArgument(arg, "-T", "--test-action") && (i < args.size() -1) ) {