From 5bb997c24a7ba8b6f252cc7914858f5c12a543b6 Mon Sep 17 00:00:00 2001 From: Sebastian Holtermann Date: Wed, 15 Feb 2017 10:36:51 +0100 Subject: Autogen: Split moc compile options info string immediately --- Source/cmQtAutoGenerators.cxx | 23 +++++++++++------------ Source/cmQtAutoGenerators.h | 3 +-- 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/Source/cmQtAutoGenerators.cxx b/Source/cmQtAutoGenerators.cxx index 002e95b..ab9ca2c 100644 --- a/Source/cmQtAutoGenerators.cxx +++ b/Source/cmQtAutoGenerators.cxx @@ -335,8 +335,9 @@ bool cmQtAutoGenerators::ReadAutogenInfoFile( // - Moc cmSystemTools::ExpandListArgument(makefile->GetSafeDefinition("AM_SKIP_MOC"), this->SkipMoc); - this->MocInfoCompileDefinitions = - GetConfigDefinition(makefile, "AM_MOC_COMPILE_DEFINITIONS", config); + cmSystemTools::ExpandListArgument( + GetConfigDefinition(makefile, "AM_MOC_COMPILE_DEFINITIONS", config), + this->MocDefinitions); this->MocInfoIncludes = GetConfigDefinition(makefile, "AM_MOC_INCLUDES", config); this->MocInfoOptions = makefile->GetSafeDefinition("AM_MOC_OPTIONS"); @@ -433,7 +434,8 @@ void cmQtAutoGenerators::SettingsFileRead(cmMakefile* makefile, // Compose current settings strings if (this->MocEnabled()) { std::string& str = this->SettingsStringMoc; - str += this->MocInfoCompileDefinitions; + str += + cmOutputConverter::EscapeForCMake(cmJoin(this->MocDefinitions, ";")); str += " ~~~ "; str += this->MocInfoIncludes; str += " ~~~ "; @@ -531,13 +533,6 @@ void cmQtAutoGenerators::Init() this->ProjectSourceDir, this->ProjectBinaryDir); - std::vector cdefList; - cmSystemTools::ExpandListArgument(this->MocInfoCompileDefinitions, cdefList); - for (std::vector::const_iterator it = cdefList.begin(); - it != cdefList.end(); ++it) { - this->MocDefinitions.push_back("-D" + (*it)); - } - cmSystemTools::ExpandListArgument(this->MocInfoOptions, this->MocOptions); std::vector incPaths; @@ -1194,8 +1189,12 @@ bool cmQtAutoGenerators::MocGenerateFile(const std::string& sourceFile, cmd.push_back(this->MocExecutable); cmd.insert(cmd.end(), this->MocIncludes.begin(), this->MocIncludes.end()); - cmd.insert(cmd.end(), this->MocDefinitions.begin(), - this->MocDefinitions.end()); + // Add definitions + for (std::vector::const_iterator it = + this->MocDefinitions.begin(); + it != this->MocDefinitions.end(); ++it) { + cmd.push_back("-D" + (*it)); + } cmd.insert(cmd.end(), this->MocOptions.begin(), this->MocOptions.end()); #ifdef _WIN32 cmd.push_back("-DWIN32"); diff --git a/Source/cmQtAutoGenerators.h b/Source/cmQtAutoGenerators.h index b9c372e..c9c31fc 100644 --- a/Source/cmQtAutoGenerators.h +++ b/Source/cmQtAutoGenerators.h @@ -143,13 +143,12 @@ private: std::string SettingsStringRcc; // - Moc std::vector SkipMoc; - std::string MocInfoCompileDefinitions; std::string MocInfoIncludes; std::string MocInfoOptions; std::string OutMocCppFilenameRel; std::string OutMocCppFilenameAbs; std::list MocIncludes; - std::list MocDefinitions; + std::vector MocDefinitions; std::vector MocOptions; // - Uic std::vector SkipUic; -- cgit v0.12