Boost logo

Boost-Build :

Subject: [Boost-build] Global headers across projects
From: Alexander Sack (pisymbol_at_[hidden])
Date: 2008-10-14 15:26:48


Hello (again):

I have tried about 10 different ways to go this to no avail.

Here is my project format:

Jamroot
lib/liba/Jamfile
lib/libb/Jamfile
lib/libc/Jamfile
bin/bina/Jamfile

etc.

Each Jamfile defines a project which I will assume inherit
requirements and such from Jamroot (which defines the global project).

I have a bunch of headers I would like included in all builds and I
have a bunch of headers that need to be included in only liba and
libc, not libb.

To tackle the first one I tried:

alias common_headers : : : <include>h1_dir <include>h2_dir>;

However I can't use this in my Jamroot's project definition as a
requirement a la:

project myproj
          : requirements common_headers
          ;

I then tried to make common_headers a constant via:

constant common_headers : <include>h1_dir <include>h2_dir etc. etc. ;

and do

project myproj
         : requirements $(common_headers)
         ;

This semi-worked. It turned out that substitution would get screwed
up if I used another constant variable substitution in my properties,
a la my second bunch of headers. So I would define in Jamroot:

constant some_headers : <include>blah blah etc.

and then in

lib/liba/Jamfile I would have:

lib a : [ glob *.cc ] : <include>$(some_headers) ;

If I do it this way, it seems to get the variable substitution wrong.

What is the best way to do what I'm asking?

-aps


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