|
Boost-Build : |
From: Andre Genereux (andre_genereux01_at_[hidden])
Date: 2005-11-03 19:05:01
Consider the following directory structure:
src---|Jamroot
|
|---lib1---|Jamfile
| |World.h
| |World.cxx
| |
| |---lib2---|Jamfile
| |Hello.h
| |Hello.cxx
|
|---app---|Jamfile
|helloWorld.cxx
As you may guess, the lib Jamfiles contain lib targets, and the app
Jamfile contains an exe target.
I want to change the build directory of each one from bin to build
(for whatever reason). Thus, I place the following at the top of my
Jamfiles:
project proj-name
: build-dir build
;
The build-project for lib2 could also go in the lib1 Jamfile, the
effect is identical.
I expect this to do the following:
lib1 will be built in src/lib1/build/etc...
lib2 will be built in src/lib1/lib2/build/etc...
app will be built in src/app/build/etc...
When I run bjam from src, lib1, or app, this is exactly what happens.
However, if I run it from lib2, lib2 builds in:
src/lib1/build/lib2/gcc...
This is entirely not what I want. It also seems kind of silly that the
library will built in different directories depending on where you run
bjam. Is this a bug, or a feature that can hopefully be circumvented?
In case you need them, here are my Jamfiles:
------------------
src/Jamroot:
project test-proj ;
using gcc ;
build-project lib1 ;
build-project lib1/lib2 ;
build-project app ;
------------------
src/lib1/Jamfile:
project world
: build-dir build
;
lib World : World.cxx lib2//Hello
: <include>.
: : <include>. ;
------------------
src/lib1/lib2/Jamfile:
project hello
: build-dir build ;
lib Hello : Hello.cxx
: <include>.
: : <include>. ;
------------------
src/app/Jamfile:
project helloworld
: build-dir build
;
exe HelloWorld : helloWorld.cxx ../lib1//World
: <include>. ;
------------------
Andre Genereux
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