|
|
@@ -11,6 +11,7 @@
|
|
|
#include <utility>
|
|
|
#include <vector>
|
|
|
|
|
|
+#include <cm/optional>
|
|
|
#include <cm/string_view>
|
|
|
#include <cmext/algorithm>
|
|
|
#include <cmext/string_view>
|
|
|
@@ -69,7 +70,7 @@ bool cmExecuteProcessCommand(std::vector<std::string> const& args,
|
|
|
bool ErrorStripTrailingWhitespace = false;
|
|
|
bool EchoOutputVariable = false;
|
|
|
bool EchoErrorVariable = false;
|
|
|
- std::string Encoding;
|
|
|
+ cm::optional<std::string> Encoding;
|
|
|
std::string CommandErrorIsFatal;
|
|
|
};
|
|
|
|
|
|
@@ -296,8 +297,14 @@ bool cmExecuteProcessCommand(std::vector<std::string> const& args,
|
|
|
};
|
|
|
ReadData outputData;
|
|
|
ReadData errorData;
|
|
|
- cmProcessOutput processOutput(
|
|
|
- cmProcessOutput::FindEncoding(arguments.Encoding));
|
|
|
+ cmProcessOutput::Encoding encoding = cmProcessOutput::Auto;
|
|
|
+ if (arguments.Encoding) {
|
|
|
+ if (cm::optional<cmProcessOutput::Encoding> maybeEncoding =
|
|
|
+ cmProcessOutput::FindEncoding(*arguments.Encoding)) {
|
|
|
+ encoding = *maybeEncoding;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ cmProcessOutput processOutput(encoding);
|
|
|
std::string strdata;
|
|
|
|
|
|
std::unique_ptr<cmUVStreamReadHandle> outputHandle;
|