Boost logo

Boost-Build :

Subject: Re: [Boost-build] One more issue with <embed-manifest> feature.
From: Alexey Pakhunov (alexeypa_at_[hidden])
Date: 2009-02-04 02:39:39


> Here, we have a target (EXE) that already went via virtual-target.register,
> we take its action, and add a new target to that action. And then, passing
> the extra target via virtual-target.register breaks things. I think the
> most straight-forward solution would be a new method for action class
> that replaces a target with another. So, the code would be:
>
> local t = [ class.new file-target $(name) : MANIFEST : $(project) : $(action) ] ;
> local tr = [ virtual-target.register $(t) ] ;
> $(action).replace-target $(t) : $(tr) ;
>
> What do you think?

This seems to work. I attached a patch that implements this. It also
generates the name of the manifest file differently:

            local name = [ $(result[0]).name ] ;
            ...
                local target = [ class.new file-target $(name) :
MANIFEST : $(project) : $(action) ] ;

$(name) will be "foobar.exe" or "foobar.dll" so the name of manifest
itself will be "foobar.exe.manifest" or "foobar.dll.manifest"

-- 
Best regards,
  Alexey Pakhunov.



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