From 52e22c12f5e11e19f4c8295cd1a3b3cbbafc8b8d Mon Sep 17 00:00:00 2001 From: Rene Rivera Date: Sat, 18 Sep 2004 18:36:33 +0000 Subject: [PATCH] Fix bad selection of dependents when rules in the targets change the requirements. [SVN r25196] --- v1/boost-base.jam | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/v1/boost-base.jam b/v1/boost-base.jam index 6da1a91b2..c46653e76 100644 --- a/v1/boost-base.jam +++ b/v1/boost-base.jam @@ -1562,6 +1562,7 @@ rule find-compatible-subvariant ( main-target : toolset variant : dependent-simp [ intersection $(sv-request) : $(build-requests) ] ; sv-build ?= "" ; local BUILD = $(variant) [ split-path $(sv-build) ] ; + local gTARGET_DEFAULT_BUILD($(main-target)) = ; # the full subvariant to build... local subvariant = [ expand-target-subvariants $(main-target) : $(variant) : $(toolset) ] ; @@ -1569,6 +1570,9 @@ rule find-compatible-subvariant ( main-target : toolset variant : dependent-simp split-target-subvariant sv-target sv-properties sv-toolset sv-variant : $(subvariant) ; local sv-overrides = [ difference $(dependent-simple-properties) : [ select-gristed $(sv-properties) ] ] ; + sv-overrides += + [ get-properties + [ difference $(dependent-simple-properties:G) : $(sv-overrides:G) ] : $(sv-properties) ] ; if ! $(gTARGET_TYPE($(main-target))) { @@ -1583,7 +1587,8 @@ rule find-compatible-subvariant ( main-target : toolset variant : dependent-simp for local sv-override in $(override-conflicts) { local sv-required = [ get-values $(sv-override:G) : $(sv-properties) ] ; - if ! [ is-link-compatible $(sv-override:G) : $(sv-override:G=) : $(sv-required) ] + if $(sv-override:G=) != $(sv-required) && + ! [ is-link-compatible $(sv-override:G) : $(sv-override:G=) : $(sv-required) ] { EXIT $(main-target): required property $(sv-override:G)$(sv-required) incompatible with $(sv-override) ;