Subject: Re: [Boost-build] <implicit-dependency> on generated header does not add include path
From: Samuel Debionne (samuel.debionne_at_[hidden])
Date: 2014-04-18 06:09:12
I think I have found out what the problem is.
The run rule documentation (generators.jam) states that :
# We do not run composing generators if no name is specified. The reason
# is that composing generator combines several targets, which can have
# different names, and it cannot decide which name to give for produced
# target. Therefore, the name must be passed.
# This in effect, means that composing generators are runnable only at
# the top-level of a transformation graph, or if their name is passed
# explicitly. Thus, we dissallow composing generators in the middle. For
# example, the transformation CPP -> OBJ -> STATIC_LIB -> RSP -> EXE
# will not be allowed as the OBJ -> STATIC_LIB generator is composing.
so generating the library target directly is not working. A quick
workaround is to generated the cpp first :
cpp src : generated.foo generated.bar ;
lib generated : src ;
Le 18/04/2014 09:05, Samuel Debionne a écrit :
>> It seems that the issue happens only with combining generators. In the
>> included (failing) test case, if the foo generator is register with
>> register.standard it's working fine. if register-combining is used
>> instead then it fails (include file not found).
> I did a quick inspection of the build using --debug-building with both a
> standard an a combining generators. It seems that the
> <implicit-dependency> property on the app target is missing (lost) when
> using the combining generators.
> IOW, with a standard generator I get
> <implicit-dependency>object(file-target)@204 build properties and that
> property does include the build path.
> I have been looking at generators.jam and targets.jam to see why I get
> different results depending on the generator class but any idea where I
> should be searching are welcomed !
> 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