|
Boost-Build : |
From: Juergen Hunold (hunold_at_[hidden])
Date: 2004-07-12 13:34:02
Hi Volodya !
On Monday 12 July 2004 15:35, Vladimir Prus wrote:
> Hi Jürgen,
> > (Way 2)
> > This is the way the Qt Library handles private implementations,
> > *sigh*
> Oh... the moc C++ source, not header. Wow.
Yes, indeed. But this approach solves some of the problems generated by
the "moc-approach". But I think thats OT here ;-))
> > And I'd like to have V2 Jamfiles for the upcoming Qt4 ;-))
>
> That would be cool.
Yep. I happily started coding Jamfiles for Qt-4-tp1 but then ran into
this moc issue...
> > So, I'm searching for a way to tell V2 that it should
> Hmm.... I think I can imagine a solution which create _moc virtual
> targets for all cpp files, creates real jam targets for them but does
> not add dependency from "all" to those targets. So, you don't even
> have to look for Q_OBJECT macro. If you see "#include b_moc.cpp" the
> created but unused moc target will be picked up.
Sounds good. But the #include's are typical
#include "qsomething.moc"
but this should be handled by the standard c/c++ scanner, which does not
look at the files extentions
> Before I go on thinking about the above solution, which might work
> but it a bit dirty, can you tell how Qt determines which sources to
> run though moc? Maybe, specifying explicit list is OK?
Of course. It is all easy if you use qmake, Trolltechs
makefile-generator.
qmake projects typically contain three lists:
a) headers
b) sources
c) ui-files from Designer
qmake then scans these files and builds a Makefile containing rules
and dependencies for all files which must be
a) run through uic
b) moc'ed
c) compiled
Files to be moc'ed must have a Q_OBJECT macro in them.
If I think about it, an explicit file list would be ok.
I think I must take a closer at qmake and see whether I can teach it to
generate Jamfiles as well. In this case a separate list of source to be
moc'ed would be good, too.
Yours,
Jürgen
-- * Dipl.-Math. Jürgen Hunold ! Institut für Verkehrswesen, Eisenbahnbau * voice: ++49 511 762-2529 ! und -betrieb, Universität Hannover * fax : ++49 511 762-3001 ! Appelstrasse 9a, D-30167 Hannover * hunold_at_[hidden] ! www.ive.uni-hannover.de
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk