Commit 5e36209f authored by Sebastian Holtermann's avatar Sebastian Holtermann
Browse files

Autogen: Rename cmQtAutoGen::GeneratorT enum to cmQtAutoGen::GenT

parent 14ae19c3
......@@ -83,31 +83,31 @@ std::string const cmQtAutoGen::GenNameMocUpper = "AUTOMOC";
std::string const cmQtAutoGen::GenNameUicUpper = "AUTOUIC";
std::string const cmQtAutoGen::GenNameRccUpper = "AUTORCC";
std::string const& cmQtAutoGen::GeneratorName(GeneratorT genType)
std::string const& cmQtAutoGen::GeneratorName(GenT genType)
{
switch (genType) {
case GeneratorT::GEN:
case GenT::GEN:
return GenNameGen;
case GeneratorT::MOC:
case GenT::MOC:
return GenNameMoc;
case GeneratorT::UIC:
case GenT::UIC:
return GenNameUic;
case GeneratorT::RCC:
case GenT::RCC:
return GenNameRcc;
}
return GenNameGen;
}
std::string const& cmQtAutoGen::GeneratorNameUpper(GeneratorT genType)
std::string const& cmQtAutoGen::GeneratorNameUpper(GenT genType)
{
switch (genType) {
case GeneratorT::GEN:
case GenT::GEN:
return GenNameGenUpper;
case GeneratorT::MOC:
case GenT::MOC:
return GenNameMocUpper;
case GeneratorT::UIC:
case GenT::UIC:
return GenNameUicUpper;
case GeneratorT::RCC:
case GenT::RCC:
return GenNameRccUpper;
}
return GenNameGenUpper;
......
......@@ -14,18 +14,6 @@
class cmQtAutoGen
{
public:
/// @brief Maximum number of parallel threads/processes in a generator
static unsigned int const ParallelMax;
/// @brief AutoGen generator type
enum class GeneratorT
{
GEN, // AUTOGEN
MOC,
UIC,
RCC
};
/// @brief Integer version
struct IntegerVersion
{
......@@ -52,6 +40,15 @@ public:
}
};
/// @brief AutoGen generator type
enum class GenT
{
GEN, // AUTOGEN
MOC, // AUTOMOC
UIC, // AUTOUIC
RCC // AUTORCC
};
/// @brief Nested lists separator
static std::string const ListSep;
// Generator names
......@@ -63,12 +60,14 @@ public:
static std::string const GenNameMocUpper;
static std::string const GenNameUicUpper;
static std::string const GenNameRccUpper;
/// @brief Maximum number of parallel threads/processes in a generator
static unsigned int const ParallelMax;
public:
/// @brief Returns the generator name
static std::string const& GeneratorName(GeneratorT genType);
static std::string const& GeneratorName(GenT genType);
/// @brief Returns the generator name in upper case
static std::string const& GeneratorNameUpper(GeneratorT genType);
static std::string const& GeneratorNameUpper(GenT genType);
/// @brief Returns a string with the requested tool names
static std::string Tools(bool moc, bool uic, bool rcc);
......
......@@ -70,7 +70,7 @@ static std::size_t GetParallelCPUCount()
}
static bool AddToSourceGroup(cmMakefile* makefile, std::string const& fileName,
cmQtAutoGen::GeneratorT genType)
cmQtAutoGen::GenT genType)
{
cmSourceGroup* sourceGroup = nullptr;
// Acquire source group
......@@ -81,10 +81,10 @@ static bool AddToSourceGroup(cmMakefile* makefile, std::string const& fileName,
std::array<std::string, 2> props;
// Use generator specific group name
switch (genType) {
case cmQtAutoGen::GeneratorT::MOC:
case cmQtAutoGen::GenT::MOC:
props[0] = "AUTOMOC_SOURCE_GROUP";
break;
case cmQtAutoGen::GeneratorT::RCC:
case cmQtAutoGen::GenT::RCC:
props[0] = "AUTORCC_SOURCE_GROUP";
break;
default:
......@@ -961,7 +961,7 @@ bool cmQtAutoGenInitializer::InitAutogenTarget()
// Files provided by the autogen target
std::vector<std::string> autogenProvides;
if (this->Moc.Enabled) {
this->AddGeneratedSource(this->Moc.MocsCompilation, GeneratorT::MOC, true);
this->AddGeneratedSource(this->Moc.MocsCompilation, GenT::MOC, true);
autogenProvides.push_back(this->Moc.MocsCompilation);
}
......@@ -1115,7 +1115,7 @@ bool cmQtAutoGenInitializer::InitRccTargets()
// Register info file as generated by CMake
makefile->AddCMakeOutputFile(qrc.InfoFile);
// Register file at target
this->AddGeneratedSource(qrc.RccFile, GeneratorT::RCC);
this->AddGeneratedSource(qrc.RccFile, GenT::RCC);
std::vector<std::string> ccOutput;
ccOutput.push_back(qrc.RccFile);
......@@ -1354,8 +1354,7 @@ bool cmQtAutoGenInitializer::SetupWriteRccInfo()
}
void cmQtAutoGenInitializer::AddGeneratedSource(std::string const& filename,
GeneratorT genType,
bool prepend)
GenT genType, bool prepend)
{
// Register source file in makefile
cmMakefile* makefile = this->Target->Target->GetMakefile();
......
......@@ -99,7 +99,7 @@ private:
bool SetupWriteAutogenInfo();
bool SetupWriteRccInfo();
void AddGeneratedSource(std::string const& filename, GeneratorT genType,
void AddGeneratedSource(std::string const& filename, GenT genType,
bool prepend = false);
bool GetMocExecutable();
......
......@@ -43,8 +43,7 @@ std::string cmQtAutoGenerator::Logger::HeadLine(std::string const& title)
return head;
}
void cmQtAutoGenerator::Logger::Info(GeneratorT genType,
std::string const& message)
void cmQtAutoGenerator::Logger::Info(GenT genType, std::string const& message)
{
std::string msg = GeneratorName(genType);
msg += ": ";
......@@ -58,7 +57,7 @@ void cmQtAutoGenerator::Logger::Info(GeneratorT genType,
}
}
void cmQtAutoGenerator::Logger::Warning(GeneratorT genType,
void cmQtAutoGenerator::Logger::Warning(GenT genType,
std::string const& message)
{
std::string msg;
......@@ -82,7 +81,7 @@ void cmQtAutoGenerator::Logger::Warning(GeneratorT genType,
}
}
void cmQtAutoGenerator::Logger::WarningFile(GeneratorT genType,
void cmQtAutoGenerator::Logger::WarningFile(GenT genType,
std::string const& filename,
std::string const& message)
{
......@@ -94,8 +93,7 @@ void cmQtAutoGenerator::Logger::WarningFile(GeneratorT genType,
Warning(genType, msg);
}
void cmQtAutoGenerator::Logger::Error(GeneratorT genType,
std::string const& message)
void cmQtAutoGenerator::Logger::Error(GenT genType, std::string const& message)
{
std::string msg;
msg += HeadLine(GeneratorName(genType) + " error");
......@@ -111,7 +109,7 @@ void cmQtAutoGenerator::Logger::Error(GeneratorT genType,
}
}
void cmQtAutoGenerator::Logger::ErrorFile(GeneratorT genType,
void cmQtAutoGenerator::Logger::ErrorFile(GenT genType,
std::string const& filename,
std::string const& message)
{
......@@ -124,7 +122,7 @@ void cmQtAutoGenerator::Logger::ErrorFile(GeneratorT genType,
}
void cmQtAutoGenerator::Logger::ErrorCommand(
GeneratorT genType, std::string const& message,
GenT genType, std::string const& message,
std::vector<std::string> const& command, std::string const& output)
{
std::string msg;
......@@ -297,7 +295,7 @@ bool cmQtAutoGenerator::FileSystem::FileRead(std::string& content,
return success;
}
bool cmQtAutoGenerator::FileSystem::FileRead(GeneratorT genType,
bool cmQtAutoGenerator::FileSystem::FileRead(GenT genType,
std::string& content,
std::string const& filename)
{
......@@ -343,7 +341,7 @@ bool cmQtAutoGenerator::FileSystem::FileWrite(std::string const& filename,
return success;
}
bool cmQtAutoGenerator::FileSystem::FileWrite(GeneratorT genType,
bool cmQtAutoGenerator::FileSystem::FileWrite(GenT genType,
std::string const& filename,
std::string const& content)
{
......@@ -387,7 +385,7 @@ bool cmQtAutoGenerator::FileSystem::MakeDirectory(std::string const& dirname)
return cmSystemTools::MakeDirectory(dirname);
}
bool cmQtAutoGenerator::FileSystem::MakeDirectory(GeneratorT genType,
bool cmQtAutoGenerator::FileSystem::MakeDirectory(GenT genType,
std::string const& dirname)
{
if (!MakeDirectory(dirname)) {
......@@ -409,7 +407,7 @@ bool cmQtAutoGenerator::FileSystem::MakeParentDirectory(
}
bool cmQtAutoGenerator::FileSystem::MakeParentDirectory(
GeneratorT genType, std::string const& filename)
GenT genType, std::string const& filename)
{
if (!MakeParentDirectory(filename)) {
Log()->ErrorFile(genType, filename, "Could not create parent directory");
......
......@@ -40,16 +40,16 @@ public:
bool ColorOutput() const { return this->ColorOutput_; }
void SetColorOutput(bool value);
// -- Log info
void Info(GeneratorT genType, std::string const& message);
void Info(GenT genType, std::string const& message);
// -- Log warning
void Warning(GeneratorT genType, std::string const& message);
void WarningFile(GeneratorT genType, std::string const& filename,
void Warning(GenT genType, std::string const& message);
void WarningFile(GenT genType, std::string const& filename,
std::string const& message);
// -- Log error
void Error(GeneratorT genType, std::string const& message);
void ErrorFile(GeneratorT genType, std::string const& filename,
void Error(GenT genType, std::string const& message);
void ErrorFile(GenT genType, std::string const& filename,
std::string const& message);
void ErrorCommand(GeneratorT genType, std::string const& message,
void ErrorCommand(GenT genType, std::string const& message,
std::vector<std::string> const& command,
std::string const& output);
......@@ -114,13 +114,13 @@ public:
bool FileRead(std::string& content, std::string const& filename,
std::string* error = nullptr);
/// @brief Error logging version
bool FileRead(GeneratorT genType, std::string& content,
bool FileRead(GenT genType, std::string& content,
std::string const& filename);
bool FileWrite(std::string const& filename, std::string const& content,
std::string* error = nullptr);
/// @brief Error logging version
bool FileWrite(GeneratorT genType, std::string const& filename,
bool FileWrite(GenT genType, std::string const& filename,
std::string const& content);
bool FileDiffers(std::string const& filename, std::string const& content);
......@@ -131,11 +131,11 @@ public:
// -- Directory access
bool MakeDirectory(std::string const& dirname);
/// @brief Error logging version
bool MakeDirectory(GeneratorT genType, std::string const& dirname);
bool MakeDirectory(GenT genType, std::string const& dirname);
bool MakeParentDirectory(std::string const& filename);
/// @brief Error logging version
bool MakeParentDirectory(GeneratorT genType, std::string const& filename);
bool MakeParentDirectory(GenT genType, std::string const& filename);
private:
std::mutex Mutex_;
......
This diff is collapsed.
......@@ -321,22 +321,22 @@ public:
const UicSettingsT& Uic() const { return Gen_->Uic(); }
// -- Log info
void LogInfo(GeneratorT genType, std::string const& message) const;
void LogInfo(GenT genType, std::string const& message) const;
// -- Log warning
void LogWarning(GeneratorT genType, std::string const& message) const;
void LogFileWarning(GeneratorT genType, std::string const& filename,
void LogWarning(GenT genType, std::string const& message) const;
void LogFileWarning(GenT genType, std::string const& filename,
std::string const& message) const;
// -- Log error
void LogError(GeneratorT genType, std::string const& message) const;
void LogFileError(GeneratorT genType, std::string const& filename,
void LogError(GenT genType, std::string const& message) const;
void LogFileError(GenT genType, std::string const& filename,
std::string const& message) const;
void LogCommandError(GeneratorT genType, std::string const& message,
void LogCommandError(GenT genType, std::string const& message,
std::vector<std::string> const& command,
std::string const& output) const;
// -- External processes
/// @brief Verbose logging version
bool RunProcess(GeneratorT genType, ProcessResultT& result,
bool RunProcess(GenT genType, ProcessResultT& result,
std::vector<std::string> const& command);
private:
......
......@@ -55,7 +55,7 @@ bool cmQtAutoGeneratorRcc::Init(cmMakefile* makefile)
// -- Read info file
if (!makefile->ReadListFile(InfoFile())) {
Log().ErrorFile(GeneratorT::RCC, InfoFile(), "File processing failed");
Log().ErrorFile(GenT::RCC, InfoFile(), "File processing failed");
return false;
}
......@@ -66,13 +66,13 @@ bool cmQtAutoGeneratorRcc::Init(cmMakefile* makefile)
// - Directories
AutogenBuildDir_ = InfoGet("ARCC_BUILD_DIR");
if (AutogenBuildDir_.empty()) {
Log().ErrorFile(GeneratorT::RCC, InfoFile(), "Build directory empty");
Log().ErrorFile(GenT::RCC, InfoFile(), "Build directory empty");
return false;
}
IncludeDir_ = InfoGetConfig("ARCC_INCLUDE_DIR");
if (IncludeDir_.empty()) {
Log().ErrorFile(GeneratorT::RCC, InfoFile(), "Include directory empty");
Log().ErrorFile(GenT::RCC, InfoFile(), "Include directory empty");
return false;
}
......@@ -95,28 +95,27 @@ bool cmQtAutoGeneratorRcc::Init(cmMakefile* makefile)
// - Validity checks
if (LockFile_.empty()) {
Log().ErrorFile(GeneratorT::RCC, InfoFile(), "Lock file name missing");
Log().ErrorFile(GenT::RCC, InfoFile(), "Lock file name missing");
return false;
}
if (SettingsFile_.empty()) {
Log().ErrorFile(GeneratorT::RCC, InfoFile(), "Settings file name missing");
Log().ErrorFile(GenT::RCC, InfoFile(), "Settings file name missing");
return false;
}
if (AutogenBuildDir_.empty()) {
Log().ErrorFile(GeneratorT::RCC, InfoFile(),
"Autogen build directory missing");
Log().ErrorFile(GenT::RCC, InfoFile(), "Autogen build directory missing");
return false;
}
if (RccExecutable_.empty()) {
Log().ErrorFile(GeneratorT::RCC, InfoFile(), "rcc executable missing");
Log().ErrorFile(GenT::RCC, InfoFile(), "rcc executable missing");
return false;
}
if (QrcFile_.empty()) {
Log().ErrorFile(GeneratorT::RCC, InfoFile(), "rcc input file missing");
Log().ErrorFile(GenT::RCC, InfoFile(), "rcc input file missing");
return false;
}
if (RccFileName_.empty()) {
Log().ErrorFile(GeneratorT::RCC, InfoFile(), "rcc output file missing");
Log().ErrorFile(GenT::RCC, InfoFile(), "rcc output file missing");
return false;
}
......@@ -287,8 +286,7 @@ bool cmQtAutoGeneratorRcc::SettingsFileRead()
// Make sure the lock file exists
if (!FileSys().FileExists(LockFile_, true)) {
if (!FileSys().Touch(LockFile_, true)) {
Log().ErrorFile(GeneratorT::RCC, LockFile_,
"Lock file creation failed");
Log().ErrorFile(GenT::RCC, LockFile_, "Lock file creation failed");
Error_ = true;
return false;
}
......@@ -297,7 +295,7 @@ bool cmQtAutoGeneratorRcc::SettingsFileRead()
cmFileLockResult lockResult =
LockFileLock_.Lock(LockFile_, static_cast<unsigned long>(-1));
if (!lockResult.IsOk()) {
Log().ErrorFile(GeneratorT::RCC, LockFile_,
Log().ErrorFile(GenT::RCC, LockFile_,
"File lock failed: " + lockResult.GetOutputMessage());
Error_ = true;
return false;
......@@ -313,7 +311,7 @@ bool cmQtAutoGeneratorRcc::SettingsFileRead()
// This triggers a full rebuild on the next run if the current
// build is aborted before writing the current settings in the end.
if (SettingsChanged_) {
FileSys().FileWrite(GeneratorT::RCC, SettingsFile_, "");
FileSys().FileWrite(GenT::RCC, SettingsFile_, "");
}
} else {
SettingsChanged_ = true;
......@@ -328,15 +326,14 @@ void cmQtAutoGeneratorRcc::SettingsFileWrite()
// Only write if any setting changed
if (SettingsChanged_) {
if (Log().Verbose()) {
Log().Info(GeneratorT::RCC,
"Writing settings file " + Quoted(SettingsFile_));
Log().Info(GenT::RCC, "Writing settings file " + Quoted(SettingsFile_));
}
// Write settings file
std::string content = "rcc:";
content += SettingsString_;
content += '\n';
if (!FileSys().FileWrite(GeneratorT::RCC, SettingsFile_, content)) {
Log().ErrorFile(GeneratorT::RCC, SettingsFile_,
if (!FileSys().FileWrite(GenT::RCC, SettingsFile_, content)) {
Log().ErrorFile(GenT::RCC, SettingsFile_,
"Settings file writing failed");
// Remove old settings file to trigger a full rebuild on the next run
FileSys().FileRemove(SettingsFile_);
......@@ -360,7 +357,7 @@ bool cmQtAutoGeneratorRcc::TestQrcRccFiles()
reason += " from its source file ";
reason += Quoted(QrcFile_);
reason += " because it doesn't exist";
Log().Info(GeneratorT::RCC, reason);
Log().Info(GenT::RCC, reason);
}
Generate_ = true;
return Generate_;
......@@ -374,7 +371,7 @@ bool cmQtAutoGeneratorRcc::TestQrcRccFiles()
reason += " from ";
reason += Quoted(QrcFile_);
reason += " because the RCC settings changed";
Log().Info(GeneratorT::RCC, reason);
Log().Info(GenT::RCC, reason);
}
Generate_ = true;
return Generate_;
......@@ -387,7 +384,7 @@ bool cmQtAutoGeneratorRcc::TestQrcRccFiles()
std::string error;
isOlder = FileSys().FileIsOlderThan(RccFileOutput_, QrcFile_, &error);
if (!error.empty()) {
Log().ErrorFile(GeneratorT::RCC, QrcFile_, error);
Log().ErrorFile(GenT::RCC, QrcFile_, error);
Error_ = true;
}
}
......@@ -397,7 +394,7 @@ bool cmQtAutoGeneratorRcc::TestQrcRccFiles()
reason += Quoted(RccFileOutput_);
reason += " because it is older than ";
reason += Quoted(QrcFile_);
Log().Info(GeneratorT::RCC, reason);
Log().Info(GenT::RCC, reason);
}
Generate_ = true;
}
......@@ -424,12 +421,11 @@ bool cmQtAutoGeneratorRcc::TestResourcesRead()
std::string parseError;
if (!RccListParseOutput(ProcessResult_.StdOut, ProcessResult_.StdErr,
Inputs_, parseError)) {
Log().ErrorFile(GeneratorT::RCC, QrcFile_, parseError);
Log().ErrorFile(GenT::RCC, QrcFile_, parseError);
Error_ = true;
}
} else {
Log().ErrorFile(GeneratorT::RCC, QrcFile_,
ProcessResult_.ErrorMessage);
Log().ErrorFile(GenT::RCC, QrcFile_, ProcessResult_.ErrorMessage);
Error_ = true;
}
// Clean up
......@@ -457,7 +453,7 @@ bool cmQtAutoGeneratorRcc::TestResourcesRead()
// rcc does not support the --list command.
// Read the qrc file content and parse it.
std::string qrcContent;
if (FileSys().FileRead(GeneratorT::RCC, qrcContent, QrcFile_)) {
if (FileSys().FileRead(GenT::RCC, qrcContent, QrcFile_)) {
RccListParseContent(qrcContent, Inputs_);
}
}
......@@ -483,7 +479,7 @@ bool cmQtAutoGeneratorRcc::TestResources()
error = "Could not find the resource file\n ";
error += Quoted(resFile);
error += '\n';
Log().ErrorFile(GeneratorT::RCC, QrcFile_, error);
Log().ErrorFile(GenT::RCC, QrcFile_, error);
Error_ = true;
break;
}
......@@ -496,14 +492,14 @@ bool cmQtAutoGeneratorRcc::TestResources()
reason += Quoted(QrcFile_);
reason += " because it is older than ";
reason += Quoted(resFile);
Log().Info(GeneratorT::RCC, reason);
Log().Info(GenT::RCC, reason);
}
Generate_ = true;
break;
}
// Print error and break on demand
if (!error.empty()) {
Log().ErrorFile(GeneratorT::RCC, QrcFile_, error);
Log().ErrorFile(GenT::RCC, QrcFile_, error);
Error_ = true;
break;
}
......@@ -522,7 +518,7 @@ void cmQtAutoGeneratorRcc::TestInfoFile()
std::string error;
isOlder = FileSys().FileIsOlderThan(RccFileOutput_, InfoFile(), &error);
if (!error.empty()) {
Log().ErrorFile(GeneratorT::RCC, QrcFile_, error);
Log().ErrorFile(GenT::RCC, QrcFile_, error);
Error_ = true;
}
}
......@@ -532,7 +528,7 @@ void cmQtAutoGeneratorRcc::TestInfoFile()
reason += Quoted(RccFileOutput_);
reason += " because it is older than ";
reason += Quoted(InfoFile());
Log().Info(GeneratorT::RCC, reason);
Log().Info(GenT::RCC, reason);
}
// Touch build file
FileSys().Touch(RccFileOutput_);
......@@ -544,7 +540,7 @@ void cmQtAutoGeneratorRcc::TestInfoFile()
void cmQtAutoGeneratorRcc::GenerateParentDir()
{
// Make sure the parent directory exists
if (!FileSys().MakeParentDirectory(GeneratorT::RCC, RccFileOutput_)) {
if (!FileSys().MakeParentDirectory(GenT::RCC, RccFileOutput_)) {
Error_ = true;
}
}
......@@ -567,7 +563,7 @@ bool cmQtAutoGeneratorRcc::GenerateRcc()
// Rcc process success
// Print rcc output
if (!ProcessResult_.StdOut.empty()) {
Log().Info(GeneratorT::RCC, ProcessResult_.StdOut);
Log().Info(GenT::RCC, ProcessResult_.StdOut);
}
BuildFileChanged_ = true;
} else {
......@@ -581,7 +577,7 @@ bool cmQtAutoGeneratorRcc::GenerateRcc()
emsg += "\n";
emsg += ProcessResult_.ErrorMessage;
}
Log().ErrorCommand(GeneratorT::RCC, emsg, Process_->Setup().Command,
Log().ErrorCommand(GenT::RCC, emsg, Process_->Setup().Command,
ProcessResult_.StdOut);
}
FileSys().FileRemove(RccFileOutput_);
......@@ -625,19 +621,17 @@ void cmQtAutoGeneratorRcc::GenerateWrapper()
if (FileSys().FileDiffers(RccFilePublic_, content)) {
// Write new wrapper file
if (Log().Verbose()) {
Log().Info(GeneratorT::RCC,
"Generating RCC wrapper file " + RccFilePublic_);
Log().Info(GenT::RCC, "Generating RCC wrapper file " + RccFilePublic_);
}
if (!FileSys().FileWrite(GeneratorT::RCC, RccFilePublic_, content)) {
Log().ErrorFile(GeneratorT::RCC, RccFilePublic_,
if (!FileSys().FileWrite(GenT::RCC, RccFilePublic_, content)) {
Log().ErrorFile(GenT::RCC, RccFilePublic_,
"RCC wrapper file writing failed");
Error_ = true;
}
} else if (BuildFileChanged_) {
// Just touch the wrapper file
if (Log().Verbose()) {
Log().Info(GeneratorT::RCC,
"Touching RCC wrapper file " + RccFilePublic_);
Log().Info(GenT::RCC, "Touching RCC wrapper file " + RccFilePublic_);
}
FileSys().Touch(RccFilePublic_);
}
......@@ -653,7 +647,7 @@ bool cmQtAutoGeneratorRcc::StartProcess(
std::string msg = "Running command:\n";
msg += QuotedCommand(command);
msg += '\n';
Log().Info(GeneratorT::RCC, msg);
Log().Info(GenT::RCC, msg);
}
// Create process handler
......@@ -661,7 +655,7 @@ bool cmQtAutoGeneratorRcc::StartProcess(
Process_->setup(&ProcessResult_, mergedOutput, command, workingDirectory);
// Start process
if (!Process_->start(UVLoop(), [this] { UVRequest().send(); })) {
Log().ErrorFile(GeneratorT::RCC, QrcFile_, ProcessResult_.ErrorMessage);
Log().ErrorFile(GenT::RCC, QrcFile_, ProcessResult_.ErrorMessage);
Error_ = true;
// Clean up
Process_.reset();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment