Boost logo

Boost :

Subject: Re: [boost] [build] b2 headers don't work for sublibs
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2014-08-31 05:45:22


Le 31/08/14 01:27, Peter Dimov a écrit :
> Andrey Semashev wrote:
>> On Saturday 30 August 2014 14:39:31 Steven Watanabe wrote:
> ...
>> > Jamroot has this:
>> >
>> > local all-headers =
>> > [ MATCH .*libs/(.*)/include/boost : [ glob libs/*/include/boost
>> ] ] > ;
>> >
>> > which won't find the libs/mpl/core/include subdirectory.
>>
>> Does it mean that sublibs are not supported or that this is a bug?
>
> Jamroot at the moment only supports sublibs in numeric:
>
> local numeric-headers =
> [ MATCH .*libs/numeric/(.*)/include/boost : [ glob
> libs/*/*/include/boost ] ] ;
>
> I'd call that a bug.
>
>
I added the following patch to Jamroot when I tested the stopwatch.
I have not committed it as it was quite late on the release period

git diff Jamroot
diff --git a/Jamroot b/Jamroot
index 7a7e2de..8c34b51 100644
--- a/Jamroot
+++ b/Jamroot
@@ -147,7 +147,7 @@ for dir in $(all-headers)
  }

  local numeric-headers =
- [ MATCH .*libs/numeric/(.*)/include/boost : [ glob
libs/*/*/include/boost ] ] ;
+ [ MATCH .*libs/numeric/(.*)/include/boost : [ glob
libs/numeric/*/include/boost ] ] ;

  for dir in $(numeric-headers)
  {
@@ -155,9 +155,18 @@ for dir in $(numeric-headers)
      explicit numeric-$(dir)-headers ;
  }

+local chrono-headers =
+ [ MATCH .*libs/chrono/(.*)/include/boost : [ glob
libs/chrono/*/include/boost ] ] ;
+
+for dir in $(chrono-headers)
+{
+ link-directory chrono-$(dir)-headers :
libs/chrono/$(dir)/include/boost : <location>. ;
+ explicit chrono-$(dir)-headers ;
+}
+
  if $(all-headers)
  {
- constant BOOST_MODULARLAYOUT : $(all-headers) $(numeric-headers) ;
+ constant BOOST_MODULARLAYOUT : $(all-headers) $(numeric-headers)
$(chrono-headers) ;
  }

  project boost
@@ -235,7 +244,7 @@ for local l in $(all-libraries)
      }
  }

-alias headers : $(all-headers)-headers
numeric-$(numeric-headers)-headers : : : <include>. ;
+alias headers : $(all-headers)-headers
numeric-$(numeric-headers)-headers chrono-$(chrono-headers)-headers : :
: <include>. ;
  explicit headers ;

  # Make project ids of all libraries known.

Vicente


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk