mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-09 15:20:56 -06:00
cmArgumentParser: Require callers to consider unparsed arguments
This commit is contained in:
@@ -78,7 +78,7 @@ public:
|
||||
|
||||
template <typename Range>
|
||||
void Parse(Result& result, Range const& args,
|
||||
std::vector<std::string>* unparsedArguments = nullptr,
|
||||
std::vector<std::string>* unparsedArguments,
|
||||
std::vector<cm::string_view>* keywordsMissingValue = nullptr,
|
||||
std::vector<cm::string_view>* parsedKeywords = nullptr) const
|
||||
{
|
||||
@@ -90,8 +90,7 @@ public:
|
||||
}
|
||||
|
||||
template <typename Range>
|
||||
Result Parse(Range const& args,
|
||||
std::vector<std::string>* unparsedArguments = nullptr,
|
||||
Result Parse(Range const& args, std::vector<std::string>* unparsedArguments,
|
||||
std::vector<cm::string_view>* keywordsMissingValue = nullptr,
|
||||
std::vector<cm::string_view>* parsedKeywords = nullptr) const
|
||||
{
|
||||
@@ -118,8 +117,7 @@ public:
|
||||
}
|
||||
|
||||
template <typename Range>
|
||||
void Parse(Range const& args,
|
||||
std::vector<std::string>* unparsedArguments = nullptr,
|
||||
void Parse(Range const& args, std::vector<std::string>* unparsedArguments,
|
||||
std::vector<cm::string_view>* keywordsMissingValue = nullptr,
|
||||
std::vector<cm::string_view>* parsedKeywords = nullptr) const
|
||||
{
|
||||
|
||||
@@ -172,7 +172,8 @@ bool HandleReadCommand(std::vector<std::string> const& args,
|
||||
.Bind("LIMIT"_s, &Arguments::Limit)
|
||||
.Bind("HEX"_s, &Arguments::Hex);
|
||||
|
||||
Arguments const arguments = parser.Parse(cmMakeRange(args).advance(3));
|
||||
Arguments const arguments = parser.Parse(cmMakeRange(args).advance(3),
|
||||
/*unparsedArguments=*/nullptr);
|
||||
|
||||
std::string fileName = fileNameArg;
|
||||
if (!cmsys::SystemTools::FileIsFullPath(fileName)) {
|
||||
@@ -1197,7 +1198,8 @@ bool HandleReadElfCommand(std::vector<std::string> const& args,
|
||||
.Bind("RPATH"_s, &Arguments::RPath)
|
||||
.Bind("RUNPATH"_s, &Arguments::RunPath)
|
||||
.Bind("CAPTURE_ERROR"_s, &Arguments::Error);
|
||||
Arguments const arguments = parser.Parse(cmMakeRange(args).advance(2));
|
||||
Arguments const arguments = parser.Parse(cmMakeRange(args).advance(2),
|
||||
/*unparsedArguments=*/nullptr);
|
||||
|
||||
if (!cmSystemTools::FileExists(fileNameArg, true)) {
|
||||
status.SetError(cmStrCat("READ_ELF given FILE \"", fileNameArg,
|
||||
|
||||
@@ -197,7 +197,7 @@ std::vector<std::string> TargetSourcesImpl::ConvertToAbsoluteContent(
|
||||
bool TargetSourcesImpl::HandleFileSetMode(
|
||||
const std::string& scope, const std::vector<std::string>& content)
|
||||
{
|
||||
auto args = FileSetsArgsParser.Parse(content);
|
||||
auto args = FileSetsArgsParser.Parse(content, /*unparsedArguments=*/nullptr);
|
||||
|
||||
for (auto& argList : args.FileSets) {
|
||||
argList.emplace(argList.begin(), "FILE_SET"_s);
|
||||
|
||||
Reference in New Issue
Block a user