Просмотр исходного кода

Merge outstanding develop changes (as appropriate).

Rene Rivera 11 лет назад
Родитель
Сommit
51e693134f
9 измененных файлов с 122 добавлено и 32 удалено
  1. 15 17
      Jamroot
  2. 44 3
      boostcpp.jam
  3. 2 2
      bootstrap.bat
  4. 18 6
      bootstrap.sh
  5. 1 0
      doc/src/boost.xml
  6. 1 1
      libs/maintainers.txt
  7. 1 0
      status/Jamfile.v2
  8. 39 2
      status/explicit-failures-markup.xml
  9. 1 1
      tools/Jamfile.v2

+ 15 - 17
Jamroot

@@ -139,7 +139,7 @@ boostcpp.set-version $(BOOST_VERSION) ;
 use-project /boost/architecture : libs/config/checks/architecture ;
 
 local all-headers =
-    [ MATCH .*libs/(.*)/include/boost : [ glob libs/*/include/boost ] ] ;
+    [ MATCH .*libs/(.*)/include/boost : [ glob libs/*/include/boost libs/*/*/include/boost ] ] ;
 
 for dir in $(all-headers)
 {
@@ -147,18 +147,9 @@ for dir in $(all-headers)
     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) ;
+    constant BOOST_MODULARLAYOUT : $(all-headers) ;
 }
 
 project boost
@@ -173,9 +164,6 @@ project boost
       # Used to encode variant in target name. See the 'tag' rule below.
       <tag>@$(__name__).tag
       <conditional>@handle-static-runtime
-      # The standard library Sun compilers use by default has no chance
-      # of working with Boost. Override it.
-      <toolset>sun:<stdlib>sun-stlport
       # Comeau does not support shared lib
       <toolset>como:<link>static
       <toolset>como-linux:<define>_GNU_SOURCE=1
@@ -243,7 +231,10 @@ for local l in $(all-libraries)
     }
 }
 
-alias headers : $(all-headers)-headers numeric-$(numeric-headers)-headers : : : <include>.  ;
+# Log has an additional target
+explicit-alias log_setup : libs/log/build//boost_log_setup ;
+
+alias headers : $(all-headers)-headers : : : <include>.  ;
 explicit headers ;
 
 # Make project ids of all libraries known.
@@ -252,8 +243,15 @@ for local l in $(all-libraries)
     use-project /boost/$(l) : libs/$(l)/build ;
 }
 
-use-project /boost/tools/inspect : tools/inspect/build ;
-use-project /boost/libs/wave/tool : libs/wave/tool/build ;
+if [ path.exists $(BOOST_ROOT)/tools/inspect ]
+{
+    use-project /boost/tools/inspect : tools/inspect/build ;
+}
+
+if [ path.exists $(BOOST_ROOT)/libs/wave/tool ]
+{
+    use-project /boost/libs/wave/tool : libs/wave/tool/build ;
+}
 
 # This rule should be called from libraries' Jamfiles and will create two
 # targets, "install" and "stage", that will install or stage that library. The

+ 44 - 3
boostcpp.jam

@@ -210,8 +210,48 @@ rule make-unversioned-links ( project name ? : property-set : sources * )
     return $(result) ;
 }
 
