Ver código fonte

Merge topic 'automoc-silence-warnings' into release-3.24

844244ccdc automoc: avoid compiler warnings in linker-warning-silencing code

Acked-by: Kitware Robot <[email protected]>
Acked-by: buildbot <[email protected]>
Merge-request: !7558
Brad King 3 anos atrás
pai
commit
5bd618be66
1 arquivos alterados com 9 adições e 9 exclusões
  1. 9 9
      Source/cmQtAutoMocUic.cxx

+ 9 - 9
Source/cmQtAutoMocUic.cxx

@@ -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()) {