Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r86392 - in trunk: . libs/geometry/index/example libs/numeric/odeint/examples/vexcl libs/parameter/doc libs/parameter/doc/html libs/python/example libs/python/example/quickstart libs/python/example/tutorial libs/signals2/example libs/spirit/example/qi/json/build libs/units/test tools tools/regression/build
From: bdawes_at_[hidden]
Date: 2013-10-22 11:23:42


Author: bemandawes
Date: 2013-10-22 11:23:42 EDT (Tue, 22 Oct 2013)
New Revision: 86392
URL: http://svn.boost.org/trac/boost/changeset/86392

Log:
Add Boost.Build support for the Git modular layout, using links to to new header locations, thus preventing breakage to vast amounts of user code and build setups. Being added to SVN so that changes will automatically propagate to Git and modular Boost. Thanks to Steven Watanabe, Jürgen Hunold, Vladimir Prus, and Bjørn Roald for developing this patch. Steven in particular conceived the approach and did the initial implementation, which was further refined by the other contributors.

Text files modified:
   trunk/Jamroot | 31 ++++++++++++++++++++++++++++++-
   trunk/libs/geometry/index/example/Jamfile.v2 | 2 +-
   trunk/libs/numeric/odeint/examples/vexcl/Jamfile.v2 | 2 +-
   trunk/libs/parameter/doc/html/index.html | 2 +-
   trunk/libs/parameter/doc/index.rst | 2 +-
   trunk/libs/python/example/Jamroot | 5 ++++-
   trunk/libs/python/example/quickstart/Jamroot | 2 ++
   trunk/libs/python/example/tutorial/Jamroot | 5 ++++-
   trunk/libs/signals2/example/Jamfile.v2 | 2 +-
   trunk/libs/spirit/example/qi/json/build/Jamfile | 4 ++--
   trunk/libs/units/test/Jamfile.v2 | 2 +-
   trunk/tools/Jamfile.v2 | 3 +++
   trunk/tools/regression/build/Jamroot.jam | 10 +++++-----
   13 files changed, 56 insertions(+), 16 deletions(-)

Modified: trunk/Jamroot
==============================================================================
--- trunk/Jamroot Tue Oct 22 10:04:00 2013 (r86391)
+++ trunk/Jamroot 2013-10-22 11:23:42 EDT (Tue, 22 Oct 2013) (r86392)
@@ -128,6 +128,7 @@
 import xsltproc ;
 import set ;
 import path ;
+import link ;
 
 path-constant BOOST_ROOT : . ;
 constant BOOST_VERSION : 1.55.0 ;
@@ -135,6 +136,34 @@
 
 boostcpp.set-version $(BOOST_VERSION) ;
 
+
+local all-headers =
+ [ MATCH .*libs/(.*)/include/boost : [ glob libs/*/include/boost ] ] ;
+
+for dir in $(all-headers)
+{
+ link-directory $(dir)-headers : libs/$(dir)/include/boost : <location>. ;
+ explicit $(dir)-headers ;
+}
+
+local numeric-headers =
+ [ MATCH .*libs/numeric/(.*)/include/boost : [ glob libs/*/*/include/boost ] ] ;
+
+for dir in $(numeric-headers)
+{
+ link-directory numeric-$(dir)-headers : libs/numeric/$(dir)/include/boost : <location>. ;
+ explicit numeric-$(dir)-headers ;
+}
+
+if $(all-headers)
+{
+ constant BOOST_MODULARLAYOUT : $(all-headers) $(numeric-headers) ;
+}
+if $(BOOST_MODULARLAYOUT)
+{
+ echo modularized layout build ;
+}
+
 project boost
     : requirements <include>.
       # Disable auto-linking for all targets here, primarily because it caused
@@ -210,7 +239,7 @@
     }
 }
 
-alias headers : : : : <include>. ;
+alias headers : $(all-headers)-headers numeric-$(numeric-headers)-headers : : : <include>. ;
 explicit headers ;
 
 # Make project ids of all libraries known.

Modified: trunk/libs/geometry/index/example/Jamfile.v2
==============================================================================
--- trunk/libs/geometry/index/example/Jamfile.v2 Tue Oct 22 10:04:00 2013 (r86391)
+++ trunk/libs/geometry/index/example/Jamfile.v2 2013-10-22 11:23:42 EDT (Tue, 22 Oct 2013) (r86392)
@@ -18,7 +18,7 @@
 
 project boost-geometry-index-example
     : requirements
