libiris: Stop using qt_wrap_cpp()
ClosedPublic

Authored by rakuco on Oct 13 2019, 1:55 PM.

Details

Summary

The build system was currently both relying on CMake's AUTOMOC handling and
manually calling qt_wrap_cpp() for a few headers.

The former was causing the moc-generated code to go to
mocs_compilation.cpp, and the latter also caused the moc-generated
moc_*.cxx to be built. This resulted in the meta object code being built
twice, which is wrong, in the worst cause, cause linking problems.

Older LLD versions were affected per
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=228640

Drop qt_wrap_cpp() and include the missing moc files from the source code
and let CMake's automoc code handle everything transparently.

Test Plan

Everything built fine, and CMake stopped emitting the following warning:

Policy CMP0071 is not set: Let AUTOMOC and AUTOUIC process GENERATED files.
Run "cmake --help-policy CMP0071" for policy details.  Use the cmake_policy
command to set the policy and suppress this warning.

For compatibility, CMake is excluding the GENERATED source file(s):

  "/wrkdirs/usr/ports/net-im/kopete/work/.build/protocols/jabber/libiris/moc_xmpp_client.cxx"
  "/wrkdirs/usr/ports/net-im/kopete/work/.build/protocols/jabber/libiris/moc_xmpp.cxx"
  "/wrkdirs/usr/ports/net-im/kopete/work/.build/protocols/jabber/libiris/moc_xmpp_clientstream.cxx"
  "/wrkdirs/usr/ports/net-im/kopete/work/.build/protocols/jabber/libiris/moc_xmpp_stream.cxx"
  "/wrkdirs/usr/ports/net-im/kopete/work/.build/protocols/jabber/libiris/moc_td.cxx"
  "/wrkdirs/usr/ports/net-im/kopete/work/.build/protocols/jabber/libiris/moc_qjdnsshared_p.cxx"
  "/wrkdirs/usr/ports/net-im/kopete/work/.build/protocols/jabber/libiris/moc_qjdns.cxx"
  "/wrkdirs/usr/ports/net-im/kopete/work/.build/protocols/jabber/libiris/moc_qjdnsshared.cxx"

from processing by AUTOMOC.  If any of the files should be processed, set
CMP0071 to NEW.  If any of the files should not be processed, explicitly
exclude them by setting the source file property SKIP_AUTOMOC:

  set_property(SOURCE file.h PROPERTY SKIP_AUTOMOC ON)

Diff Detail

Repository
R434 Kopete
Branch
libiris-automoc
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 17647
Build 17665: arc lint + arc unit
rakuco created this revision.Oct 13 2019, 1:55 PM
Restricted Application added a project: Kopete. · View Herald TranscriptOct 13 2019, 1:55 PM
Restricted Application added a subscriber: kopete-devel. · View Herald Transcript
rakuco requested review of this revision.Oct 13 2019, 1:55 PM
apol accepted this revision.Oct 13 2019, 11:05 PM
This revision is now accepted and ready to land.Oct 13 2019, 11:05 PM
rakuco closed this revision.Oct 18 2019, 7:18 PM