Boost logo

Boost-Build :

From: quarendont (tomq_at_[hidden])
Date: 2004-12-23 08:02:43


Excellent. That's just what I need.

--- In jamboost_at_[hidden], Vladimir Prus <ghost_at_c...> wrote:
> On Thursday 23 December 2004 15:13, quarendont wrote:
>
> > I'm trying to use the stage rule. So in my Jamfiles (say in
> > src\exe1\Jamfile) I have
> >
> > exe exe1 : $(SOURCES) ;
> > stage bin : exe1 ;
> >
> > This gets me a bin directory in the src\exe1 directory with a copy of
> > exe1.exe in it. I want to simply rebase that to make it come out in
> > the projectroot\dist directory in much the same way that setting the
> > build-dir property does for the .obj files.
> >
> > I've tried setting the <location> property on the project rule in the
> > Jamfile in the projectroot\ directory to dist/bin, and this almost
> > works. However all stage rules end up putting files in the same
> > directory, I can't put some files in bin, and some in lib and so on.
> > Clearly I could just put <include>../../dist/bin on the stage rules,
> > but I was hoping that there would be a way of using the stage name
> > (i.e the "bin" in "stage bin : ...") bit taking it relative to a
> > directory other that the current project directory.
> >
> > Is there an accepted way to do this?
>
> The way I do it it to have one top-level "stage" rules, one which
installs
> exes and another which installs libraries. If you want to specify
stage in
> each project, you can also define two targets.
>
> If that's no convenient enough, you can get away by putting this to
your
> top-level Jamfile (if using m10, this must be in project-root.jam):
>
> path-constant TOP : . ;
>
> rule install ( exes * : libs * )
> {
> stage install_exe : $(exes) : <location>$(TOP)/bin ;
> stage install_lib : $(exes) : <location>$(TOP)/lib ;
> }
>
> and using this "install" rule in every Jamfile.
>
> HTH,
> Volodya

 


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