浏览代码

cmCommandLineArgument: Provide more information syntax error messages

Robert Maynard 4 年之前
父节点
当前提交
f78b167a23

+ 4 - 3
Source/cmCommandLineArgument.h

@@ -25,7 +25,7 @@ struct cmCommandLineArgument
 
   template <typename FunctionType>
   cmCommandLineArgument(std::string n, Values t, FunctionType&& func)
-    : InvalidSyntaxMessage(cmStrCat("Invalid syntax used with ", n))
+    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
     , InvalidValueMessage(cmStrCat("Invalid value used with ", n))
     , Name(std::move(n))
     , Type(t)
@@ -36,7 +36,7 @@ struct cmCommandLineArgument
   template <typename FunctionType>
   cmCommandLineArgument(std::string n, std::string failedMsg, Values t,
                         FunctionType&& func)
-    : InvalidSyntaxMessage(cmStrCat("Invalid syntax used with ", n))
+    : InvalidSyntaxMessage(cmStrCat(" is invalid syntax for ", n))
     , InvalidValueMessage(std::move(failedMsg))
     , Name(std::move(n))
     , Type(t)
@@ -150,7 +150,8 @@ struct cmCommandLineArgument
     }
 
     if (parseState == ParseMode::SyntaxError) {
-      cmSystemTools::Error(this->InvalidSyntaxMessage);
+      cmSystemTools::Error(
+        cmStrCat("'", input, "'", this->InvalidSyntaxMessage));
     } else if (parseState == ParseMode::ValueError) {
       cmSystemTools::Error(this->InvalidValueMessage);
     }

+ 1 - 1
Tests/RunCMake/CommandLine/build-invalid-target-syntax-stderr.txt

@@ -1,2 +1,2 @@
-^CMake Error: Invalid syntax used with --target
+^CMake Error: '--target=invalid' is invalid syntax for --target
 Usage: cmake --build \[<dir> \| --preset <preset>\] \[options\] \[-- \[native-options\]\]

+ 1 - 1
Tests/RunCMake/CommandLine/build-unknown-command-partial-match-stderr.txt

@@ -1,2 +1,2 @@
-^CMake Error: Invalid syntax used with --target
+^CMake Error: '--targetinvalid' is invalid syntax for --target
 Usage: cmake --build \[<dir> \| --preset <preset>\] \[options\] \[-- \[native-options\]\]