Boost logo

Boost-Build :

Subject: Re: [Boost-build] feature, properties, variants, and all the rest
From: Stefan Seefeld (stefan_at_[hidden])
Date: 2017-08-03 19:14:34


On 01.08.2017 22:41, Steven Watanabe via Boost-build wrote:
> AMDG
>
> On 08/01/2017 08:24 PM, Stefan Seefeld via Boost-build wrote:
>> On 29.07.2017 11:24, Steven Watanabe via Boost-build wrote:
>>> obj A : a.cpp : : <include>/a/path ;
>>> obj B : b.cpp : [ check-target-builds A : <use>A ] ;
>>> exe C : C.cpp : [ check-target-builds B : <use>B ]
>>>
>>> Now, when building C, it will go something like this:
>>> - Building C
>>> - Building B from check-target-builds
>>> - Building A from check-target builds
>>> - A builds successfully
>>> <snip>
>> You start the enumeration of steps with "building C", though there is a
>> whole lot going on before that: The dependency graph needs to be
>> instantiated first.
> Ah. There's a bit of ambiguity in the
> terminology. "Building C" means to
> generate the dependency graph. On the
> other hand, "A/B builds successfully"
> indicates both generating the graph and
> successfully updating the targets.

OK, I see. Thinking this through a little, I run into some circular
dependency, though, so I wonder how you solve this:
The user declares target 'C'. Once it is built, it uses a "bound name"
corresponding to the actual file being generated. However, that bound
name can only be found in the process of building the dependency graph
(specifically, by identifying the tool used to build it). So, how can
you establish the "outline" of the dependency graph with 'C' being the
final target, when it doesn't even have a name yet ?

Thanks,
        Stefan

-- 
      ...ich hab' noch einen Koffer in Berlin...

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