Boost logo

Boost-Build :

From: David Abrahams (dave_at_[hidden])
Date: 2006-05-11 18:29:02


This is forwarded from boost-users


attached mail follows:


Hi all -

I'm trying out boost-build for the first time, and running into some
issues related to project dependencies. I've spent many hours looking
at boost-build documentation, and now I'm stuck.

My directory structure is laid out like this:
--------------------------------------------
base_dir
   Jamroot
   simp_envelopes
      Jamfile
      ***source***
      simp_envelopes
           ***include files***
   my_lib
      Jamfile
      ***source***
      include
         ***include files***
   test
      Jamfile
      tester.cc
---------------------------------------------

Basically, my_lib depends on simp_envelopes and test depends on my_lib.

In simp_envelopes/Jamfile I have this:
------------
project simplify-libs
        : usage-requirements <include>simp_envelopes
        ;

lib simplify : [ glob *.cc ]
             : <include>simp_envelopes ;
------------
which I believe should tell my_libs to include
simp_envelopes/simp_envelopes, if only my_libs can know that it should
depend on the simp_envelopes project.

My Jamroot looks like:
------------
use-project simplify-libs : simp_envelopes ;
use-project my-libs : my_libs ;

project my_app
        : requirements <include>.. <include>../SGUL/include
        : default-build debug
        ;

lib open-mesh
    :
    : <file>../OpenMesh/Core/Linux_gcc_max/libOpenMesh_Core.so
    ;

build-project simp_envelopes ;
build-project my_libs ;
build-project test ;
------------

My my_libs Jamfile:
------------
project my_libs
        : requirements <include>../simp_envelopes
        : usage-requirements <include>include
        ;

lib my_libs : [ glob *.cc ] /simplify-libs//simplify
                    : <include>include
                ;
-------------
I had to add the requirements <include>../simp_envelopes for my_libs
to find the include files for simp_envelopes... is there a way to get
my_libs to depend on simp_envelopes (or simplify-libs) and take care
of this automatically?

I have similar issues for the test app... I need to at a requirements
for the my_libs include directory.

Finally, I have defined a library name open-mesh to point to my
external library, but I don't know how to have my my_libs essentially
require linking against open-mesh. This is in fact even more
important because I don't currently have a way of making my
application build rule depend on open-mesh.

Any help is appreciated!
  Brian


-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

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