Boost logo

Boost :

Subject: [boost] Help with adding BOOST_INCLUDE to Jamroot?
From: Peter Dimov (lists_at_[hidden])
Date: 2015-06-06 13:05:35


I'm trying to add a BOOST_INCLUDE variable to Jamroot, with an initial value
$(BOOST_ROOT):

path-constant BOOST_ROOT : . ;
+path-constant BOOST_INCLUDE : . ;

I then replaced the places where . is used directly as the include path (see
diff at end of mail.)

Now "b2 headers" works as expected, but when I remove boost/ and go into,
for instance, libs/smart_ptr/test and run b2, it doesn't recreate the header
links, whereas it did so before.

I've no idea why. Can anyone help?

diff --git a/Jamroot b/Jamroot
index eda4fb4..a999a57 100644
--- a/Jamroot
+++ b/Jamroot
@@ -131,6 +131,7 @@ import path ;
import link ;

path-constant BOOST_ROOT : . ;
+path-constant BOOST_INCLUDE : . ;
constant BOOST_VERSION : 1.59.0 ;
constant BOOST_JAMROOT_MODULE : $(__name__) ;

@@ -143,7 +144,7 @@ local all-headers =

for dir in $(all-headers)
{
- link-directory $(dir)-headers : libs/$(dir)/include/boost : <location>.
;
+ link-directory $(dir)-headers : libs/$(dir)/include/boost :
<location>$(BOOST_INCLUDE) ;
     explicit $(dir)-headers ;
}

@@ -153,7 +154,7 @@ if $(all-headers)
}

project boost
- : requirements <include>.
+ : requirements <include>$(BOOST_INCLUDE)

       [ boostcpp.architecture ]
       [ boostcpp.address-model ]
@@ -169,7 +170,7 @@ project boost
       <toolset>como-linux:<define>_GNU_SOURCE=1
       # When building docs within Boost, we want the standard Boost style
       <xsl:param>boost.defaults=Boost
- : usage-requirements <include>.
+ : usage-requirements <include>$(BOOST_INCLUDE)
     : build-dir bin.v2
     ;

@@ -234,7 +235,7 @@ for local l in $(all-libraries)
# Log has an additional target
explicit-alias log_setup : libs/log/build//boost_log_setup ;

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

# Make project ids of all libraries known.
@@ -281,9 +282,9 @@ rule boost-install ( libraries * )
headers =
     # The .SUNWCCh files are present in tr1 include directory and have to
be
     # installed (see
http://lists.boost.org/Archives/boost/2007/05/121430.php).
- [ path.glob-tree $(BOOST_ROOT)/boost : *.hpp *.ipp *.h *.inc *.SUNWCCh
: CVS .svn ]
- [ path.glob-tree $(BOOST_ROOT)/boost/compatibility/cpp_c_headers : c* :
CVS .svn ]
- [ path.glob boost/tr1/tr1 : * : bcc32 sun CVS .svn ]
+ [ path.glob-tree $(BOOST_INCLUDE)/boost : *.hpp *.ipp *.h *.inc
*.SUNWCCh : CVS .svn ]
+ [ path.glob-tree $(BOOST_INCLUDE)/boost/compatibility/cpp_c_headers :
c* : CVS .svn ]
+ [ path.glob $(BOOST_INCLUDE)/boost/tr1/tr1 : * : bcc32 sun CVS .svn ]
     ;

# Declare special top-level targets that build and install the desired
variants


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