2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-17 13:42:14 +00:00

When 'stage' is used with <traverse-dependencies>on, do not follow the <use>

property, since it's typically used when only headers are used.

* build/virtual-target.jam (subvariant.all-referenced-targets): Return
  the names of properties.
* tools/stage.jam (stage-target-class.collect-targets): Filter out <use>

Thanks to Jurgen Hunold for the bug report.


[SVN r26052]
This commit is contained in:
Vladimir Prus
2004-11-01 16:10:41 +00:00
parent 531b6ff80b
commit fb138e9ded
4 changed files with 42 additions and 5 deletions

View File

@@ -1091,17 +1091,19 @@ class subvariant
# Returns all targets referenced by this subvariant,
# either directly or indirectly, and
# either as sources, or as dependency properties.
# Targets referred with dependency property are returned a properties,
# not targets.
rule all-referenced-targets ( )
{
# Find directly referenced targets.
local deps = [ $(self.build-properties).dependency ] ;
local all-targets = $(self.sources) $(deps:G=) ;
local all-targets = $(self.sources) $(deps) ;
# Find other subvariants.
local r ;
for local t in $(all-targets)
{
r += [ $(t).creating-subvariant ] ;
r += [ $(t:G=).creating-subvariant ] ;
}
r = [ sequence.unique $(r) ] ;
for local s in $(r)

View File

@@ -233,7 +233,15 @@ class stage-target-class : basic-target
{
result += [ $(i).all-referenced-targets ] ;
}
result = [ sequence.unique $(result) ] ;
local result2 ;
for local r in $(result)
{
if $(r:G) != <use>
{
result2 += $(r:G=) ;
}
}
result = [ sequence.unique $(result2) ] ;
}
rule check-for-link-compatibility ( * : * )