make KDE4_AUTOMOC compatible to qmake

Alexander Neundorf neundorf at kde.org
Mon Jun 18 05:53:43 CEST 2007


On Saturday 16 June 2007 06:50, you wrote:
> On Tuesday 12 June 2007, Alexander Neundorf wrote:
> > Hi,
> >
> > On Saturday 09 June 2007 05:20, Matthias Kretz wrote:
> > > On Saturday 09 June 2007, Alexander Neundorf wrote:
> > > > On Friday 08 June 2007 05:07, Matthias Kretz wrote:
> > > > > On Friday 08 June 2007, Alexander Neundorf wrote:
> > > > > > Using OBJECT_DEPENDS works more or less, but not 100%.
> > > > > >
> > > > > :( Is this a bug in cmake or is it some corner case that
> > > > >
> > > > > add_library/add_executable works around?
> > > > >
> > > > > > IOW we have to stay with a non-source-file extension.
> > > > >
> > > > > How about the attached patch? It creates a new top-level target
> > > > > that depends on all moc custom commands and the library/executable
> > > > > target then depends on that moc target.
> > > > > I tried it with a clean kdelibs build and it created _all_ moc
> > > > > files before it started any compile job. I'm not sure why
> > > > > cmake/make does that but it's not really wrong either.
> > > > >
> > > > > A variation of the patch could be to check for .cpp files in
> > > > > _automoc_FILES and only then add this additional top-level target.
> > > > > Else do the same as before.
> > > >
> > > > I still have a patch here which moves the automoc test from
> > > > cmake-time to build time (i.e. faster cmake run)
> > > > This and your patch might fit together.
> > > > I have to get it up-to-date and then we can see whether they work
> > > > together. Please don't commit before.
> > >
> > > OK, then I'll revert my local moc include changes in phonon - otherwise
> > > I can't work on it anymore... The reason why I'd like to have it
> > > working soon is that Trolltech wants to be able to compile phonon using
> > > qmake (makes it easier for them to work on Windows and MacOS).
> >
> > attached you can find a modified KDE4Macros.cmake.
> > It creates for every target a automoc target, which executes an external
> > cmake script (kde4automoc.cmake), which does the actual parsing.
> > It seems to work here for me for kdelibs.
> >
> > In kde4automoc.cmake it should be easy to also search for moc_*.cpp
> > files.
>
> Yep. That was easy. :-) Patch attached.
>
> > Please give it a try and see how it works.
>
> So far it's been working great. I especially like that I don't have to

Good to hear :-)
So you didn't have any problems ?

> rerun cmake when something automoc related changes and the CMakeLists.txt
> files don't change (e.g. if you forgot to #include the moc file). There are
> many STATUS messages, but I guess you'll comment those out before
> committing to trunk?

I can do that.
I thought it would be nice if you see what's going on, but it#s probably a bit 
much.

Alex


More information about the Kde-buildsystem mailing list