Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r68540 - sandbox/tools/build_extensions/ext
From: grafikrobot_at_[hidden]
Date: 2011-01-28 23:29:35


Author: grafik
Date: 2011-01-28 23:29:20 EST (Fri, 28 Jan 2011)
New Revision: 68540
URL: http://svn.boost.org/trac/boost/changeset/68540

Log:
Adjust thread target for latest version.
Text files modified:
   sandbox/tools/build_extensions/ext/boost.jam | 61 +++++++++++++++++++++++++++++++++------
   1 files changed, 51 insertions(+), 10 deletions(-)

Modified: sandbox/tools/build_extensions/ext/boost.jam
==============================================================================
--- sandbox/tools/build_extensions/ext/boost.jam (original)
+++ sandbox/tools/build_extensions/ext/boost.jam 2011-01-28 23:29:20 EST (Fri, 28 Jan 2011)
@@ -19,6 +19,9 @@
 import stage ;
 import common ;
 import path ;
+import type ;
+import virtual-target ;
+import regex ;
 
 extension.declare boost ;
 
@@ -27,9 +30,32 @@
 
 rule boost-tag ( name : type ? : property-set )
 {
- return [ common.format-name
- boost_ <base> <toolset> <threading> <runtime> <version:boost-version>
- : $(name) : $(type) : $(property-set) ] ;
+ if [ type.is-subtype $(type) LIB ]
+ {
+ return [ common.format-name
+ boost_ <base> <toolset> <threading> <runtime> <version:boost-version>
+ : $(name) : $(type) : $(property-set) ] ;
+ }
+ else if [ type.is-subtype $(type) OBJ ]
+ {
+ local target = [ $(property-set).get <target> ] ;
+ local action = [ $(target).action ] ;
+ local sources = [ $(action).sources ] ;
+ local name ;
+ if [ path.is-rooted [ $(sources[1]).name ] ]
+ {
+ name = [ regex.split [ path.relative
+ [ $(sources[1]).name ]
+ [ $(property-set).get <boost-location> ]
+ ] "/" ] ;
+ }
+ else
+ {
+ name = [ $(sources[1]).name ] ;
+ }
+ return [ virtual-target.add-prefix-and-suffix
+ $(name:S=:J=,) : $(type) : $(property-set) ] ;
+ }
 }
 
 rule init ( version ? : location : options * )
@@ -57,22 +83,37 @@
         : $(common-requirements)
         ;
     
+ alias thread_src
+ : [ glob
+ #~ $(location)/libs/thread/src/*.cpp
+ $(location)/libs/thread/src/pthread/*.cpp ]
+ : -<extension>boost
+ :
+ : <define>BOOST_THREAD_POSIX
+ ;
+
+ alias thread_src
+ : [ glob
+ #~ $(location)/libs/thread/src/*.cpp
+ $(location)/libs/thread/src/win32/*.cpp ]
+ : -<extension>boost
+ <target-os>windows
+ ;
+
     lib thread
- : [ set.difference
- [ glob $(location)/libs/thread/src/*.cpp ]
- :
- [ glob $(location)/libs/thread/src/tss_null.cpp ]
- ]
+ : thread_src
         : $(requirements)
             <location-prefix>thread
             <use>boost
             <threading>multi
- <define>BOOST_THREAD_BUILD_DLL=1
+ <link>static:<define>BOOST_THREAD_BUILD_LIB=1
+ <link>shared:<define>BOOST_THREAD_BUILD_DLL=1
             <toolset>msvc:<cxxflags>/wd4275
             <toolset>msvc:<cxxflags>/wd4251
         :
         : <threading>multi
- <define>BOOST_THREAD_USE_DLL=1
+ <link>shared:<define>BOOST_THREAD_USE_DLL=1
+ <link>static:<define>BOOST_THREAD_USE_LIB=1
         ;
     
     lib regex


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