+rule filtered-target ( name : message + : sources + : requirements * )
+{
+    message $(name)-message : warning: $(message) ;
+    alias $(name) : $(sources) : $(requirements) ;
+    alias $(name) : $(name)-message ;
+
+    local p = [ project.current ] ;
+    $(p).mark-target-as-explicit $(name) ;
+    $(p).mark-target-as-explicit $(name)-message ;
+}
+
 rule declare_install_and_stage_proper_targets ( libraries * : headers * )
 {
+    local p = [ project.current ] ;
+    for local l in $(libraries)
+    {
+        if $(l) = locale
+        {
+            filtered-target $(l)-for-install :
+                Skipping Boost.Locale library with threading=single. :
+                libs/$(l)/build : <threading>multi ;
+        }
+        else if $(l) = wave
+        {
+            filtered-target $(l)-for-install :
+                Skipping Boost.Wave library with threading=single. :
+                libs/$(l)/build : <threading>multi ;
+        }
+        else if $(l) = thread
+        {
+            filtered-target $(l)-for-install :
+                Skipping Boost.Thread library with threading=single. :
+                libs/$(l)/build : <threading>multi ;
+        }
+        else
+        {
+            alias $(l)-for-install : libs/$(l)/build ; 
+            $(p).mark-target-as-explicit $(l)-for-install ;
+        }
+    }
+    local library-targets = $(libraries)-for-install ;
+
     install-requirements = <install-source-root>$(BOOST_ROOT)/boost ;
 
     if $(layout-versioned)
@@ -239,14 +279,14 @@ rule declare_install_and_stage_proper_targets ( libraries * : headers * )
     package.install install-proper
         : $(install-requirements) <install-no-version-symlinks>on
         :
-        : libs/$(libraries)/build
+        : $(libraries)-for-install
         : $(headers)
         ;
     $(p).mark-target-as-explicit install-proper ;
 
     # Install just library.
     install stage-proper
-        : libs/$(libraries)/build
+        : $(libraries)-for-install
         : <location>$(stage-locate)/lib
           <install-dependencies>on <install-type>LIB
           <install-no-version-symlinks>on
@@ -461,13 +501,14 @@ rule post-build ( ok ? )
     {
         if $(ok)
         {
+            local include-path = [ path.native $(BOOST_ROOT) ] ;
             ECHO "
 
 The Boost C++ Libraries were successfully built!
 
 The following directory should be added to compiler include paths:
 
-    $(BOOST_ROOT)
+    $(include-path)
 
 The following directory should be added to linker library paths:
 

+ 2 - 2
bootstrap.bat

@@ -32,7 +32,7 @@ goto :bjam_failure
 :bjam_built
 
 REM Ideally, we should obtain the toolset that build.bat has
-REM guessed. However, it uses setlocal at the start and does
+REM guessed. However, it uses setlocal at the start and does not
 REM export BOOST_JAM_TOOLSET, and I don't know how to do that
 REM properly. Default to msvc for now.
 set toolset=msvc
@@ -67,7 +67,7 @@ goto :end
 
 ECHO.
 ECHO Failed to build Boost.Build engine.
-ECHO Please consult bootstrap.log for furter diagnostics.
+ECHO Please consult bootstrap.log for further diagnostics.
 ECHO.
 ECHO You can try to obtain a prebuilt binary from
 ECHO.

+ 18 - 6
bootstrap.sh

@@ -21,6 +21,14 @@ PYTHON_VERSION=
 PYTHON_ROOT=
 ICU_ROOT=
 
+# Handle case where builtin shell version of echo command doesn't 
+# support -n.  Use the installed echo executable if there is one 
+# rather than builtin version to ensure -n is supported.
+ECHO=`which echo`
+if test "x$ECHO" = x; then
+  ECHO=echo
+fi
+
 # Internal flags
 flag_no_python=
 flag_icu=
@@ -213,7 +221,7 @@ rm -f config.log
 
 # Build bjam
 if test "x$BJAM" = x; then
-  echo -n "Building Boost.Build engine with toolset $TOOLSET... "
+  $ECHO -n "Building Boost.Build engine with toolset $TOOLSET... "
   pwd=`pwd`
   (cd "$my_dir/tools/build/src/engine" && ./build.sh "$TOOLSET") > bootstrap.log 2>&1
   if [ $? -ne 0 ]; then
@@ -270,20 +278,20 @@ fi
 
 if test "x$flag_no_python" = x; then
     if test "x$PYTHON_VERSION" = x; then
-        echo -n "Detecting Python version... "
+        $ECHO -n "Detecting Python version... "
         PYTHON_VERSION=`$PYTHON -c "import sys; print (\"%d.%d\" % (sys.version_info[0], sys.version_info[1]))"`
         echo $PYTHON_VERSION
     fi
 
     if test "x$PYTHON_ROOT" = x; then
-        echo -n "Detecting Python root... "
-        PYTHON_ROOT=`$PYTHON -c "import sys; print sys.prefix"`
+        $ECHO -n "Detecting Python root... "
+        PYTHON_ROOT=`$PYTHON -c "import sys; print(sys.prefix)"`
         echo $PYTHON_ROOT
     fi    
 fi
 
 # Configure ICU
-echo -n "Unicode/ICU support for Boost.Regex?... "
+$ECHO -n "Unicode/ICU support for Boost.Regex?... "
 if test "x$flag_icu" != xno; then
   if test "x$ICU_ROOT" = x; then
     COMMON_ICU_PATHS="/usr /usr/local /sw"
@@ -345,7 +353,11 @@ if test "x$flag_no_python" = x; then
   cat >> project-config.jam <<EOF
 
 # Python configuration
-using python : $PYTHON_VERSION : $PYTHON_ROOT ;
+import python ;
+if ! [ python.configured ]
+{
+    using python : $PYTHON_VERSION : $PYTHON_ROOT ;
+}
 EOF
 fi
 

+ 1 - 0
doc/src/boost.xml

@@ -56,6 +56,7 @@
    <xi:include href="lexical_cast.xml"/>
    <xi:include href="lockfree.xml"/>
    <xi:include href="move.xml"/>
+   <xi:include href="../../libs/multi_array/doc/xml/bbref.xml"/>
    <xi:include href="mpi.xml"/>
    <xi:include href="../../libs/program_options/doc/program_options.xml"/>
    <xi:include href="property_tree.xml"/>

+ 1 - 1
libs/maintainers.txt

@@ -94,7 +94,7 @@ property_map          Douglas Gregor <dgregor -at- cs.indiana.edu>
 property_tree         Sebastian Redl <sebastian.redl -at- getdesigned.at>
 proto                 Eric Niebler <eric -at- boostpro.com>
 ptr_container         Thorsten Ottosen <nesotto -at- cs.auc.dk>
-python                Ralf Grosse-Kunstleve <rwgrosse-kunstleve -at- lbl.gov>, Ravi Rajagopal <lists_ravi -at- lavabit.com>
+python                Stefan Seefeld <stefan -at- seefeld dot name>
 random                Steven Watanabe <watanabesj -at- gmail.com>
 range                 Neil Groves <neilgroves -at- googlemail.com>, Nathan Ridge <zeratul976 -at- hotmail.com>
 ratio                 Vicente J. Botet Escriba <vicente.botet -at- wanadoo.fr>

+ 1 - 0
status/Jamfile.v2

@@ -63,6 +63,7 @@ run-tests libs :
     circular_buffer/test        # test-suite circular_buffer
     concept_check               # test-suite concept_check
     config/test                 # test-suite config
+    container/bench             # test-suite container benchmarks
     container/example           # test-suite container_example
     container/test              # test-suite container_test
     context/test                # test-suite context

+ 39 - 2
status/explicit-failures-markup.xml

@@ -700,7 +700,6 @@
                 <toolset name="msvc-10.0*"/>
                 <toolset name="msvc-11.0*"/>
                 <toolset name="msvc-12.0*"/>
-                <toolset name="msvc-14.0*"/>
                 <toolset name="msvc-7.1*"/>
                 <toolset name="vacpp-10.1"/>
                 <toolset name="qcc-4*"/>
@@ -716,8 +715,11 @@
             <mark-failure>
                 <toolset name="vacpp-*"/>
                 <toolset name="vacpp"/>
+                <toolset name="msvc-8.0"/>
+                <toolset name="msvc-9.0"/>
                 <toolset name="msvc-9.0~stlport5.2"/>
                 <toolset name="msvc-9.0~wm5~stlport5.2"/>
+                <toolset name="msvc-10.0"/>
                 <toolset name="intel-darwin-11.*"/>
                 <toolset name="intel-darwin-12.0"/>
                 <toolset name="qcc-4*"/>
@@ -2034,6 +2036,28 @@
     
     <!-- geometry -->
     <library name="geometry">
+        <test name="algorithms_*" category="Algorithms">
+        </test>
+        <test name="arithmetic_*" category="Arithmetic">
+        </test>
+        <test name="concepts_*" category="Concepts">
+        </test>
+        <test name="core_*" category="Core">
+        </test>
+        <test name="geometries_*" category="Geometries">
+        </test>
+        <test name="io_*" category="IO">
+        </test>
+        <test name="iterators_*" category="Iterators">
+        </test>
+        <test name="policies_*" category="Policies">
+        </test>
+        <test name="strategies_*" category="Strategies">
+        </test>
+        <test name="util_*" category="Util">
+        </test>
+        <test name="views_*" category="Views">
+        </test>
         <mark-unusable>
             <toolset name="borland-*"/>
             <toolset name="sun-5.10"/>
@@ -3059,6 +3083,17 @@ for more information.
                 </pre>
             </note>
         </mark-expected-failures>
+        <mark-expected-failures>
+		<test name="optional_test_ref_convert_assign_const_int"/>
+		<toolset name="msvc-8.0"/>
+		<toolset name="msvc-9.0"/>
+		<toolset name="msvc-10.0"/>
+		<toolset name="msvc-11.0"/>
+		<toolset name="msvc-12.0"/>
+		<note author="Andrzej Krzemienski" id="optional-const-int-ref-assign-bug">
+			<p>This is a compiler bug: it sometimes creates an illegal temporary object.</p>
+		</note>
+	</mark-expected-failures>
         <mark-expected-failures>
             <test name="optional_test_ref"/>
             <toolset name="msvc-6.5*"/>
@@ -5753,7 +5788,9 @@ This platform doesn't supports Boost.Container.
         <toolset name="gcc-4.2*"/>
         <toolset name="gcc-4.3*"/>
         <toolset name="gcc-4.4*"/>
-        <toolset name="gcc-4.5*"/>
+        <!-- gcc-4.5+ is passing the test -->
+        <toolset name="intel-linux"/>
+        <toolset name="vacpp"/>
         <toolset name="gcc-mingw-3.*"/>
         <toolset name="gcc-mingw-4.0*"/>
         <toolset name="gcc-mingw-4.1*"/>

+ 1 - 1
tools/Jamfile.v2

@@ -21,7 +21,7 @@ TOOLS =
     bcp//bcp
     inspect/build//inspect
     quickbook//quickbook
-    wave/build//wave
+    /boost/libs/wave/tool//wave
     ;
 
 install dist-bin

粤ICP备19079148号