|
Boost-Build : |
From: Mark Evans (evans_mark_at_[hidden])
Date: 2006-04-27 17:56:49
I hate to burn precious bandwidth, but...
To shed a little more light on the problem with install... I was wrong about this having worked before recent changes. The problem occurs when there are multiple invocations of stage.install, as below:
install dummy : $(include-tree)
: <install-source-root>.. <conditional>@hss.set-install-base ;
install dummy : $(dist-tree)
: <install-source-root>.. <conditional>@hss.set-install-base ;
There is no problem if the second call to install is removed. Or if I change dummy to dummy1 in the second invocation, things work.
The error message displayed when dummy was repeated (above) was:
error: No best alternative for ../../../../HSS3.0/HSS_ALL/AFC/Source/dummy
next alternative: required properties: (empty)
matched
next alternative: required properties: (empty)
matched
The $(dist-tree) didn''t get installed.
The test case that triggered the traceback that I reported before was:
install dummy : $(targets) :
: <conditional>@hss.set-install-base ;
Oops: there's an extra colon in there! Pilot error. This produces:
/cygdrive/c/mse/proj/boost-build/build/targets.jam:576: in object(main-target)@317.add-alternative from module object(main-target)@317
error: default build must be identical in all alternatives
error: main target is ../../../../HSS3.0/HSS_ALL/AFC/Source/dummy
error: with <conditional>@hss.set-install-base
error: differing from previous default build
/cygdrive/c/mse/proj/boost-build/build/targets.jam:453: in build-main-targets from module object(project-target)@89
/cygdrive/c/mse/proj/boost-build/build/targets.jam:268: in targets-to-build from module object(project-target)@89
/cygdrive/c/mse/proj/boost-build/build/targets.jam:250: in object(project-target)@89.generate from module object(project-target)@89
/cygdrive/c/mse/proj/boost-build/build-system.jam:296: in load from module build-system
....
So the only real problem is when the same name is passed as arg[1] to install.
To further simplify the test case that produces the error, I tried:
install dist : Jamfile ;
install dist : bar.h ;
This gets the error:
error: No best alternative for ./dist
next alternative: required properties: (empty)
matched
next alternative: required properties: (empty)
matched
The upshot for me, using <conditional>, is to make the dummy arg[1] arguments of install unique. I can live with this workaround but hopefully there's a better solution to be had.
Thanks,
Mark
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