cmake 3.9 breaks compiling kconfig (and dbus adaptors/interfaces)
David Faure
faure at kde.org
Sun Jul 2 18:11:18 UTC 2017
On vendredi 30 juin 2017 15:28:50 CEST Sebastian Holtermann wrote:
> Hi David.
>
> >> I think the trouble comes from mixing AUTOMOC with qt5_generate_moc. The
> >> moc file is generated twice
> >>
> >> 1. By AUTOMOC:
> >> /d/kde/build/5/frameworks/kconfig/autotests/kconfig_compiler/test_signal_
> >> aut ogen/EJRQKI7XPS/moc_test_signal.cpp
> >>
> >> 2. By qt5_generate_moc:
> >> /d/kde/build/5/frameworks/kconfig/autotests/kconfig_compiler/test_signal.
> >> moc>
> > The code says:
> > qt5_generate_moc(${_header_FILE} ${_moc_FILE})
> >
> > set_property(SOURCE ${_src_FILE} PROPERTY SKIP_AUTOMOC TRUE) # don't
> > run automoc on this file>
> > so it souds like SKIP_AUTOMOC is broken?
> >
> >> Does this happen with CMake 3.8.2 as well?
> >
> > It all builds fine with CMake 3.8.2, I just retried.
>
> Meanwhile I was able to reproduce the issue.
> At first I thought SKIP_AUTOMOC was broken, too,
> but I could not find a serious flaw there.
>
> I think the problem is that CMake 3.9 supports AUTOMOC on GENERATED
> files for the first time.
> Some headers in the KDE test cases *are* GENERATED and therefore used
> to be ignored by AUTOMOC - until now.
> A solution on the KDE side might be to enable SKIP_AUTOMOC on the
> respective headers.
>
> Well, the attached patch fixes the issue on my system.
Thanks, I have pushed the patch for KConfig.
For the record, any use of QT5_ADD_DBUS_INTERFACE or QT5_ADD_DBUS_ADAPTOR
also leads to double-definitions of moc classes, I submitted a fix for Qt at
https://codereview.qt-project.org/199038
I hope cmake 3.9 doesn't get released too fast...
--
David Faure, faure at kde.org, http://www.davidfaure.fr
Working on KDE Frameworks 5
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Fix-for-CMake-3.9.patch
Type: text/x-patch
Size: 930 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-buildsystem/attachments/20170702/ad1c2e21/attachment.bin>
More information about the Kde-buildsystem
mailing list