Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r55685 - trunk/libs/regex/build
From: ghost_at_[hidden]
Date: 2009-08-20 08:05:55


Author: vladimir_prus
Date: 2009-08-20 08:05:55 EDT (Thu, 20 Aug 2009)
New Revision: 55685
URL: http://svn.boost.org/trac/boost/changeset/55685

Log:
Force shared runtime if using ICU.

Text files modified:
   trunk/libs/regex/build/Jamfile.v2 | 30 ++++++++++++++++++++++++++++++
   1 files changed, 30 insertions(+), 0 deletions(-)

Modified: trunk/libs/regex/build/Jamfile.v2
==============================================================================
--- trunk/libs/regex/build/Jamfile.v2 (original)
+++ trunk/libs/regex/build/Jamfile.v2 2009-08-20 08:05:55 EDT (Thu, 20 Aug 2009)
@@ -221,17 +221,20 @@
       {
          lib icucore : : <name>$(gICU_CORE_LIB) $(ICU_SEARCH_OPTS) <link>shared ;
          ICU_EXTRA_SOURCE = icucore ;
+ explicit icucore ;
       }
       if $(gICU_IN_LIB)
       {
          lib icuin : : <name>$(gICU_IN_LIB) $(ICU_SEARCH_OPTS) <link>shared ;
          ICU_EXTRA_SOURCE += icuin ;
+ explicit icuin ;
       }
 #Added by Tommy Nordgren libicudata must be linked against on Mac OS X
       if $(gICU_DATA_LIB)
       {
          lib icudata : : <name>$(gICU_DATA_LIB) $(ICU_SEARCH_OPTS) <link>shared ;
          ICU_EXTRA_SOURCE += icudata ;
+ explicit icudata ;
       }
 #End of addition by Tommy Nordgren
    }
@@ -267,9 +270,36 @@
              <toolset>gcc-mingw:<link>static
              <toolset>gcc-cygwin:<link>static
              $(BOOST_REGEX_ICU_OPTS)
+ <conditional>@force-shared-linking
     ;
 
+shared-linking-warning-emitted = ;
+
+# The ICU is shipped as shared libraries with dynamic runtime.
+# If Boost.Regex is built against static runtime, the combination
+# will not work. The below rule forces shared runtime, and
+# prints an explanation.
+rule force-shared-linking ( properties * )
+{
+ if $(gHAS_ICU)
+ {
+ if <runtime-link>static in $(properties)
+ {
+ if ! $(shared-linking-warning-emitted)
+ {
+ shared-linking-warning-emitted = 1 ;
+ ECHO "warning: forcing runtime-link=shared for Boost.Regex" ;
+ ECHO "warning: this is required when using the ICU library" ;
+ }
+ }
+ return <runtime-link>shared ;
+ }
+}
+
+
+
 alias icu_options : $(ICU_EXTRA_SOURCE) : : : $(BOOST_REGEX_ICU_OPTS) ;
+explicit icu_options ;
 
 boost-install boost_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