diff options
author | Tim Blechmann <tim@klingt.org> | 2022-05-25 02:36:18 (GMT) |
---|---|---|
committer | Tim Blechmann <tim@klingt.org> | 2022-06-01 04:12:08 (GMT) |
commit | 4a9daae4832de862ee0f82e13784a93dcf5fafbe (patch) | |
tree | 3c79bab444bd69a1e534a5d68bdfff0142a933af | |
parent | 0b3056821929646a0b9394c95dbdcc1482a18e89 (diff) | |
download | CMake-4a9daae4832de862ee0f82e13784a93dcf5fafbe.zip CMake-4a9daae4832de862ee0f82e13784a93dcf5fafbe.tar.gz CMake-4a9daae4832de862ee0f82e13784a93dcf5fafbe.tar.bz2 |
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
-rw-r--r-- | Source/cmQtAutoMocUic.cxx | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/Source/cmQtAutoMocUic.cxx b/Source/cmQtAutoMocUic.cxx index 0d38dfb..6e8ada1 100644 --- a/Source/cmQtAutoMocUic.cxx +++ b/Source/cmQtAutoMocUic.cxx @@ -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; |