- <source>/boost//headers
+ <implicit-dependency>/boost//headers
     ;
 
 local GLUT_ROOT = [ os.environ GLUT_ROOT ] ;

Modified: trunk/libs/numeric/odeint/examples/vexcl/Jamfile.v2
==============================================================================
--- trunk/libs/numeric/odeint/examples/vexcl/Jamfile.v2 Tue Oct 22 10:04:00 2013 (r86391)
+++ trunk/libs/numeric/odeint/examples/vexcl/Jamfile.v2 2013-10-22 11:23:42 EDT (Tue, 22 Oct 2013) (r86392)
@@ -21,7 +21,7 @@
 lib opencl : : <name>OpenCL ;
 
 project : requirements
- <library>/boost//headers
+ <implicit-dependency>/boost//headers
         <include>../../../../..
         <include>$(VEXCL_INCLUDE)
         <include>$(CUDA_INCLUDE)

Modified: trunk/libs/parameter/doc/html/index.html
==============================================================================
--- trunk/libs/parameter/doc/html/index.html Tue Oct 22 10:04:00 2013 (r86391)
+++ trunk/libs/parameter/doc/html/index.html 2013-10-22 11:23:42 EDT (Tue, 22 Oct 2013) (r86392)
@@ -37,7 +37,7 @@
 </tbody>
 </table>
 <!-- @jam_prefix.append('''
-project test : requirements <include>. <source>/boost//headers ;''') -->
+project test : requirements <include>. <implicit-dependency>/boost//headers ;''') -->
 <!-- @example.prepend('''
 #include <boost/parameter.hpp>
 

Modified: trunk/libs/parameter/doc/index.rst
==============================================================================
--- trunk/libs/parameter/doc/index.rst Tue Oct 22 10:04:00 2013 (r86391)
+++ trunk/libs/parameter/doc/index.rst 2013-10-22 11:23:42 EDT (Tue, 22 Oct 2013) (r86392)
@@ -30,7 +30,7 @@
   can be deduced from their types.
 
 .. @jam_prefix.append('''
- project test : requirements <include>. <source>/boost//headers ;''')
+ project test : requirements <include>. <implicit-dependency>/boost//headers ;''')
 
 .. @example.prepend('''
    #include <boost/parameter.hpp>

Modified: trunk/libs/python/example/Jamroot
==============================================================================
--- trunk/libs/python/example/Jamroot Tue Oct 22 10:04:00 2013 (r86391)
+++ trunk/libs/python/example/Jamroot 2013-10-22 11:23:42 EDT (Tue, 22 Oct 2013) (r86392)
@@ -11,7 +11,10 @@
 # boost_python library from the project whose global ID is
 # /boost/python.
 project
- : requirements <library>/boost/python//boost_python ;
+ : requirements <library>/boost/python//boost_python
+ <implicit-dependency>/boost//headers
+ : usage-requirements <implicit-dependency>/boost//headers
+ ;
 
 # Declare the three extension modules. You can specify multiple
 # source files after the colon separated by spaces.

Modified: trunk/libs/python/example/quickstart/Jamroot
==============================================================================
--- trunk/libs/python/example/quickstart/Jamroot Tue Oct 22 10:04:00 2013 (r86391)
+++ trunk/libs/python/example/quickstart/Jamroot 2013-10-22 11:23:42 EDT (Tue, 22 Oct 2013) (r86392)
@@ -12,6 +12,8 @@
 # /boost/python.
 project boost-python-quickstart
   : requirements <library>/boost/python//boost_python
+ <implicit-dependency>/boost//headers
+ : usage-requirements <implicit-dependency>/boost//headers
     ;
 
 # Make the definition of the python-extension rule available

Modified: trunk/libs/python/example/tutorial/Jamroot
==============================================================================
--- trunk/libs/python/example/tutorial/Jamroot Tue Oct 22 10:04:00 2013 (r86391)
+++ trunk/libs/python/example/tutorial/Jamroot 2013-10-22 11:23:42 EDT (Tue, 22 Oct 2013) (r86392)
@@ -20,7 +20,10 @@
 # boost_python library from the project whose global ID is
 # /boost/python.
 project
- : requirements <library>/boost/python//boost_python ;
+ : requirements <library>/boost/python//boost_python
+ <implicit-dependency>/boost//headers
+ : usage-requirements <implicit-dependency>/boost//headers
+ ;
 
 # Declare the three extension modules. You can specify multiple
 # source files after the colon separated by spaces.

Modified: trunk/libs/signals2/example/Jamfile.v2
==============================================================================
--- trunk/libs/signals2/example/Jamfile.v2 Tue Oct 22 10:04:00 2013 (r86391)
+++ trunk/libs/signals2/example/Jamfile.v2 2013-10-22 11:23:42 EDT (Tue, 22 Oct 2013) (r86392)
@@ -8,7 +8,7 @@
 
 # For more information, see http://www.boost.org
 
-project : requirements <source>/boost//headers ;
+project : requirements <implicit-dependency>/boost//headers ;
 
 exe hello_world_slot : hello_world_slot.cpp ;
 

Modified: trunk/libs/spirit/example/qi/json/build/Jamfile
==============================================================================
--- trunk/libs/spirit/example/qi/json/build/Jamfile Tue Oct 22 10:04:00 2013 (r86391)
+++ trunk/libs/spirit/example/qi/json/build/Jamfile 2013-10-22 11:23:42 EDT (Tue, 22 Oct 2013) (r86392)
@@ -24,8 +24,8 @@
 
 
 lib json
- : [ glob ../src/*.cpp ]
- /boost//headers
+ : [ glob ../src/*.cpp ] :
+ <implicit-dependency>/boost//headers
         :
    :
    : <include>..

Modified: trunk/libs/units/test/Jamfile.v2
==============================================================================
--- trunk/libs/units/test/Jamfile.v2 Tue Oct 22 10:04:00 2013 (r86391)
+++ trunk/libs/units/test/Jamfile.v2 2013-10-22 11:23:42 EDT (Tue, 22 Oct 2013) (r86392)
@@ -16,7 +16,7 @@
 
 project boost/units/test :
     requirements
- <source>/boost//headers
+ <implicit-dependency>/boost//headers
         <include>../../..
         <toolset>msvc:<asynch-exceptions>on
         $(warning-compilers):$(warning-options)

Modified: trunk/tools/Jamfile.v2
==============================================================================
--- trunk/tools/Jamfile.v2 Tue Oct 22 10:04:00 2013 (r86391)
+++ trunk/tools/Jamfile.v2 2013-10-22 11:23:42 EDT (Tue, 22 Oct 2013) (r86392)
@@ -12,6 +12,9 @@
     :
     requirements
     <link>static
+ <implicit-dependency>/boost//headers
+ :
+ usage-requirements <implicit-dependency>/boost//headers
     ;
 
 use-project /boost/regression : regression/build ;

Modified: trunk/tools/regression/build/Jamroot.jam
==============================================================================
--- trunk/tools/regression/build/Jamroot.jam Tue Oct 22 10:04:00 2013 (r86391)
+++ trunk/tools/regression/build/Jamroot.jam 2013-10-22 11:23:42 EDT (Tue, 22 Oct 2013) (r86392)
@@ -37,7 +37,7 @@
     :
     <define>BOOST_ALL_NO_LIB=1
     <define>_CRT_SECURE_NO_WARNINGS
- <use>/boost//headers
+ <implicit-dependency>/boost//headers
     :
     release
     ;
@@ -51,7 +51,7 @@
     :
     <define>BOOST_ALL_NO_LIB=1
     <define>_CRT_SECURE_NO_WARNINGS
- <use>/boost//headers
+ <implicit-dependency>/boost//headers
     :
     release
     ;
@@ -64,7 +64,7 @@
     /boost/filesystem//boost_filesystem/<link>static
     :
     <define>BOOST_ALL_NO_LIB=1
- <use>/boost//headers
+ <implicit-dependency>/boost//headers
     :
     release
     ;
@@ -77,7 +77,7 @@
     /boost/filesystem//boost_filesystem/<link>static
     :
     <define>BOOST_ALL_NO_LIB=1
- <use>/boost//headers
+ <implicit-dependency>/boost//headers
     :
     release
     ;
@@ -94,7 +94,7 @@
     /boost//iostreams/<link>static
     :
     <define>BOOST_ALL_NO_LIB=1
- <use>/boost//headers
+ <implicit-dependency>/boost//headers
     :
     release
     ;


Boost-Commit 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