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

Alexander Neundorf neundorf at kde.org
Thu Jul 5 12:20:56 EDT 2012


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=510f578f8b53858fbb541c
> > 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.

Alex

P.S. I'll be offline for the following two weeks



More information about the cmake-developers mailing list