|
|
@@ -2167,22 +2167,23 @@ void cmQtAutoMocUicT::JobCompileUicT::Process()
|
|
|
|
|
|
void cmQtAutoMocUicT::JobMocsCompilationT::Process()
|
|
|
{
|
|
|
+ std::string const& compAbs = this->MocConst().CompFileAbs;
|
|
|
+
|
|
|
// Compose mocs compilation file content
|
|
|
std::string content =
|
|
|
"// This file is autogenerated. Changes will be overwritten.\n";
|
|
|
|
|
|
if (this->MocEval().CompFiles.empty()) {
|
|
|
// Placeholder content
|
|
|
+ cmCryptoHash hash(cmCryptoHash::AlgoSHA256);
|
|
|
+ const std::string hashedPath = hash.HashString(compAbs);
|
|
|
+ const std::string functionName =
|
|
|
+ "cmake_automoc_silence_linker_warning" + hashedPath;
|
|
|
+
|
|
|
content += "// No files found that require moc or the moc files are "
|
|
|
"included\n"
|
|
|
- "struct cmake_automoc_silence_linker_warning{\n"
|
|
|
- " virtual ~cmake_automoc_silence_linker_warning();\n"
|
|
|
- "};\n"
|
|
|
- "\n"
|
|
|
- "inline "
|
|
|
- "cmake_automoc_silence_linker_warning::"
|
|
|
- "~cmake_automoc_silence_linker_warning()\n"
|
|
|
- "{}\n";
|
|
|
+ "void " +
|
|
|
+ functionName + "() {}\n";
|
|
|
} else {
|
|
|
// Valid content
|
|
|
const bool mc = this->BaseConst().MultiConfig;
|
|
|
@@ -2191,7 +2192,6 @@ void cmQtAutoMocUicT::JobMocsCompilationT::Process()
|
|
|
content += cmWrap(wrapFront, this->MocEval().CompFiles, wrapBack, "");
|
|
|
}
|
|
|
|
|
|
- std::string const& compAbs = this->MocConst().CompFileAbs;
|
|
|
if (cmQtAutoGenerator::FileDiffers(compAbs, content)) {
|
|
|
// Actually write mocs compilation file
|
|
|
if (this->Log().Verbose()) {
|