Browse Source

cmExportCommand: Use cm::optional for keyword argument presence

Brad King 3 years ago
parent
commit
298f226cb4
1 changed files with 5 additions and 9 deletions
  1. 5 9
      Source/cmExportCommand.cxx

+ 5 - 9
Source/cmExportCommand.cxx

@@ -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