From: Mark Evans (evans_mark_at_[hidden])
Date: 2006-04-29 14:14:18
This is an observation of what seems like quirky behavior of the <conditional>@somerule feature.
I am trying to use stage.install in the following manner:
install dummy1 : $(some-files) : <conditional>set-install-loc <subdir>xxx ;
install dummy2 : $(other-files) : <conditional>set-install-loc <subdir>yyy ;
(I talked about the need for unique dummy[x] names in a different thread.)
The <subdir> feature is intended to be used by my set-install-loc rule to add subdir (xxx, yyy, etc.) to the path (which includes other stuff gotten dynamically).
rule set-install-loc ( properties * )
I was hoping that set-install-loc would be called separately for dummy1 and dummy2, but this is not the case. It gets invoked as follows:
1. $(properties) has no <location> attribute; has <subdir>xxx. Results are $(properties) <location>blah/blah/xxx
The next callback, I think, is made to ensure that properties are stable:
2. $(properties) has <location>blah/blah/xxx and <subdir>xxx. Results are $(properties)
There are no further callbacks to set-install-loc, as expected, for install dummy2, where I was hoping/expecting there to be no <location> attribute and <subdir>yyy.
The workaround is to have separate callback rules <conditional>@set-install-loc-xxx and <conditional>@set-install-loc-yyy that manage putting xxx and yyy subdirs in the install path.
FWIW and HTH someone else down the road,
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