Merge topic 'AutomocRerunFix'
b001b6e fix #13494: rerun automoc also if include dirs or moc options change
This commit is contained in:
commit
a028fffaad
@ -321,12 +321,31 @@ bool cmQtAutomoc::ReadAutomocInfoFile(cmMakefile* makefile,
|
|||||||
this->ProjectSourceDir = makefile->GetSafeDefinition("AM_CMAKE_SOURCE_DIR");
|
this->ProjectSourceDir = makefile->GetSafeDefinition("AM_CMAKE_SOURCE_DIR");
|
||||||
this->TargetName = makefile->GetSafeDefinition("AM_TARGET_NAME");
|
this->TargetName = makefile->GetSafeDefinition("AM_TARGET_NAME");
|
||||||
|
|
||||||
|
this->CurrentCompileSettingsStr = this->MakeCompileSettingsString(makefile);
|
||||||
|
|
||||||
this->RelaxedMode = makefile->IsOn("AM_RELAXED_MODE");
|
this->RelaxedMode = makefile->IsOn("AM_RELAXED_MODE");
|
||||||
|
|
||||||
return true;
|
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,
|
bool cmQtAutomoc::ReadOldMocDefinitionsFile(cmMakefile* makefile,
|
||||||
const char* targetDirectory)
|
const char* targetDirectory)
|
||||||
{
|
{
|
||||||
@ -336,8 +355,8 @@ bool cmQtAutomoc::ReadOldMocDefinitionsFile(cmMakefile* makefile,
|
|||||||
|
|
||||||
if (makefile->ReadListFile(0, filename.c_str()))
|
if (makefile->ReadListFile(0, filename.c_str()))
|
||||||
{
|
{
|
||||||
this->OldMocDefinitionsStr =
|
this->OldCompileSettingsStr =
|
||||||
makefile->GetSafeDefinition("AM_OLD_MOC_DEFINITIONS");
|
makefile->GetSafeDefinition("AM_OLD_COMPILE_SETTINGS");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -352,9 +371,9 @@ void cmQtAutomoc::WriteOldMocDefinitionsFile(const char* targetDirectory)
|
|||||||
std::fstream outfile;
|
std::fstream outfile;
|
||||||
outfile.open(filename.c_str(),
|
outfile.open(filename.c_str(),
|
||||||
std::ios::out | std::ios::trunc);
|
std::ios::out | std::ios::trunc);
|
||||||
outfile << "set(AM_OLD_MOC_DEFINITIONS "
|
outfile << "set(AM_OLD_COMPILE_SETTINGS "
|
||||||
<< cmLocalGenerator::EscapeForCMake(
|
<< cmLocalGenerator::EscapeForCMake(
|
||||||
this->Join(this->MocDefinitions, ' ').c_str()) << ")\n";
|
this->CurrentCompileSettingsStr.c_str()) << ")\n";
|
||||||
|
|
||||||
outfile.close();
|
outfile.close();
|
||||||
}
|
}
|
||||||
@ -471,7 +490,7 @@ void cmQtAutomoc::Init()
|
|||||||
bool cmQtAutomoc::RunAutomoc()
|
bool cmQtAutomoc::RunAutomoc()
|
||||||
{
|
{
|
||||||
if (!cmsys::SystemTools::FileExists(this->OutMocCppFilename.c_str())
|
if (!cmsys::SystemTools::FileExists(this->OutMocCppFilename.c_str())
|
||||||
|| (this->OldMocDefinitionsStr != this->Join(this->MocDefinitions, ' ')))
|
|| (this->OldCompileSettingsStr != this->CurrentCompileSettingsStr))
|
||||||
{
|
{
|
||||||
this->GenerateAll = true;
|
this->GenerateAll = true;
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,8 @@ private:
|
|||||||
const char* targetDirectory);
|
const char* targetDirectory);
|
||||||
void WriteOldMocDefinitionsFile(const char* targetDirectory);
|
void WriteOldMocDefinitionsFile(const char* targetDirectory);
|
||||||
|
|
||||||
|
std::string MakeCompileSettingsString(cmMakefile* makefile);
|
||||||
|
|
||||||
bool RunAutomoc();
|
bool RunAutomoc();
|
||||||
bool GenerateMoc(const std::string& sourceFile,
|
bool GenerateMoc(const std::string& sourceFile,
|
||||||
const std::string& mocFileName);
|
const std::string& mocFileName);
|
||||||
@ -74,7 +76,8 @@ private:
|
|||||||
std::string ProjectSourceDir;
|
std::string ProjectSourceDir;
|
||||||
std::string TargetName;
|
std::string TargetName;
|
||||||
|
|
||||||
std::string OldMocDefinitionsStr;
|
std::string CurrentCompileSettingsStr;
|
||||||
|
std::string OldCompileSettingsStr;
|
||||||
|
|
||||||
std::string OutMocCppFilename;
|
std::string OutMocCppFilename;
|
||||||
std::list<std::string> MocIncludes;
|
std::list<std::string> MocIncludes;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user