Commit 4a9daae4 authored by Tim Blechmann's avatar Tim Blechmann
Browse files

automoc: silence linker warning on macos

when an empty `mocs_compilation.cpp` is included in a static library,
the macos linker emits a warning:
```
/Applications/Xcode13.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib:
file: path/To/Library.a(mocs_compilation.cpp.o) has no symbols
```

we therefore generate a globally visible weak symbol in the form of a
virtual function table
parent 0b305682
......@@ -2175,7 +2175,14 @@ void cmQtAutoMocUicT::JobMocsCompilationT::Process()
// Placeholder content
content += "// No files found that require moc or the moc files are "
"included\n"
"enum some_compilers { need_more_than_nothing };\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";
} else {
// Valid content
const bool mc = this->BaseConst().MultiConfig;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment