[cmake-developers] Use OBJECT_DEPENDS in qt4_generate_moc() ?

Alexander Neundorf neundorf at kde.org
Fri Jul 27 16:27:20 EDT 2012


On Thursday 05 July 2012, David Cole wrote:
> On Thu, Jul 5, 2012 at 12:29 PM, Clinton Stimpson <clinton at elemtech.com> 
wrote:
> > On Thursday, July 05, 2012 06:20:56 PM Alexander Neundorf wrote:
> >> On Thursday, 5. July 2012 17:37:21 Clinton Stimpson wrote:
> >> > On Friday, June 15, 2012 09:56:51 PM Alexander Neundorf wrote:
> >> > > Hi,
> >> > > 
> >> > > attached is a small patch which sets the OBJECT_DEPENDS  property of
> >> > > a
> >> > > moced file to the generated moc file.
> >> > > This has the effect that before the cpp file is built, moc has been
> >> > > run
> >> > > on it. We have that in KDE's version of qt4_generate_moc() this way
> >> > > since 2006 and it works for us.
> >> > > In cmake's version, it was removed January 11th 2008, the removed
> >> > > call to MACRO_ADD_FILE_DEPENDENCIES():
> >> > > http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=510f578f8b53858fb
> >> > > b541c 4e7 e4731de9bfbd483
> >> > > 
> >> > > Now since we are trying to get rid of our custom stuff in KDE, we
> >> > > hit
> >> > > that issue when trying to build parts of KDE with FindQt4.cmake from
> >> > > cmake.
> >> > > 
> >> > > Do you remember why this line was removed ?
> >> > > What do you think about adding it again, as the attached patch does
> >> > > ?
> >> > > 
> >> > > Alex
> >> > 
> >> > It was probably removed because I thought add_custom_command() already
> >> > added the needed dependency information.
> >> > 
> >> > It should already have this:
> >> > mocable.h -> moc_mocable.cpp ->  moc_mocable.o
> >> 
> >> This works if the generated moc file is listed as source file for a
> >> target. In several places we did not do this, and relied instead on the
> >> OBJECT_DEPENDS.
> >> Ahh, this was in places where the moc file is generated from a cpp file,
> >> which includes the moc file.
> >> In those cases the OBJECT_DEPENDS makes it work.
> >> 
> >> We fixed this in the meantime by adding the generated moc file to the
> >> source list (which is not too bad, since the developer explicitely
> >> names the moc file, so it is ok).
> >> 
> >> So, I would like to have that dependency, but I'm unsure whether it
> >> might have any unwanted side effects.
> > 
> > Ah, so for the case
> > mocable.h -> mocable.moc -> mocable.cpp (includes mocable.moc)
> > the mocable.moc is not listed in the sources of the target.
> > 
> > I can't think of any possible unwanted side effects.
> > I agree that we need to have this patch.
> > 
> > --
> > Clinton Stimpson
> > Elemental Technologies, Inc
> > Computational Simulation Software, LLC
> > www.csimsoft.com
> > --
> > 
> > Powered by www.kitware.com
> > 
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> > 
> > Please keep messages on-topic and check the CMake FAQ at:
> > http://www.cmake.org/Wiki/CMake_FAQ
> > 
> > Follow this link to subscribe/unsubscribe:
> > http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers
> 
> If somebody pushes this to 'next' today or tomorrow, I'll make sure we
> can get it into 2.8.9-rc2.

Too late now for 2.8.9 ?

Alex

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20120727/a7fcfdde/attachment.html>


More information about the cmake-developers mailing list