From 9373651b5bd1ff4c6b5959e4e6f5df7140d4971d Mon Sep 17 00:00:00 2001 From: Steven Watanabe Date: Wed, 26 May 2010 19:05:19 +0000 Subject: [PATCH] Bring the boost.jam module up to date [SVN r62249] --- v2/contrib/boost.jam | 123 +++++++++++++++++++++++++++++++++---------- 1 file changed, 94 insertions(+), 29 deletions(-) diff --git a/v2/contrib/boost.jam b/v2/contrib/boost.jam index c26b8a62b..4c284e496 100644 --- a/v2/contrib/boost.jam +++ b/v2/contrib/boost.jam @@ -59,6 +59,7 @@ import property-set ; import regex ; import common ; import option ; +import numbers ; .boost.auto_config = [ property-set.create system ] ; @@ -114,7 +115,7 @@ rule init # searchable pre-built boost libraries, or references a source tree # of the boost library. If the 'version' parameter is omitted either # the configured default (first in config files) is used or an auto -# configuration will be attemted. +# configuration will be attempted. # rule use-project ( @@ -190,40 +191,61 @@ rule boost_std ( inc ? lib ? ) # The default definitions for pre-built libraries. project boost - : usage-requirements $(inc) + : usage-requirements $(inc) BOOST_ALL_NO_LIB : requirements @tag_std $(lib) ; alias headers ; - lib program_options : : : : - shared:BOOST_PROGRAM_OPTIONS_DYN_LINK ; - lib thread : : : : - shared:BOOST_THREAD_DYN_DLL ; - lib iostreams : : : : - shared:BOOST_IOSTREAMS_DYN_LINK ; - lib wave : : : : - shared:BOOST_WAVE_DYN_LINK ; - lib python : : : : - shared:BOOST_PYTHON_DYN_LINK ; - lib serialization : : : : - shared:BOOST_SERIALIZATION_DYN_LINK ; - lib graph : : : : - shared:BOOST_GRAPH_DYN_LINK ; lib date_time : : : : shared:BOOST_DATE_TIME_DYN_LINK ; - lib test : : : : - shared:BOOST_TEST_DYN_LINK ; - lib regex : : : : - shared:BOOST_REGEX_DYN_LINK ; lib filesystem : : : : shared:BOOST_FILE_SYSTEM_DYN_LINK ; + lib graph : : : : + shared:BOOST_GRAPH_DYN_LINK ; + lib graph_parallel : : : : + shared:BOOST_GRAPH_DYN_LINK ; + lib iostreams : : : : + shared:BOOST_IOSTREAMS_DYN_LINK ; + lib math_tr1 : : : : + shared:BOOST_MATH_TR1_DYN_LINK ; + lib math_tr1f : : : : + shared:BOOST_MATH_TR1_DYN_LINK ; + lib math_tr1l : : : : + shared:BOOST_MATH_TR1_DYN_LINK ; + lib math_c99 : : : : + shared:BOOST_MATH_TR1_DYN_LINK ; + lib math_c99f : : : : + shared:BOOST_MATH_TR1_DYN_LINK ; + lib math_c99l : : : : + shared:BOOST_MATH_TR1_DYN_LINK ; + lib mpi : : : : + shared:BOOST_MPI_DYN_LINK ; + lib program_options : : : : + shared:BOOST_PROGRAM_OPTIONS_DYN_LINK ; + lib python : : : : + shared:BOOST_PYTHON_DYN_LINK ; + lib random : : : : + shared:BOOST_RANDOM_DYN_LINK ; + lib regex : : : : + shared:BOOST_REGEX_DYN_LINK ; + lib serialization : : : : + shared:BOOST_SERIALIZATION_DYN_LINK ; + lib wserialization : : : : + shared:BOOST_SERIALIZATION_DYN_LINK ; lib signals : : : : shared:BOOST_SIGNALS_DYN_LINK ; - lib function_types ; - lib mpi : : : : - shared:BOOST_MPI_DYN_LINK ; lib system : : : : shared:BOOST_SYSTEM_DYN_LINK ; + lib unit_test_framework : : : : + shared:BOOST_TEST_DYN_LINK ; + lib prg_exec_monitor : : : : + shared:BOOST_TEST_DYN_LINK ; + lib test_exec_monitor : : : : + shared:BOOST_TEST_DYN_LINK ; + lib thread : : : : + shared:BOOST_THREAD_DYN_DLL ; + lib wave : : : : + shared:BOOST_WAVE_DYN_LINK ; } rule boost_0_0_1 ( inc ? lib ? ) @@ -244,13 +266,56 @@ rule tag_std ( name : type ? : property-set ) { name = lib$(name) ; } - if $(.layout) = versioned + + local result ; + if $(.layout) = system { - version = $(.version_tag) ; - toolset = ; + local version = [ MATCH ^([0-9]+)_([0-9]+) : $(.version_tag) ] ; + if $(version[1]) = "1" && [ numbers.less $(version[2]) 39 ] + { + result = [ tag_tagged $(name) : $(type) : $(property-set) ] ; + } + else + { + result = [ tag_system $(name) : $(type) : $(property-set) ] ; + } + } + else if $(.layout) = tagged + { + result = [ tag_tagged $(name) : $(type) : $(property-set) ] ; + } + else if $(.layout) = versioned + { + result = [ tag_versioned $(name) : $(type) : $(property-set) ] ; + } + else + { + errors.error "Missing layout" ; } - return [ common.format-name - $(toolset) -$(version) -$(.build_id) - : $(name) : $(type) : $(property-set) ] ; + return $(result) ; +} + +rule tag_system ( name : type ? : property-set ) +{ + return [ common.format-name + + -$(.build_id) + : $(name) : $(type) : $(property-set) ] ; +} + +rule tag_tagged ( name : type ? : property-set ) +{ + return [ common.format-name + + -$(.build_id) + : $(name) : $(type) : $(property-set) ] ; +} + +rule tag_versioned ( name : type ? : property-set ) +{ + return [ common.format-name + -$(.version_tag) + -$(.build_id) + : $(name) : $(type) : $(property-set) ] ; }