|
Boost-Build : |
From: Khassapov, Alex (Alex.Khassapov_at_[hidden])
Date: 2008-04-02 02:26:54
Thanks again, I've done this aready, and I will try the code you
suggested :-)
-----Original Message-----
From: boost-build-bounces_at_[hidden]
[mailto:boost-build-bounces_at_[hidden]] On Behalf Of Vladimir Prus
Sent: Wednesday, 2 April 2008 3:41 PM
To: Boost.Build developer's and user's list
Subject: Re: [Boost-build] dtrace success
On Wednesday 02 April 2008 04:14:24 Khassapov, Alex wrote:
> Thanks to Volodya, I have dtrace generator working!
Ah, I see you've solved the duplicate target issue by explicitly
creating objs and then passing them on EXE generator.
I was going to sketch some code to make that unnecessary, but that was
going to be hacking for the time being.
> The generator produces an executable modified by dtrace. Now I
realised
> that we also need a dtrace library generator. I could simply copy and
> modify the code from dtarce.jam (attached), but I wonder how to do it
> properly (bjam way)?
Well, I don't think "proper" way here is anyway different than in any
language.
I think you can extract most of the code into a separate function, and
then
the body of the 'run' method will be just:
return [ generators.construct $(project) $(name)
: EXE : $(property-set) : $(.libs)
[ process-objs ..... ] ] ;
and the lib generator would do the same. In fact, to make things even
less
copy-pasted:
1. Define the generators __init__ rule as:
rule __init__ ( * : * )
{
generator.__init__ $(1) : $(2) : $(3) ;
self.supertype = $(4) ;
}
2. Instead of hardcoding EXE, use
$(self.supertype)
3. Declare two generators like:
generators.register [ new dtrace-binary-generator dtrace.binary
: : EXE : DTRACE_EXE ] ;
generators.register [ new dtrace-binary-generator dtrace.binary
: : LIB : DTRACE_LIB ] ;
But I think that starting with two generators, and a common function
extracted from current
'run' method should be fine.
- Volodya
_______________________________________________
Unsubscribe & other changes:
http://lists.boost.org/mailman/listinfo.cgi/boost-build
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