Boost logo

Boost-Build :

Subject: Re: [Boost-build] [run] parameter containing the build directory - segmentation fault
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2016-10-10 10:47:00


AMDG

On 10/10/2016 08:29 AM, Raffi Enficiaud wrote:
>
> This is also what I understood. However when the "[run ] " is executed,
> the outputs are put to some folder, and I am interested in that folder.
>

You can't get the target folder at the top-level,
in the Jamfile, since it isn't determined at that
point. (There might even be more than one folder,
if you are building multiple configurations)

> Also, I go back to the 2nd question of my original post:
>
> """
> 2. is it possible to have those properties on the same declaration as
> the target itself? Something like
> run smoke-ts-static :
> --log_sink=$(some-target-name-0).build-dir/smoke-ts-sink.xml
> --log_format=XML : : : some-target-name-0
> """
>
> From what I understand, [run ] is creating a new target (I can have
> "ECHO [ $(to-return[1]).name ]" ) and its name is "some-target-name-0".
>
> Is is possible to extract some properties on the target at the location
> where [run ] is called? (something like lasy evaluation of the parameters)?
>

I think the easiest way is to use a conditional:

rule set-sink ( properties * )
{
  local ps = [ property-set.create $(properties) ] ;
  local path = [ $(ps).target-path ] ;
  return <testing.arg>--log-sink=$(path)/smoke-ts-sink.xml
         <testing.arg>--log-format=XML ;
}

Then, you can use <conditional>@set-sink in
the requirements of the test case.

In Christ,
Steven Watanabe


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