cmConfigureFileCommand: simplify no-op argument handling

This commit is contained in:
Ben Boeckel
2020-04-08 13:10:45 -04:00
parent f413727d27
commit 7cb72fadc8

View File

@@ -2,6 +2,12 @@
file Copyright.txt or https://cmake.org/licensing for details. */
#include "cmConfigureFileCommand.h"
#include <set>
#include <cm/string_view>
#include "cm_static_string_view.hxx"
#include "cmExecutionStatus.h"
#include "cmMakefile.h"
#include "cmMessageType.h"
@@ -56,6 +62,18 @@ bool cmConfigureFileCommand(std::vector<std::string> const& args,
bool copyOnly = false;
bool escapeQuotes = false;
static std::set<cm::string_view> noopOptions = {
/* Legacy. */
"IMMEDIATE"_s,
/* Handled by NewLineStyle member. */
"NEWLINE_STYLE"_s,
"LF"_s,
"UNIX"_s,
"CRLF"_s,
"WIN32"_s,
"DOS"_s,
};
std::string unknown_args;
bool atOnly = false;
for (unsigned int i = 2; i < args.size(); ++i) {
@@ -70,12 +88,8 @@ bool cmConfigureFileCommand(std::vector<std::string> const& args,
escapeQuotes = true;
} else if (args[i] == "@ONLY") {
atOnly = true;
} else if (args[i] == "IMMEDIATE") {
/* Ignore legacy option. */
} else if (args[i] == "NEWLINE_STYLE" || args[i] == "LF" ||
args[i] == "UNIX" || args[i] == "CRLF" || args[i] == "WIN32" ||
args[i] == "DOS") {
/* Options handled by NewLineStyle member above. */
} else if (noopOptions.find(args[i]) != noopOptions.end()) {
/* Ignore no-op options. */
} else {
unknown_args += " ";
unknown_args += args[i];