diff options
-rw-r--r-- | Source/cmQtAutomoc.cxx | 29 | ||||
-rw-r--r-- | Source/cmQtAutomoc.h | 5 |
2 files changed, 28 insertions, 6 deletions
diff --git a/Source/cmQtAutomoc.cxx b/Source/cmQtAutomoc.cxx index 65ecdf7..71feffd 100644 --- a/Source/cmQtAutomoc.cxx +++ b/Source/cmQtAutomoc.cxx @@ -321,12 +321,31 @@ bool cmQtAutomoc::ReadAutomocInfoFile(cmMakefile* makefile, this->ProjectSourceDir = makefile->GetSafeDefinition("AM_CMAKE_SOURCE_DIR"); this->TargetName = makefile->GetSafeDefinition("AM_TARGET_NAME"); + this->CurrentCompileSettingsStr = this->MakeCompileSettingsString(makefile); + this->RelaxedMode = makefile->IsOn("AM_RELAXED_MODE"); return true; } +std::string cmQtAutomoc::MakeCompileSettingsString(cmMakefile* makefile) +{ + std::string s; + s += makefile->GetSafeDefinition("AM_MOC_DEFINITIONS"); + s += " ~~~ "; + s += makefile->GetSafeDefinition("AM_MOC_INCLUDES"); + s += " ~~~ "; + s += makefile->GetSafeDefinition("AM_MOC_OPTIONS"); + s += " ~~~ "; + s += makefile->IsOn("AM_CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE") ? "TRUE" + : "FALSE"; + s += " ~~~ "; + + return s; +} + + bool cmQtAutomoc::ReadOldMocDefinitionsFile(cmMakefile* makefile, const char* targetDirectory) { @@ -336,8 +355,8 @@ bool cmQtAutomoc::ReadOldMocDefinitionsFile(cmMakefile* makefile, if (makefile->ReadListFile(0, filename.c_str())) { - this->OldMocDefinitionsStr = - makefile->GetSafeDefinition("AM_OLD_MOC_DEFINITIONS"); + this->OldCompileSettingsStr = + makefile->GetSafeDefinition("AM_OLD_COMPILE_SETTINGS"); } return true; } @@ -352,9 +371,9 @@ void cmQtAutomoc::WriteOldMocDefinitionsFile(const char* targetDirectory) std::fstream outfile; outfile.open(filename.c_str(), std::ios::out | std::ios::trunc); - outfile << "set(AM_OLD_MOC_DEFINITIONS " + outfile << "set(AM_OLD_COMPILE_SETTINGS " << cmLocalGenerator::EscapeForCMake( - this->Join(this->MocDefinitions, ' ').c_str()) << ")\n"; + this->CurrentCompileSettingsStr.c_str()) << ")\n"; outfile.close(); } @@ -471,7 +490,7 @@ void cmQtAutomoc::Init() bool cmQtAutomoc::RunAutomoc() { if (!cmsys::SystemTools::FileExists(this->OutMocCppFilename.c_str()) - || (this->OldMocDefinitionsStr != this->Join(this->MocDefinitions, ' '))) + || (this->OldCompileSettingsStr != this->CurrentCompileSettingsStr)) { this->GenerateAll = true; } diff --git a/Source/cmQtAutomoc.h b/Source/cmQtAutomoc.h index 8cbbac1..f6d72e2 100644 --- a/Source/cmQtAutomoc.h +++ b/Source/cmQtAutomoc.h @@ -35,6 +35,8 @@ private: const char* targetDirectory); void WriteOldMocDefinitionsFile(const char* targetDirectory); + std::string MakeCompileSettingsString(cmMakefile* makefile); + bool RunAutomoc(); bool GenerateMoc(const std::string& sourceFile, const std::string& mocFileName); @@ -74,7 +76,8 @@ private: std::string ProjectSourceDir; std::string TargetName; - std::string OldMocDefinitionsStr; + std::string CurrentCompileSettingsStr; + std::string OldCompileSettingsStr; std::string OutMocCppFilename; std::list<std::string> MocIncludes; |