|
Boost-Build : |
From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-05-14 00:24:56
Hi Trevor
[I'm moving this to jamboost mailing list, which is the right place for bjam
questions]
Trevor Taylor wrote:
> I set out to use Boost Jam to build my latest little experiment. I have
> some questions/comments:
>
> Why does it build everything into a target-specific subdirectory?
[...]
> exe a : $(a.cc) ....
> exe c : $(c.cc)
>
> But building a and c compiles c.cc twice (once into
> bin/a.exe/gcc/debug/runtime-link-dynamic/b.o and once into
> bin/c.exe/gcc/debug/runtime-link-dynamic/b.o
This is no longer so in Boost.Build V2. In fact, using the same source in
library and unit test program was my original motivation to change.
> I would have thought bin/gcc/debug/b.o would have been enough. Why would
> the b.o produced depend on which executable it was bound for? Why
> would it depend on wether it was bound for a dll or not?
In this case, it should not. In general, it could be possible for some cases:
exe a : a.cpp : <define>FOO ;
exe b : a.cpp : <define>BAR ;
Here, objects compiled with different defines are not necessary the same, so
they will be generated to directories specific to main targets. E.g you'll
have (in V2)
bin/gcc/debug/main-target-a/a.o
bin/gcc/debug/main-target-b/a.o
> Where are "compile and link flag" equivalents documented?
> --------------------------------------------------------
>
> I wanted to link against libxerces.a that I had built separately, but
> couldn't figure out how to specify the equivalent of -L/blah -lxerces.
Unfortunately, nowhere. We'll note this need for V2 docs. In V1, you'll
use <find-library> for -l and <library-path> feature for -L
> How does one add a rule for building C++ files from e.g. IDL?
> -------------------------------------------------------------
>
> In my case I am using Qt which needs me to run its "moc" compiler to
> generate a .cc from my .hh. I put in:
>
> rule moc
> {
> DEPENDS $(<) : $(>) ;
> }
> actions moc
> {
> "$(QTDIR)/bin/moc.exe" "-o" $(1) $(2)
> }
>
> moc mTasks.cc : Tasks.hh ;
>
> But somehow that resulted in either Boost Jam looking for something like
> bin/a.exe/gcc.../Tasks.hh or insisting on recompiling mTasks.cc
> everytime (bjam -d output suggested Tasks.hh didn't exist, when clearly
> it did).
Here, I can say only one thing: Boost.Build V2 already has support for QT:
both moc and uic tools. You migh want to look at "examples-v2/qt".
HTH,
Volodya
>
> Thanks for any help,
>
> Trevor
>
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
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