cmExportCommand: Use cm::optional for keyword argument presence

This commit is contained in:
Brad King
2022-06-29 15:51:50 -04:00
parent 0a4c5164c9
commit 298f226cb4

View File

@@ -7,8 +7,7 @@
#include <utility>
#include <cm/memory>
#include <cm/string_view>
#include <cmext/algorithm>
#include <cm/optional>
#include <cmext/string_view>
#include "cmsys/RegularExpression.hxx"
@@ -58,7 +57,7 @@ bool cmExportCommand(std::vector<std::string> const& args,
struct Arguments
{
std::string ExportSetName;
std::vector<std::string> Targets;
cm::optional<std::vector<std::string>> Targets;
std::string Namespace;
std::string Filename;
std::string AndroidMKFile;
@@ -80,9 +79,7 @@ bool cmExportCommand(std::vector<std::string> const& args,
}
std::vector<std::string> unknownArgs;
std::vector<cm::string_view> keywordsMissingValue;
Arguments const arguments =
parser.Parse(args, &unknownArgs, &keywordsMissingValue);
Arguments const arguments = parser.Parse(args, &unknownArgs);
if (!unknownArgs.empty()) {
status.SetError("Unknown argument: \"" + unknownArgs.front() + "\".");
@@ -146,9 +143,8 @@ bool cmExportCommand(std::vector<std::string> const& args,
return false;
}
exportSet = &it->second;
} else if (!arguments.Targets.empty() ||
cm::contains(keywordsMissingValue, "TARGETS")) {
for (std::string const& currentTarget : arguments.Targets) {
} else if (arguments.Targets) {
for (std::string const& currentTarget : *arguments.Targets) {
if (mf.IsAlias(currentTarget)) {
std::ostringstream e;
e << "given ALIAS target \"" << currentTarget