mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-23 15:38:52 -06:00
automoc: avoid compiler warnings in linker-warning-silencing code
Revise the code added by !7296 (merged). Make cmake_automoc_silence_linker_warning less warning-y. Fix weak-tables clang warning and copyable-polymorph clazy warning. Fixes: #23823
This commit is contained in:
@@ -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()) {
|
||||
|
||||
Reference in New Issue
Block a user