mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 19:08:07 +08:00
cmExecuteProcessCommand: Report keyword errors via argument parser results
This commit is contained in:
@@ -47,7 +47,7 @@ bool cmExecuteProcessCommand(std::vector<std::string> const& args,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Arguments
|
struct Arguments : public ArgumentParser::ParseResult
|
||||||
{
|
{
|
||||||
std::vector<std::vector<std::string>> Commands;
|
std::vector<std::vector<std::string>> Commands;
|
||||||
std::string OutputVariable;
|
std::string OutputVariable;
|
||||||
@@ -95,14 +95,10 @@ bool cmExecuteProcessCommand(std::vector<std::string> const& args,
|
|||||||
.Bind("COMMAND_ERROR_IS_FATAL"_s, &Arguments::CommandErrorIsFatal);
|
.Bind("COMMAND_ERROR_IS_FATAL"_s, &Arguments::CommandErrorIsFatal);
|
||||||
|
|
||||||
std::vector<std::string> unparsedArguments;
|
std::vector<std::string> unparsedArguments;
|
||||||
std::vector<cm::string_view> keywordsMissingValue;
|
Arguments const arguments = parser.Parse(args, &unparsedArguments);
|
||||||
Arguments const arguments =
|
|
||||||
parser.Parse(args, &unparsedArguments, &keywordsMissingValue);
|
|
||||||
|
|
||||||
if (!keywordsMissingValue.empty()) {
|
if (arguments.MaybeReportError(status.GetMakefile())) {
|
||||||
status.SetError(cmStrCat(" called with no value for ",
|
return true;
|
||||||
keywordsMissingValue.front(), "."));
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
if (!unparsedArguments.empty()) {
|
if (!unparsedArguments.empty()) {
|
||||||
status.SetError(" given unknown argument \"" + unparsedArguments.front() +
|
status.SetError(" given unknown argument \"" + unparsedArguments.front() +
|
||||||
|
@@ -1,2 +1,4 @@
|
|||||||
CMake Error at .*EchoCommand.cmake:.*\(execute_process\):
|
CMake Error at .*EchoCommand.cmake:.*\(execute_process\):
|
||||||
execute_process called with no value for COMMAND_ECHO.
|
Error after keyword "COMMAND_ECHO":
|
||||||
|
|
||||||
|
missing required value
|
||||||
|
@@ -1,4 +1,7 @@
|
|||||||
^CMake Error at EncodingMissing.cmake:[0-9]+ \(execute_process\):
|
^CMake Error at EncodingMissing.cmake:[0-9]+ \(execute_process\):
|
||||||
execute_process called with no value for ENCODING.
|
Error after keyword "ENCODING":
|
||||||
|
|
||||||
|
missing required value
|
||||||
|
|
||||||
Call Stack \(most recent call first\):
|
Call Stack \(most recent call first\):
|
||||||
CMakeLists.txt:[0-9]+ \(include\)$
|
CMakeLists.txt:[0-9]+ \(include\)$
|
||||||
|
Reference in New Issue
Block a user