Boost logo

Boost-Build :

Subject: [Boost-build] Path feature
From: Deane Yang (deane_at_[hidden])
Date: 2016-02-21 15:30:16


I'm confused by the following:

Suppose I declare in a *.jam file a target as follows:

type.register CS : cs ;
type.register CSEXE : exe ;

generators.register-composing csc.make-exe : CS : CSEXE ;
feature reference : : free path dependency ;
flags csc.make-exe CSREFERENCE <reference> ;

actions make-exe bind CSREFERENCE
{
  csc -target:exe -r:$(CSREFERENCE) -out:$(<) $(>)
}

rule link
{
  DEPENDS $(<) : [ on $(<) return $(CS_REFERENCE) ] ;
}

and a Jamfile that has this:

csexe test : test.cs
              : <reference>../distribution/shared.dll
              ;

and I do "b2 test" inside that directory

Naively, I would think that the action would expand to

csc target:exe -r:../distribution/shared.dll ....

which is what I want.

However, what I am really getting, based on the error messages is:

csc target:exe
-r:bin/darwin-4.2.1/release/address-model-64/threading-multi/../distribution/shared.dll
....

What am I doing wrong?



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