summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmQtAutomoc.cxx29
-rw-r--r--Source/cmQtAutomoc.h5
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;