Compare commits

..
Author SHA1 Message Date
Peter Dimov 8379358399 Update tools/boostdep 2017-07-23 01:05:13 +03:00
Peter Dimov 25250fdd80 Add tools/pkgconfig 2017-07-22 21:50:26 +03:00
172 changed files with 1687 additions and 1957 deletions
-14
View File
@@ -1,14 +0,0 @@
version: 2
jobs:
build:
docker:
- image: djarek/boost_superproject_build
parallelism: 2
steps:
- checkout
- run: wget "https://raw.githubusercontent.com/boostorg/release-tools/develop/ci_boost_common.py" -P ${HOME}
- run: wget "https://raw.githubusercontent.com/boostorg/release-tools/develop/ci_boost_release.py" -P ${HOME}
- run: python ${HOME}/ci_boost_release.py checkout_post
- run: python ${HOME}/ci_boost_release.py dependencies_override
- run: '[ "$CIRCLE_NODE_INDEX" != "0" ] || EOL=LF python ${HOME}/ci_boost_release.py test_override'
- run: '[ "$CIRCLE_NODE_INDEX" != "1" ] || EOL=CRLF python ${HOME}/ci_boost_release.py test_override'
-1
View File
@@ -8,7 +8,6 @@
/dist
/project-config.jam*
/stage
/stage_x64/
/user-config.jam
/.settings/
/.project
+404 -599
View File
File diff suppressed because it is too large Load Diff
+22 -32
View File
@@ -3,19 +3,18 @@
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#
# Copyright Rene Rivera 2015-2016.
# Copyright Peter Dimov 2017.
branches:
only:
- master
- develop
- /feature\/.*/
dist: trusty
language: cpp
language: c
compiler: gcc
compiler:
- gcc
addons:
apt:
@@ -32,7 +31,6 @@ addons:
- texlive
- sshpass
- ghostscript
- libsaxonhe-java
ssh_known_hosts: frs.sourceforge.net
env:
@@ -44,35 +42,27 @@ matrix:
- env: TRAVIS_EMPTY_JOB_WORKAROUND=true
include:
- env: SCRIPT=ci_boost_release MODE=check
# Simple integrated status tests check.
- env: SCRIPT=ci_boost_status
- env:
- SCRIPT=ci_boost_status
# Build release package for LF end-of-line style text files.
- env:
- SCRIPT=ci_boost_release
- EOL=LF
# Build release package for CRLF end-of-line style text files (i.e. for Windows).
- env:
- SCRIPT=ci_boost_release
- EOL=CRLF
# Library requirements tests.
- env:
- SCRIPT=ci_boost_library_check
# Run 'quick' tests.
- env: SCRIPT=ci_boost_status TARGET=quick TOOLSET=gcc CXXSTD=03,11
compiler: g++
- env: SCRIPT=ci_boost_status TARGET=quick TOOLSET=clang CXXSTD=03,11
compiler: clang++
# Build Boost
- env: SCRIPT=ci_boost_build TOOLSET=gcc CXXSTD=11
compiler: g++
# Run tests for the library updated by this commit.
- env: SCRIPT=ci_boost_test_library TOOLSET=gcc CXXSTD=11
compiler: g++
- env: SCRIPT=ci_boost_test_library TOOLSET=clang CXXSTD=11
compiler: clang++
# # Library requirements tests.
# - env: SCRIPT=ci_boost_library_check
#
# allow_failures:
# - env: SCRIPT=ci_boost_library_check
allow_failures:
- env:
- SCRIPT=ci_boost_library_check
before_install:
# Fetch the scripts to do the actual building/testing.
+33 -26
View File
@@ -19,28 +19,23 @@
# ======= configured locations (below).
#
# --prefix=<PREFIX> Install architecture independent files here.
# Default: C:\Boost on Windows
# Default: /usr/local on Unix, Linux, etc.
# Default; C:\Boost on Win32
# Default; /usr/local on Unix. Linux, etc.
#
# --exec-prefix=<EPREFIX> Install architecture dependent files here.
# Default: <PREFIX>
# Default; <PREFIX>
#
# --libdir=<LIBDIR> Install library files here.
# Default: <EPREFIX>/lib
# --libdir=<DIR> Install library files here.
# Default; <EPREFIX>/lib
#
# --includedir=<HDRDIR> Install header files here.
# Default: <PREFIX>/include
#
# --cmakedir=<CMAKEDIR> Install CMake configuration files here.
# Default: <LIBDIR>/cmake
#
# --no-cmake-config Do not install CMake configuration files.
# Default; <PREFIX>/include
#
# stage Build and install only compiled library files to the
# ===== stage directory.
#
# --stagedir=<STAGEDIR> Install library files here
# Default: ./stage
# Default; ./stage
#
# Other Options:
#
@@ -138,12 +133,9 @@ import notfile ;
import virtual-target ;
import "class" : new ;
import property-set ;
import threadapi-feature ;
import option ;
import tools/boost_install/boost-install ;
path-constant BOOST_ROOT : . ;
constant BOOST_VERSION : 1.70.0 ;
constant BOOST_VERSION : 1.65.0 ;
constant BOOST_JAMROOT_MODULE : $(__name__) ;
boostcpp.set-version $(BOOST_VERSION) ;
@@ -181,11 +173,7 @@ project boost
<toolset>como-linux:<define>_GNU_SOURCE=1
# When building docs within Boost, we want the standard Boost style
<xsl:param>boost.defaults=Boost
<conditional>@threadapi-feature.detect
: usage-requirements <include>.
: default-build
<visibility>hidden
<threading>multi
: build-dir bin.v2
;
@@ -251,7 +239,7 @@ explicit-alias serialization : libs/serialization/build//boost_serialization ;
explicit-alias wserialization : libs/serialization/build//boost_wserialization ;
for local l in $(all-libraries)
{
if ! $(l) in test graph serialization headers
if ! $(l) in test graph serialization
{
explicit-alias $(l) : libs/$(l)/build//boost_$(l) ;
}
@@ -293,18 +281,29 @@ if [ path.exists $(BOOST_ROOT)/libs/wave/tool/build ]
use-project /boost/libs/wave/tool : libs/wave/tool/build ;
}
# Make the boost-install rule visible in subprojects
# This rule should be called from libraries' Jamfiles and will create two
# targets, "install" and "stage", that will install or stage that library. The
# --prefix option is respected, but --with and --without options, naturally, are
# ignored.
#
# - libraries -- list of library targets to install.
#
rule boost-install ( libraries * )
{
boost-install.boost-install $(libraries) ;
package.install install
: <dependency>/boost//install-proper-headers $(install-requirements)
: # No binaries
: $(libraries)
: # No headers, it is handled by the dependency.
;
install stage : $(libraries) : <location>$(BOOST_STAGE_LOCATE) ;
module [ CALLER_MODULE ]
{
explicit stage ;
explicit install ;
}
}
# Creates a library target, adding autolink support and also creates
@@ -323,6 +322,14 @@ rule boost-lib ( name : sources * : requirements * : default-build * : usage-req
}
headers =
# The .SUNWCCh files are present in tr1 include directory and have to be
# installed (see http://lists.boost.org/Archives/boost/2007/05/121430.php).
[ path.glob-tree $(BOOST_ROOT)/boost : *.hpp *.ipp *.h *.inc *.SUNWCCh : CVS .svn ]
[ path.glob-tree $(BOOST_ROOT)/boost/compatibility/cpp_c_headers : c* : CVS .svn ]
[ path.glob boost/tr1/tr1 : * : bcc32 sun CVS .svn ]
;
# Declare special top-level targets that build and install the desired variants
# of the libraries.
boostcpp.declare-targets $(all-libraries) ;
boostcpp.declare-targets $(all-libraries) : $(headers) ;
+6 -11
View File
@@ -1,21 +1,16 @@
version: 1.0.{build}-{branch}
branches:
only:
- develop
- master
image:
- Visual Studio 2017
- Visual Studio 2015
- Visual Studio 2013
environment:
matrix:
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
SCRIPT: ci_boost_test_library
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
SCRIPT: ci_boost_test_library
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
SCRIPT: ci_boost_test_library
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
SCRIPT: ci_boost_status
TARGET: quick
- SCRIPT: ci_boost_status
init:
- cd %APPVEYOR_BUILD_FOLDER%/..
+241 -178
View File
@@ -20,12 +20,10 @@ import package ;
import path ;
import project ;
import regex ;
import sequence ;
import set ;
import targets ;
import feature ;
import property ;
import version : version-less ;
##############################################################################
#
@@ -40,8 +38,8 @@ rule set-version ( version )
{
BOOST_VERSION = $(version) ;
local version-tag =
[ MATCH "^([^.]+)[.]([^.]+)[.]([^.]+)" : $(BOOST_VERSION) ] ;
local version-tag = [ MATCH ^([^.]+)[.]([^.]+)[.]([^.]+) : $(BOOST_VERSION)
] ;
if $(version-tag[3]) = 0
{
version-tag = $(version-tag[1-2]) ;
@@ -60,23 +58,6 @@ if ! ( $(build-type) in complete minimal )
# What kind of layout are we doing?
layout = [ option.get layout : "" ] ;
layout = [ MATCH (versioned|tagged|system)(-(.+))? : $(layout) ] ;
if $(layout[3])
{
layout-version = $(layout[3]) ;
layout = $(layout[1]) ;
if [ version-less [ regex.split $(layout-version) "[.]" ] : 1 66 ]
{
layout-version = 1.40 ;
}
else if [ version-less [ regex.split $(layout-version) "[.]" ] : 1 69 ]
{
layout-version = 1.66 ;
}
}
layout-version ?= 1.69 ;
# On Windows, we used versioned layout by default in order to be compatible with
# autolink. On other systems, we use system layout which is what every other
# program uses. Note that the Windows check is static, and will not be affected
@@ -96,12 +77,12 @@ layout-$(layout) = true ;
if $(layout) = system && $(build-type) = complete
{
ECHO error\: Cannot use --layout=system with --build-type complete. ;
ECHO error\: Please use either --layout=versioned or --layout=tagged ;
ECHO error\: if you wish to build multiple variants. ;
ECHO error: Cannot use --layout=system with --build-type complete. ;
ECHO error: Please use either --layout=versioned or --layout=tagged ;
ECHO error: if you wish to build multiple variants. ;
if [ os.name ] != NT
{
ECHO error\: Note that --layout=system is used by default on Unix
ECHO error: Note that --layout=system is used by default on Unix
starting with Boost 1.40. ;
}
EXIT ;
@@ -109,16 +90,7 @@ if $(layout) = system && $(build-type) = complete
# Possible stage only location.
stage-locate = [ option.get stagedir ] ;
if $(stage-locate)
{
stage-locate = [ path.root [ path.make $(stage-locate) ] [ path.pwd ] ] ;
}
else
{
stage-locate = $(BOOST_ROOT)/stage ;
}
stage-locate ?= stage ;
BOOST_STAGE_LOCATE = $(stage-locate) ;
# Custom build ID.
@@ -132,47 +104,7 @@ if $(build-id)
python-id = [ option.get "python-buildid" ] ;
if $(python-id)
{
PYTHON_ID = [ regex.replace $(python-id) "[*\\/:.\"\']" _ ] ;
}
if $(layout) = versioned
{
switch $(layout-version)
{
case 1.40 :
.format-name-args =
<base> <toolset> <threading> <runtime> ;
case 1.66 :
.format-name-args =
<base> <toolset> <threading> <runtime> <arch-and-model> ;
case 1.69 :
.format-name-args =
<base> <toolset> <threading> <runtime> <arch-and-model> ;
}
}
else if $(layout) = tagged
{
switch $(layout-version)
{
case 1.40 :
.format-name-args =
<base> <threading> <runtime> ;
case 1.66 :
.format-name-args =
<base> <threading> <runtime> ;
case 1.69 :
.format-name-args =
<base> <threading> <runtime> <arch-and-model> ;
}
}
else if $(layout) = system
{
.format-name-args = <base> ;
}
else
{
.format-name-error = true ;
PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
}
@@ -187,17 +119,31 @@ rule tag ( name : type ? : property-set )
{
if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
{
local args = $(.format-name-args) ;
local result ;
if $(layout) = versioned
{
args += -$(BOOST_VERSION_TAG) ;
result = [ common.format-name
<base> <toolset> <threading> <runtime> -$(BOOST_VERSION_TAG)
-$(BUILD_ID)
: $(name) : $(type) : $(property-set) ] ;
}
local result = [ common.format-name
$(args) -$(BUILD_ID)
: $(name) : $(type) : $(property-set) ] ;
if $(.format-name-error)
else if $(layout) = tagged
{
EXIT error\: invalid layout '$(layout:E=)' ;
result = [ common.format-name
<base> <threading> <runtime>
-$(BUILD_ID)
: $(name) : $(type) : $(property-set) ] ;
}
else if $(layout) = system
{
result = [ common.format-name
<base>
-$(BUILD_ID)
: $(name) : $(type) : $(property-set) ] ;
}
else
{
EXIT error: invalid layout '$(layout:E=)' ;
}
# Optionally add version suffix. On NT, library with version suffix will
@@ -222,27 +168,9 @@ rule tag ( name : type ? : property-set )
rule python-tag ( name : type ? : property-set )
{
local result = $(name) ;
if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB && $(PYTHON_ID)
{
# Add Python version suffix
local version = [ $(property-set).get <python> ] ;
local major-minor = [ MATCH "^([0-9]+)\.([0-9]+)" : $(version) ] ;
local suffix = $(major-minor:J="") ;
if $(suffix)
{
result = $(result)$(suffix) ;
}
# Add PYTHON_ID if supplied
if $(PYTHON_ID)
{
result = $(result)-$(PYTHON_ID) ;
}
result = $(result)-$(PYTHON_ID) ;
}
# forward to the boost tagging rule
@@ -255,18 +183,155 @@ rule python-tag ( name : type ? : property-set )
#
# - 'stage-proper' that puts all libraries in stage/lib
# - 'install-proper' that install libraries and headers to system location
# - 'stage-unversioned' that creates links to libraries without boost version
# in name
# - 'install-unversioned' which creates unversioned linked to installed
# libraries.
#
################################################################################
rule declare_install_and_stage_proper_targets ( libraries * )
# Worker function suitable to the 'generate' metatarget. Creates a link to
# 'source', striping any version number information from the name.
rule make-unversioned-links ( project name ? : property-set : sources * )
{
local filter ;
if [ modules.peek : NT ]
{
filter = (.*[.]lib) ;
}
else
{
filter =
(.*[.]so)[.0-9]*
(.*[.]dylib)
(.*[.]a) ;
}
local result ;
for local s in $(sources)
{
local m = [ MATCH ^(.*)-[0-9_]+$(filter)$ : [ $(s).name ] ] ;
if $(m)
{
local ea = [ $(s).action ] ;
local ep = [ $(ea).properties ] ;
local a = [ new non-scanning-action $(s) : symlink.ln : $(ep) ] ;
result += [ new file-target $(m:J=) exact : [ $(s).type ] :
$(project) : $(a) ] ;
}
}
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 ;
alias install-proper : libs/$(libraries)/build//install ;
install-requirements = <install-source-root>$(BOOST_ROOT)/boost ;
if $(layout-versioned)
{
install-requirements +=
<install-header-subdir>boost-$(BOOST_VERSION_TAG)/boost ;
}
else
{
install-requirements += <install-header-subdir>boost ;
}
if [ os.name ] = NT
{
install-requirements += <install-default-prefix>C:/Boost ;
}
else
{
install-requirements += <install-default-prefix>/usr/local ;
}
p = [ project.current ] ;
# Complete install.
package.install install-proper
: $(install-requirements) <install-no-version-symlinks>on
:
: $(libraries)-for-install
: $(headers)
;
$(p).mark-target-as-explicit install-proper ;
alias stage-proper : libs/$(libraries)/build//stage ;
# Install just library.
install stage-proper
: $(libraries)-for-install
: <location>$(stage-locate)/lib
<install-dependencies>on <install-type>LIB
<install-no-version-symlinks>on
;
$(p).mark-target-as-explicit stage-proper ;
# Commented out as it does not seem to work. Whoever wrote this originally,
# left some typos in the code, but when that got corrected and the code got
# enabled - it started reporting ambiguous/duplicate target Boost Build
# errors. Anyone requiring unversioned staged libraries needs to correct
# those errors before reenabling this code. For more detailed information
# see the related Boost library development mailing list thread at
# 'http://lists.boost.org/Archives/boost/2012/06/194312.php'.
# (06.07.2012.) (Jurko)
#~ if $(layout-versioned) && ( [ modules.peek : NT ] || [ modules.peek : UNIX ] )
#~ {
#~ generate stage-unversioned : stage-proper :
#~ <generating-rule>@boostcpp.make-unversioned-links ;
#~ $(p).mark-target-as-explicit stage-unversioned ;
#~
#~ generate install-unversioned : install-proper :
#~ <generating-rule>@boostcpp.make-unversioned-links ;
#~ $(p).mark-target-as-explicit install-unversioned ;
#~ }
#~ else
{
# Create do-nothing aliases.
alias stage-unversioned ;
$(p).mark-target-as-explicit stage-unversioned ;
alias install-unversioned ;
$(p).mark-target-as-explicit install-unversioned ;
}
}
@@ -294,84 +359,57 @@ class top-level-target : alias-target-class
# incompatibility between debug and release variants. We build shared
# and static libraries since that is what most packages seem to provide
# (.so in libfoo and .a in libfoo-dev).
self.minimal-properties = [ property-set.create <variant>release
<threading>multi <link>shared <link>static <runtime-link>shared ] ;
# On Windows, new IDE projects use:
#
# runtime-link=dynamic, threading=multi, variant=(debug|release)
#
# and in addition, C++ Boost's autolink defaults to static linking.
self.minimal-properties-win = [ property-set.create <variant>debug
<variant>release <threading>multi <link>static <runtime-link>shared
<address-model>32 <address-model>64 ] ;
] ;
self.complete-properties = [ property-set.create
<variant>debug <variant>release
<threading>multi
<link>shared <link>static
<runtime-link>shared <runtime-link>static ] ;
self.complete-properties-win = [ property-set.create
<variant>debug <variant>release
<threading>multi
<link>shared <link>static
<runtime-link>shared <runtime-link>static
<address-model>32 <address-model>64 ] ;
}
rule generate ( property-set )
{
modules.poke : top-level-targets : [ modules.peek : top-level-targets ]
$(self.name) ;
local os = [ $(property-set).get <target-os> ] ;
# Because we completely override the parent's 'generate' we need to
# check for default feature values ourselves.
if ! $(os)
{
os = [ feature.defaults <target-os> ] ;
os = $(os:G=) ;
}
local build-type-set ;
if $(self.build-type) = minimal
{
local expanded ;
local os = [ $(property-set).get <target-os> ] ;
# Because we completely override the parent's 'generate' we need to
# check for default feature values ourselves.
if ! $(os)
{
os = [ feature.defaults <target-os> ] ;
os = $(os:G=) ;
}
if $(os) = windows
{
build-type-set = $(self.minimal-properties-win) ;
expanded = [ targets.apply-default-build $(property-set)
: $(self.minimal-properties-win) ] ;
}
else
{
build-type-set = $(self.minimal-properties) ;
expanded = [ targets.apply-default-build $(property-set)
: $(self.minimal-properties) ] ;
}
return [ build-multiple $(expanded) ] ;
}
else if $(self.build-type) = complete
{
if $(os) = windows
{
build-type-set = $(self.complete-properties-win) ;
}
else
{
build-type-set = $(self.complete-properties) ;
}
}
else
{
import errors ;
errors.error "Unknown build type" ;
}
if $(build-type-set)
{
local expanded = [ targets.apply-default-build $(property-set)
: $(build-type-set) ] ;
: $(self.complete-properties) ] ;
# Filter inappopriate combinations.
local filtered ;
@@ -389,9 +427,13 @@ class top-level-target : alias-target-class
filtered += $(p) ;
}
}
return [ build-multiple $(filtered) ] ;
}
else
{
import errors ;
errors.error "Unknown build type" ;
}
}
rule build-multiple ( property-sets * )
@@ -411,17 +453,17 @@ class top-level-target : alias-target-class
}
}
rule declare_top_level_targets ( libraries * )
rule declare_top_level_targets ( libraries * : headers * )
{
declare_install_and_stage_proper_targets $(libraries) ;
declare_install_and_stage_proper_targets $(libraries) : $(headers) ;
targets.create-metatarget top-level-target : [ project.current ]
: install
: install-proper
: install-proper install-unversioned
;
targets.create-metatarget top-level-target : [ project.current ]
: stage
: stage-proper headers
: stage-proper stage-unversioned
;
p = [ project.current ] ;
@@ -436,6 +478,9 @@ rule declare_top_level_targets ( libraries * )
}
stage-abs = [ path.native [ path.root $(stage-locate)/lib [ path.pwd ] ] ] ;
################################################################################
#
# 4. Add hook to report configuration before the build, and confirmation with
@@ -462,6 +507,7 @@ rule pre-build ( )
IMPORT $(__name__) : pre-build : : $(__name__).pre-build ;
build-system.set-pre-build-hook $(__name__).pre-build ;
# FIXME: Revise stage_abs.
rule post-build ( ok ? )
{
if forward in [ modules.peek : top-level-targets ]
@@ -469,8 +515,6 @@ rule post-build ( ok ? )
if $(ok)
{
local include-path = [ path.native $(BOOST_ROOT) ] ;
local stage-abs = [ path.native $(stage-locate)/lib ] ;
ECHO "
The Boost C++ Libraries were successfully built!
@@ -518,19 +562,19 @@ rule libraries-to-install ( existing-libs * )
# Do some checks.
if $(with-parameter) && $(without-parameter)
{
EXIT error\: both --with-<library> and --without-<library> specified ;
EXIT error: both --with-<library> and --without-<library> specified ;
}
local wrong = [ set.difference $(with-parameter) : $(existing-libs) ] ;
if $(wrong)
{
EXIT error\: wrong library name '$(wrong[1])' in the --with-<library>
EXIT error: wrong library name '$(wrong[1])' in the --with-<library>
option. ;
}
local wrong = [ set.difference $(without-parameter) : $(existing-libs) ] ;
if $(wrong)
{
EXIT error\: wrong library name '$(wrong[1])' in the --without-<library>
EXIT error: wrong library name '$(wrong[1])' in the --without-<library>
option. ;
}
@@ -544,7 +588,7 @@ rule libraries-to-install ( existing-libs * )
}
}
rule declare-targets ( all-libraries * )
rule declare-targets ( all-libraries * : headers * )
{
configure.register-components $(all-libraries) ;
@@ -554,7 +598,7 @@ rule declare-targets ( all-libraries * )
if [ option.get "show-libraries" : : true ]
{
ECHO The following libraries require building\: ;
ECHO The following libraries require building: ;
for local l in $(libraries)
{
ECHO " - $(l)" ;
@@ -562,7 +606,7 @@ rule declare-targets ( all-libraries * )
EXIT ;
}
declare_top_level_targets $(libraries) ;
declare_top_level_targets $(libraries) : $(headers) ;
}
# Returns the properties identifying the toolset. We'll use them
@@ -585,11 +629,15 @@ rule deduce-address-model ( properties * )
{
local result ;
local filtered = [ toolset-properties $(properties) ] ;
local names = 32 64 ;
local idx = [ configure.find-builds "default address-model" : $(filtered)
: /boost/architecture//32 "32-bit"
: /boost/architecture//64 "64-bit" ] ;
result = $(names[$(idx)]) ;
if [ configure.builds /boost/architecture//32 : $(filtered) : 32-bit ]
{
result = 32 ;
}
else if [ configure.builds /boost/architecture//64 : $(filtered) : 64-bit ]
{
result = 64 ;
}
if $(result)
{
@@ -618,15 +666,30 @@ rule deduce-architecture ( properties * )
{
local result ;
local filtered = [ toolset-properties $(properties) ] ;
local names = arm mips1 power sparc x86 combined ;
local idx = [ configure.find-builds "default architecture" : $(filtered)
: /boost/architecture//arm
: /boost/architecture//mips1
: /boost/architecture//power
: /boost/architecture//sparc
: /boost/architecture//x86
: /boost/architecture//combined ] ;
result = $(names[$(idx)]) ;
if [ configure.builds /boost/architecture//arm : $(filtered) : arm ]
{
result = arm ;
}
else if [ configure.builds /boost/architecture//mips1 : $(filtered) : mips1 ]
{
result = mips1 ;
}
else if [ configure.builds /boost/architecture//power : $(filtered) : power ]
{
result = power ;
}
else if [ configure.builds /boost/architecture//sparc : $(filtered) : sparc ]
{
result = sparc ;
}
else if [ configure.builds /boost/architecture//x86 : $(filtered) : x86 ]
{
result = x86 ;
}
else if [ configure.builds /boost/architecture//combined : $(filtered) : combined ]
{
result = combined ;
}
if $(result)
{
+459
View File
@@ -0,0 +1,459 @@
# Boost.Build support specific for the Boost C++ Libraries.
# Copyright Vladimir Prus 2002-2010.
# Copyright Dave Abrahams 2005-2006.
# Copyright Rene Rivera 2005-2007.
# Copyright Douglas Gregor 2005.
#
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
import b2.util.option as option
import b2.build.feature as feature
import b2.build.virtual_target as virtual_target
import b2.build.targets as targets
import b2.build.property_set as property_set
import b2.build_system as build_system
import b2.build.configure as configure
import b2.tools.stage as stage
import b2.tools.package as package
import b2.util.regex as regex
import b2.util.set as set
from b2.build.alias import AliasTarget, alias
from b2.tools.message import message
from b2.manager import get_manager
from b2.util import bjam_signature, value_to_jam
from b2.util.sequence import unique
import sys
import os
# FIXME: temporary fix until I port the xsltproc module
feature.feature("xsl:param", [], ["free"])
##############################################################################
#
# 0. General setup. Parse options, check them.
#
##############################################################################
BOOST_ROOT = get_manager().projects().loaded_tool_module_path_[__name__]
print "HERE I AM"
@bjam_signature((["version"],))
def set_version(version):
global BOOST_VERSION, BOOST_VERSION_TAG
BOOST_VERSION = version
pieces = version.split(".")
if pieces[2] == "0":
pieces = pieces[0:2]
BOOST_VERSION_TAG = "_".join(pieces)
# Option to choose how many variants to build. The default is "minimal".
build_type = option.get("build-type", "minimal")
if not build_type in ["minimal", "complete"]:
get_manager().errors()("The value of the --build-type option should be either 'complete' or 'minimal'")
# What kind of layout are we doing?
layout = option.get("layout")
# On Windows, we used versioned layout by default in order to
# be compatible with autolink. On other systems, we use system
# layout which is what every other program uses. Note that windows
# check is static, and won't
if not layout:
if os.name == "nt":
layout = "versioned"
else:
layout = "system"
if layout == "system" and build_type == "complete":
get_manager().errors()(
"Cannot use --layout=system with --build-type complete.\n"
"Please used either --layout=versioned or --layout=tagged\n"
"if you wish to build multiple variants.")
# Possible stage only location.
stage_locate = option.get("stagedir", "stage")
BOOST_STAGE_LOCATE = stage_locate
# Custom build ID.
build_id = option.get("buildid")
if build_id:
BUILD_ID = re.sub("[*\\/:.\"\' ]", "_", build_id)
# Python build id (only for Python libraries)
python_id = option.get("python-buildid")
if python_id:
PYTHON_ID = re.sub("[*\\/:.\"\' ]", "_", python_id)
##############################################################################
#
# 1. The 'tag' function that adds decoration suitable to the properties if
# versioned or tagged layout is requested. This function is called from
# Jamroot
#
##############################################################################
def tag(name, type, ps):
if type in ["STATIC_LIB", "SHARED_LIB", "IMPORT_LIB"]:
pass
## FIXME
## if $(layout) = versioned
## {
## result = [ common.format-name
## <base> <toolset> <threading> <runtime> -$(BOOST_VERSION_TAG)
## -$(BUILD_ID)
## : $(name) : $(type) : $(property-set) ] ;
## }
## else if $(layout) = tagged
## {
## result = [ common.format-name
## <base> <threading> <runtime>
## -$(BUILD_ID)
## : $(name) : $(type) : $(property-set) ] ;
## }
## else if $(layout) = system
## {
## result = [ common.format-name
## <base>
## -$(BUILD_ID)
## : $(name) : $(type) : $(property-set) ] ;
## }
## else
## {
## ECHO "error: invalid layout '$(layout:E=)'" ;
## EXIT ;
## }
## # Optionally add version suffix. On NT, library with version suffix
## # will not be recognized by linkers. On CYGWIN, we get strage
## # duplicate symbol errors when library is generated with version
## # suffix. On OSX, version suffix is not needed -- the linker expects
## # the libFoo.1.2.3.dylib format. AIX linkers do not accept version
## # suffixes either. Pgi compilers can not accept library with version
## # suffix.
## if $(type) = SHARED_LIB &&
## ( ! ( [ $(property-set).get <target-os> ] in windows cygwin darwin aix ) &&
## ! ( [ $(property-set).get <toolset> ] in pgi ) )
## {
## result = $(result).$(BOOST_VERSION) ;
## }
## return $(result) ;
## }
##############################################################################
#
# 2. Declare targets that build and install all libraries. Specifically:
#
# - 'stage-proper' that puts all libraries in stage/lib
# - 'install-proper' that install libraries and headers to system location
# - 'stage-unversioned' that creates links to libraries without boost veriosn
# in name
# - 'install-unversioned' which creates unversioned linked to installed
# libraries.
#
##############################################################################
# Worker function suitable to the 'generate' metatarget. Creates a link
# to 'source', striping any version number from the name.
def make_unversioned_links(project, name, ps, sources):
result = []
filtered = []
nt = os.name == "nt"
# Collect the libraries that have the version number in 'filtered'.
for s in sources:
if nt:
m = s.name().endswith(".lib")
else:
m = re.match("(.*[.]so[.0-9]+)" "(.*[.]dylib)" "(.*[.]a)", s.name())
if m:
filtered.append(s)
# Create links without version.
for s in filtered:
a = virtual_target.NonScanningAction(s, "symlink.ln", s.action().properties())
name = s.name()
if nt:
m = re.match("(.*)-[0-9_]+(.*[.]lib)", name)
else:
m = re.match("(.*)-[0-9_]+(.*[.]so)[.0-9]*", name)
if not m:
m = re.match("(.*)-[0-9_]+(.*[.]dylib)", name)
if not m:
m = re.match("(.*)-[0-9_]+(.*[.]a)", name)
if not m:
m = re.match("(.*)-[0-9_]+(.*[.]dll[.]a)", name)
new_name = m.group(1) + m.group(2)
result.append(virtual_target.FileTarget(new_name, s.type(), project, a,
exact=True))
return result
def declare_install_and_stage_proper_targets(libraries, headers):
install_requirements = ["<install-source-root>" + BOOST_ROOT + "/boost"]
if layout == "versioned":
install_requirements.append("<install-header-subdir>boost-" + BOOST_VERSION_TAG + "/boost")
else:
install_requirements.append("<install-header-subdir>boost")
if os.name == "nt":
default_prefix = "C:/Boost"
else:
default_prefix = "/usr/local"
install_requirements.append("<install-default-prefix>" + default_prefix)
p = get_manager().projects().current()
package.install("install-proper",
install_requirements + ["<install-no-version-symlinks>on"],
[],
["libs/%s/build" % l for l in libraries],
headers)
p.mark_targets_as_explicit(["install-proper"])
stage.install("stage-proper",
["libs/%s/build" % l for l in libraries],
["<location>" + stage_locate + "/lib",
"<install-dependencies>on", "<install-type>LIB",
"<install-no-version-symlinks>on"])
p.mark_targets_as_explicit(["stage-proper"])
gr = value_to_jam(make_unversioned_links)
gr = "<generating-rule>" + gr
if layout == "versioned":
generate("stage-unversioned", ["stage-proper"], [gr])
generate("install-unversioned", ["install-proper"], [gr])
else:
# Create do-nothing aliases.
alias("stage-unversioned")
alias("install-unversioned")
p.mark_targets_as_explicit(["stage-unversioned", "install-unversioned"])
##############################################################################
#
# 3. Declare top-level targets 'stage' and 'install'. These examine
# the --build-type option and, in case it's 'complete', build the
# 'install-proper' and 'stage-proper' targets with a number of
# property sets.
#
##############################################################################
# The names of all top-level targets that were built.
top_level_targets = []
class TopLevelTarget(AliasTarget):
def __init__(self, name, project, sources, requirements, default_build,
usage_requirements):
AliasTarget.__init__(self, name, project, sources, requirements, default_build,
usage_requirements)
# On Linux, we build release variant by default, since few users will
# ever want to debug C++ Boost libraries, and there's no ABI
# incompatibility between debug and release variants. We build
# shared and static libraries since that's what most packages
# seem to provide (.so in libfoo and .a in libfoo-dev).
self.minimal_properties = property_set.create([
"<variant>release", "<threading>multi", "<link>shared", "<link>static",
"<runtime-link>shared"])
# On Windows, new IDE projects use:
#
# runtime-link=dynamic, threading=multi, variant=(debug|release)
#
# and in addition, C++ Boost's autolink defaults to static linking.
self.minimal_properties_win = property_set.create([
"<variant>debug", "<variant>release", "<threading>multi", "<link>static",
"<runtime-link>shared"])
self.complete_properties = property_set.create([
"<variant>debug", "<variant>release",
"<threading>single", "<threading>multi"
"<link>shared", "<link>static",
"<runtime-link>shared", "<runtime-link>static"])
def generate(self, ps):
global top_level_targets
top_level_targets.append(self.name())
if build_type == "minimal":
os = ps.get('target-os')
# Because we completely override parent's 'generate'
# we need to check for default value of feature ourself.
if not os:
os = feature.get('target-os').default()
if os == "windows":
expanded = targets.apply_default_build(ps, self.minimal_properties_win)
else:
expanded = targets.apply_default_build(ps, self.minimal_properties)
return self.build_multiple(expanded)
elif build_type == "complete":
expanded = targets.apply_default_build(ps, self.complete_properties)
# Filter inappopriate combinations
filtered = []
for p in expanded:
# See comment in handle-static-runtime regarding this logic.
if ps.get("link") == ["shared"] and p.get("runtime-link") == ["static"] \
and p.get("toolset") != ["cw"]:
# Skip this
pass
else:
filtered.append(p)
return build_multiple(filtered)
else:
get_manager().errors("Unknown build type")
def build_multiple(self, property_sets):
usage_requirements = property_set.empty()
result = []
for p in property_sets:
r = AliasTarget.generate(self, p)
if r:
usage_requirements = usage_requirements.add(r.usage_requirements())
result.extend(r.targets())
return targets.GenerateResult(usage_requirements, unique(result))
def declare_top_level_targets(libraries, headers):
declare_install_and_stage_proper_targets(libraries, headers)
targets.create_metatarget(TopLevelTarget,
"install",
["install-proper", "install-unversioned"])
targets.create_metatarget(TopLevelTarget,
"stage",
["stage-proper", "stage-unversioned"])
message("explain", "\nBuilding the Boost C++ Libraries.\n\n")
get_manager().projects().current().mark_targets_as_explicit(
["install", "stage", "explain"])
# This target is built by default, and will forward to 'stage'
# after producing some explanations.
targets.create_metatarget(TopLevelTarget,
"forward",
["explain", "stage"])
stage_abs = os.path.abspath(os.path.join(stage_locate, "lib"))
##############################################################################
#
# 4. Add hook to report configuration before the build, and confirmation
# with setup instructions after the build
#
##############################################################################
def pre_build():
if "stage" in top_level_targets or "install" in top_level_targets:
configure.print_component_configuration()
build_system.add_pre_build_hook(pre_build)
def post_build(ok):
if "forward" in top_level_targets and ok:
print """\n\nThe Boost C++ Libraries were successfully built!
The following directory should be added to compiler include paths:
%s
The following directory should be added to linker library paths:
%s
""" % (BOOST_ROOT, stage_abs)
build_system.set_post_build_hook(post_build)
##############################################################################
#
# 5. Top-level setup
#
##############################################################################
def libraries_to_install(existing_libraries):
# Decides which libraries are to be installed by looking at --with-<library>
# --without-<library> arguments. Returns the list of directories under "libs"
# which must be built and installed.
with_parameter = regex.transform(sys.argv, "--with-(.*)")
without_parameter = regex.transform(sys.argv, "--without-(.*)")
if not with_parameter and not without_parameter:
# Nothing is specified on command line. See if maybe
# project-config.jam has some choices.
project_config_libs = bjam.call("peek", "project-config", "libraries")
with_parameter = regex.transform(project_config_libs, "--with-(.*)")
without_parameter = regex.transform(project_config_libs, "--without-(.*)")
# Do some checks.
if with_parameter and without_parameter:
get_manager().errors()("both --with-<library> and --without-<library> specified")
wrong = set.difference(with_parameter, existing_libraries)
if wrong:
get_manager().errors()("wrong library name '" + wrong[0] + "' in the --with-<library> option.")
wrong = set.difference(without_parameter, existing_libraries)
if wrong:
get_manager().errors()("wrong library name '" + wrong[0] + "' in the --without-<library> option.")
if with_parameter:
return set.intersection(existing_libraries, with_parameter)
else:
return set.difference(existing_libraries, without_parameter)
def declare_targets(all_libraries, headers):
configure.register_components(all_libraries)
# Select the libraries to install.
libraries = libraries_to_install(all_libraries)
configure.components_building(libraries)
if option.get("show-libraries", None, True):
print "The following libraries require building:"
for l in libraries:
print " - " + l
sys.exit(0)
declare_top_level_targets(libraries, headers)
+13 -36
View File
@@ -1,7 +1,5 @@
@ECHO OFF
SETLOCAL
REM Copyright (C) 2009 Vladimir Prus
REM
REM Distributed under the Boost Software License, Version 1.0.
@@ -36,29 +34,12 @@ goto :bjam_failure
REM Ideally, we should obtain the toolset that build.bat has
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 if not specified.
REM properly. Default to msvc for now.
set toolset=msvc
SET TOOLSET=msvc
IF "%1"=="gcc" SET TOOLSET=gcc
IF "%1"=="vc71" SET TOOLSET=msvc : 7.1
IF "%1"=="vc8" SET TOOLSET=msvc : 8.0
IF "%1"=="vc9" SET TOOLSET=msvc : 9.0
IF "%1"=="vc10" SET TOOLSET=msvc : 10.0
IF "%1"=="vc11" SET TOOLSET=msvc : 11.0
IF "%1"=="vc12" SET TOOLSET=msvc : 12.0
IF "%1"=="vc14" SET TOOLSET=msvc : 14.0
IF "%1"=="vc141" SET TOOLSET=msvc : 14.1
ECHO.
ECHO Generating Boost.Build configuration in project-config.jam for %TOOLSET%...
ECHO # Boost.Build Configuration > project-config.jam
ECHO # Automatically generated by bootstrap.bat >> project-config.jam
ECHO import option ; > project-config.jam
ECHO. >> project-config.jam
ECHO import option ; >> project-config.jam
ECHO. >> project-config.jam
ECHO using %TOOLSET% ; >> project-config.jam
ECHO using %toolset% ; >> project-config.jam
ECHO. >> project-config.jam
ECHO option.set keep-going : false ; >> project-config.jam
ECHO. >> project-config.jam
@@ -67,15 +48,7 @@ ECHO.
ECHO Bootstrapping is done. To build, run:
ECHO.
ECHO .\b2
ECHO.
IF EXIST libs\config\include (
ECHO. To generate header files, run:
ECHO.
ECHO. .\b2 headers
ECHO.
)
ECHO.
ECHO To adjust configuration, edit 'project-config.jam'.
ECHO Further information:
ECHO.
@@ -86,8 +59,7 @@ ECHO - Getting started guide:
ECHO http://boost.org/more/getting_started/windows.html
ECHO.
ECHO - Boost.Build documentation:
ECHO http://www.boost.org/build/
ECHO.
ECHO http://www.boost.org/build/doc/html/index.html
goto :end
@@ -97,8 +69,13 @@ ECHO.
ECHO Failed to build Boost.Build engine.
ECHO Please consult bootstrap.log for further diagnostics.
ECHO.
ECHO You can try to obtain a prebuilt binary from
ECHO.
ECHO http://sf.net/project/showfiles.php?group_id=7586^&package_id=72941
ECHO.
ECHO Also, you can file an issue at http://svn.boost.org
ECHO Please attach bootstrap.log in that case.
REM Set an error code to allow `bootstrap && b2`
cmd /c exit /b 1 > nul
goto :end
:end
+5 -9
View File
@@ -188,7 +188,8 @@ EOF
fi
test -n "$want_help" && exit 0
my_dir=$(dirname "$0")
# TBD: Determine where the script is located
my_dir="."
# Determine the toolset, if not already decided
if test "x$TOOLSET" = x; then
@@ -292,11 +293,6 @@ fi
# Configure ICU
$ECHO -n "Unicode/ICU support for Boost.Regex?... "
if test "x$flag_icu" != xno; then
if test "x$ICU_ROOT" = x; then
if command -v pkg-config > /dev/null && pkg-config icu-uc ; then
ICU_ROOT=`pkg-config --variable=prefix icu-uc`
fi
fi
if test "x$ICU_ROOT" = x; then
COMMON_ICU_PATHS="/usr /usr/local /sw"
for p in $COMMON_ICU_PATHS; do
@@ -333,7 +329,7 @@ if test -r "project-config.jam"; then
fi
# Generate user-config.jam
echo "Generating Boost.Build configuration in project-config.jam for $TOOLSET..."
echo "Generating Boost.Build configuration in project-config.jam..."
cat > project-config.jam <<EOF
# Boost.Build Configuration
# Automatically generated by bootstrap.sh
@@ -401,7 +397,7 @@ Bootstrapping is done. To build, run:
To generate header files, run:
./b2 headers
To adjust configuration, edit 'project-config.jam'.
Further information:
@@ -412,6 +408,6 @@ Further information:
http://www.boost.org/more/getting_started/unix-variants.html
- Boost.Build documentation:
http://www.boost.org/build/
http://www.boost.org/build/doc/html/index.html
EOF
+54
View File
@@ -0,0 +1,54 @@
# Use, modification, and distribution are
# subject to the Boost Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#
# Copyright Rene Rivera 2015-2016.
machine:
environment:
SCRIPT_N: ci_boost_release ci_boost_release
EOL_N: LF CRLF
pre:
- |
wget "https://raw.githubusercontent.com/boostorg/release-tools/develop/ci_boost_common.py" -P ${HOME}
wget "https://raw.githubusercontent.com/boostorg/release-tools/develop/ci_boost_library_check.py" -P ${HOME}
wget "https://raw.githubusercontent.com/boostorg/release-tools/develop/ci_boost_release.py" -P ${HOME}
wget "https://raw.githubusercontent.com/boostorg/release-tools/develop/ci_boost_status.py" -P ${HOME}
echo '#!/bin/bash' > ${HOME}/script.sh
echo 'export SCRIPT_N=(${SCRIPT_N})' >> "${HOME}/script.sh"
echo 'export SCRIPT=${SCRIPT_N[$CIRCLE_NODE_INDEX]}' >> "${HOME}/script.sh"
echo 'export EOL_N=(${EOL_N})' >> "${HOME}/script.sh"
echo 'export EOL=${EOL_N[$CIRCLE_NODE_INDEX]}' >> "${HOME}/script.sh"
echo 'python "${HOME}/${SCRIPT}.py" "$@"' >> "${HOME}/script.sh"
chmod +x "${HOME}/script.sh"
post:
- sudo apt-get update
- sudo apt-get install xsltproc
- exec "${HOME}/script.sh" machine_post
checkout:
post:
- exec "${HOME}/script.sh" checkout_post
dependencies:
pre:
- exec "${HOME}/script.sh" dependencies_pre
override:
- exec "${HOME}/script.sh" dependencies_override
post:
- exec "${HOME}/script.sh" dependencies_post
database:
pre:
- exec "${HOME}/script.sh" database_pre
override:
- exec "${HOME}/script.sh" database_override
post:
- exec "${HOME}/script.sh" database_post
test:
pre:
- exec "${HOME}/script.sh" test_pre:
parallel: true
override:
- exec "${HOME}/script.sh" test_override:
parallel: true
post:
- exec "${HOME}/script.sh" test_post:
parallel: true
+4 -3
View File
@@ -1,5 +1,5 @@
# Copyright (c) 2002 Douglas Gregor <doug.gregor -at- gmail.com>
# Copyright (c) 2016-2018 Rene Rivera
# Copyright (c) 2016 Rene Rivera
#
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
@@ -24,7 +24,7 @@ import "class" : is-a ;
path-constant BOOST_DOC : . ;
local lib-docs = [ path.glob [ path.glob $(BOOST_DOC)/../libs $(BOOST_DOC)/../tools : */doc ]
local lib-docs = [ path.glob [ path.glob $(BOOST_DOC)/../libs : */doc ]
: [ modules.peek project : JAMFILE ] ] ;
local rule find-target-of-class-or-type ( root-target : klass ? : type ? )
@@ -178,8 +178,10 @@ xinclude libraries :
explicit libraries ;
xinclude tools :
../tools/build/doc//jam_docs
../tools/quickbook/doc//quickbook
../tools/boostbook/doc/boostbook.xml
../tools/build/doc//boostdoc
;
explicit tools ;
@@ -187,7 +189,6 @@ boostbook doc
:
src/boost.xml
:
<xsl:param>generate.consistent.ids=1
<use>$(lib-doc-boostdoc-refs)
<dependency>libraries
<implicit-dependency>libraries
+1 -1
View File
@@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/bin/bash
boost_version=$(grep 'define.*BOOST_LIB_VERSION' ../../boost/version.hpp | sed 's/.*"\([^"]*\)".*/\1/')
echo Boost version tag = $boost_version
(cd ../../libs/accumulators/doc && bjam -a --hash) 2>&1 | tee build.log
+1 -1
View File
@@ -39,7 +39,7 @@
<title>The Boost C++ Libraries (BoostBook Subset)</title>
<xi:include href="libraries.xinclude" xpointer="xpointer(/*/node())"/>
<library name="Concept Check" dirname="concept_check" id="concept_check">
<library name="Concept Check" dirname="concept_check">
<libraryinfo>
<author>
<firstname>Jeremy</firstname>
+1 -74
View File
@@ -5,7 +5,6 @@ http://spirit.sourceforge.net/
Copyright 2013 Niall Douglas additions for colors and alignment.
Copyright 2013 Paul A. Bristow additions for more colors and alignments.
Copyright 2017 Tom Westerhout font fixes to support Sphinx
Distributed under the Boost Software License, Version 1.0. (See accompany-
ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -18,7 +17,6 @@ Body defaults
body
{
margin: 1em;
font-size: 16px;
font-family: sans-serif;
}
@@ -26,7 +24,7 @@ Body defaults
Paragraphs
=============================================================================*/
p, div.document, div.footer
p
{
text-align: left;
font-size: 10pt;
@@ -50,7 +48,6 @@ Program listings
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
}
div.highlight,
.programlisting,
.screen
{
@@ -317,7 +314,6 @@ Blurbs
div.important,
div.caution,
div.warning,
div.blurb,
p.blurb
{
font-size: 9pt; /* A little bit smaller than the main text */
@@ -327,7 +323,6 @@ Blurbs
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
}
div.blurb img,
p.blurb img
{
padding: 1pt;
@@ -416,80 +411,15 @@ Colors
}
/* Syntax Highlighting */
.property,
.highlight .k,
.highlight .kc,
.highlight .kd,
.highlight .kn,
.highlight .kp,
.highlight .kr,
.highlight .kt,
.keyword { color: #0000AA; }
.highlight .n,
.highlight .na,
.highlight .nb,
.highlight .bp,
.highlight .nc,
.highlight .no,
.highlight .nd,
.highlight .ni,
.highlight .ne,
.highlight .nf,
.highlight .py,
.highlight .nl,
.highlight .nn,
.highlight .nx,
.highlight .nt,
.highlight .nv,
.highlight .vc,
.highlight .vg,
.highlight .vi,
.identifier { color: #000000; }
.special { color: #707070; }
.highlight .cp,
.preprocessor { color: #402080; }
.highlight .sc
.char { color: teal; }
.highlight .c,
.highlight .ch,
.highlight .cm,
.highlight .cp,
.highlight .cpf,
.highlight .c1,
.highlight .cs,
.highlight .sd,
.highlight .sh,
.comment { color: #800000; }
.highlight .s,
.highlight .sa,
.highlight .sb,
.highlight .dl,
.highlight .s2,
.highlight .se,
.highlight .si,
.highlight .sx,
.highlight .sr,
.highlight .s1,
.highlight .ss,
.string { color: teal; }
.highlight .m,
.highlight .mf,
.highlight .mh,
.highlight .mi,
.highlight .mo,
.number { color: teal; }
.highlight,
.white_bkd { background-color: #FFFFFF; }
.highlight .hll,
.dk_grey_bkd { background-color: #999999; }
/* Links */
@@ -532,7 +462,6 @@ Colors
border: 1px solid #DCDCDC;
}
div.highlight,
.programlisting,
.screen
{
@@ -551,7 +480,6 @@ Colors
div.important,
div.caution,
div.warning,
div.blurb,
p.blurb
{
border: 1px solid #DCDCDC;
@@ -613,7 +541,6 @@ Colors
border: 1px solid gray;
}
div.highlight,
.programlisting,
.screen
{
+2 -8
View File
@@ -14,10 +14,7 @@
<a href="index.html">
<img src="boost.png" alt="boost.png (6897 bytes)" align="middle" width="277" height="86" border="0"/></a></td>
<td width="337" align="middle">
<h2 style="text-align: center">
{{#is_develop}}Development Snapshot{{/is_develop}}
{{^is_develop}}Release {{version}}{{/is_develop}}
</h2>
<h2 style="text-align: center">Release {{version}}</h2>
</td>
</tr>
</table>
@@ -59,10 +56,7 @@
<h3>Changes in this release</h3>
{{#unreleased_lib_count}}
<p>
{{#is_develop}}This development snapshot{{/is_develop}}
{{^is_develop}}Boost {{minor_release}}{{/is_develop}}
includes {{unreleased_lib_count}} new
<p>The release includes {{unreleased_lib_count}} new
{{#unreleased_library_plural}}libraries{{/unreleased_library_plural}}
{{^unreleased_library_plural}}library{{/unreleased_library_plural}}
({{#unreleased_libs}}{{#index}}, {{/index}}<a href="{{link}}">{{name}}</a>{{/unreleased_libs}})
Submodule libs/beast deleted from 1e5b4f531d
Submodule libs/contract deleted from 5a72a905dd
Submodule libs/headers deleted from 88c0850803
Submodule libs/histogram deleted from d32b225bfc
Submodule libs/hof deleted from a5fcba3ae4
+1 -1
Submodule libs/io updated: 3a643e558d...00ef24c843
+10 -22
View File
@@ -20,10 +20,8 @@ asio Chris Kohlhoff <chris -at- kohlhoff.com>
assert Peter Dimov <pdimov -at- pdimov.com>
assign Thorsten Ottosen <nesotto -at- cs.auc.dk>
atomic Helge Bahmann <hcb -at- chaoticmind.net>, Tim Blechmann <tim -at- klingt.org>, Andrey Semashev <andrey.semashev -at- gmail.com>
beast Vinnie Falco <vinnie.falco@gmail.com>
bimap Matias Capeletto <matias.capeletto -at- gmail.com>
bind Peter Dimov <pdimov -at- pdimov.com>
callable_traits Barrett Adair <barrettellisadair -at- gmail.com>
chrono Vicente J. Botet Escriba <vicente.botet -at- wanadoo.fr>
chrono/stopwatch Vicente J. Botet Escriba <vicente.botet -at- wanadoo.fr>
circular_buffer Jan Gaspar <jano_gaspar -at- yahoo.com>
@@ -32,14 +30,13 @@ concept_check Jeremy Siek <jeremy.siek -at- gmail.com>
config John Maddock <john -at- johnmaddock.co.uk>
container Ion Gaztanaga <igaztanaga -at- gmail.com>
context Oliver Kowalke <oliver.kowalke -at- gmail.com>
contract Lorenzo Caminiti <lorcaminiti -at- gmail.com>
conversion Antony Polukhin <antoshkka -at- gmail.com>
convert Vladimir Batov <vbmail247 -at- gmail.com>
core Peter Dimov <pdimov -at- pdimov.com>, Glen Fernandes <glenjofe -at- gmail.com>, Andrey Semashev <andrey.semashev -at- gmail.com>
core Peter Dimov <pdimov -at- pdimov.com>, Glen Fernandes <glenfe -at- live.com>, Andrey Semashev <andrey.semashev -at- gmail.com>
coroutine Oliver Kowalke <oliver.kowalke -at- gmail.com>
coroutine2 Oliver Kowalke <oliver.kowalke -at- gmail.com>
crc Daryle Walker <darylew -at- hotmail.com>
date_time Jeff Garland <jeff -at- crystalclearsoftware.com>, James E. King III <jking -at- apache.org>
date_time Jeff Garland <jeff -at- crystalclearsoftware.com>
detail Beman Dawes <bdawes -at- acm.org>, Robert Ramey <ramey -at- rrsd.com>, Rene Rivera <grafikrobot -at- gmail.com>, Andrey Semashev <andrey.semashev -at- gmail.com>
disjoint_sets Jeremy Siek <jeremy.siek -at- gmail.com>
dll Antony Polukhin <antoshkka -at- gmail.com>
@@ -47,11 +44,11 @@ dynamic_bitset Jeremy Siek <jeremy.siek -at- gmail.com>
endian Beman Dawes <bdawes -at- acm.org>
exception Emil Dotchevski <emil -at- revergestudios.com>
fiber Oliver Kowalke <oliver.kowalke -at- gmail.com>
filesystem Beman Dawes <bdawes -at- acm.org>, Andrey Semashev <andrey.semashev -at- gmail.com>
filesystem Beman Dawes <bdawes -at- acm.org>
flyweight Joaquin M Lopez Munoz <joaquin.lopezmunoz -at- gmail.com>
foreach Eric Niebler <eric -at- boostpro.com>
format Samuel Krempp <krempp -at- crans.ens-cachan.fr>, James E. King III <jking -at- apache.org>
function Peter Dimov <pdimov -at- pdimov.com>
format Samuel Krempp <krempp -at- crans.ens-cachan.fr>
function Douglas Gregor <dgregor -at- cs.indiana.edu>
function_types Tobias Schwinger <tschwinger -at- isonews2.com>
functional
functional/factory Tobias Schwinger <tschwinger -at- isonews2.com>
@@ -60,15 +57,13 @@ functional/hash Daniel James <dnljms -at- gmail.com>
functional/overloaded_function Lorenzo Caminiti <lorcaminiti -at- gmail.com>
fusion Joel de Guzman <joel -at- boost-consulting.com>, Dan Marsden <danmarsden -at- yahoo.co.uk>, Tobias Schwinger <tschwinger -at- isonews2.com>
geometry Barend Gehrels <barend -at- xs4all.nl>, Bruno Lalande <bruno.lalande -at- gmail.com>, Mateusz Loskot <mateusz -at- loskot.net>, Adam Wulkiewicz <adam.wulkiewicz -at- gmail.com>
gil Stefan Seefeld <stefan -at- seefeld.name>, Mateusz Loskot <mateusz -at- loskot.net>
gil Christian Henning <chhenning -at- gmail.com>
graph K. Noel Belcourt <kbelco -at- sandia.gov>
graph_parallel K. Noel Belcourt <kbelco -at- sandia.gov>
hana Louis Dionne <ldionne.2 -at- gmail.com>
heap Tim Blechmann <tim -at- klingt.org>
histogram Hans Dembinski <hans.dembinski@gmail.com>
hof Paul Fultz II <pfultz2 -at- yahoo.com>
icl Joachim Faulhaber <afojgo -at- gmail.com>
integer Daryle Walker <darylew -at- hotmail.com>, Andrey Semashev <andrey.semashev -at- gmail.com>
integer Daryle Walker <darylew -at- hotmail.com>
interprocess Ion Gaztanaga <igaztanaga -at- gmail.com>
intrusive Ion Gaztanaga <igaztanaga -at- gmail.com>
io Daryle Walker <darylew -at- hotmail.com>
@@ -84,7 +79,6 @@ logic Douglas Gregor <dgregor -at- cs.indiana.edu>
math Hubert Holin <Hubert.Holin -at- meteo.fr>, John Maddock <john -at- johnmaddock.co.uk>
metaparse Abel Sinkovics <abel -at- elte.hu>
move Ion Gaztanaga <igaztanaga -at- gmail.com>
mp11 Peter Dimov <pdimov -at- pdimov.com>
mpi K. Noel Belcourt <kbelco -at- sandia.gov>, Alain Miniussi <alain.miniussi -at- oca.eu>
mpl Aleksey Gurtovoy <agurtovoy -at- meta-comm.com>
msm Christophe Henry <christophe.j.henry -at- googlemail.com>
@@ -94,12 +88,10 @@ multiprecision John Maddock <john -at- johnmaddock.co.uk>, christopher Ko
numeric/conversion Fernando Cacciola <fernando_cacciola -at- ciudad.com.ar>, Brandon Kohn <blkohn -at- hotmail.com>
numeric/interval Sylvain Pion <Sylvain.Pion -at- sophia.inria.fr>, Herve Bronnimann <hbr -at- poly.edu>, Guillaume Melquiond <guillaume.melquiond -at- ens-lyon.fr>
numeric/odeint Karsten Ahnert <karsten.ahnert -at- gmx.de>, Mario Mulansky <mario.mulansky -at- gmx.net>
numeric/ublas David Bellot <david.bellot -at- gmail.com>, Stefan Seefeld <stefan -at- seefeld.name>
numeric/ublas David Bellot <david.bellot -at- gmail.com>
operators Daniel Frey <d.frey -at- gmx.de>
optional Fernando Cacciola <fernando_cacciola -at- ciudad.com.ar>, Andrzej Krzemienski <akrzemi1 -at- gmail.com>
outcome Niall Douglas
parameter David Abrahams <dave -at- boost-consulting.com>, Daniel Wallin <daniel -at- boostpro.com>
parameter_python David Abrahams <dave -at- boost-consulting.com>, Daniel Wallin <daniel -at- boostpro.com>
phoenix Joel de Guzman <djowel -at- gmail.com>, Thomas Heller <thom.heller -at- gmail.com>, John Fletcher <J.P.Fletcher -at- aston.ac.uk>
poly_collection Joaquin M Lopez Munoz <joaquin.lopezmunoz -at- gmail.com>
polygon Lucanus Simonson <lucanus.j.simonson -at- intel.com>, Andrii Sydorchuk <sydorchuk.andriy -at- gmail.com>
@@ -119,7 +111,6 @@ range Neil Groves <neilgroves -at- googlemail.com>, Nathan Ridge
ratio Vicente J. Botet Escriba <vicente.botet -at- wanadoo.fr>
rational Jonathan Turkanis <turkanis -at- coderage.com>
regex John Maddock <john -at- johnmaddock.co.uk>
safe_numerics Robert Ramey <ramey -at- rrsd.com>
scope_exit Alexander Nasonov <alexander.nasonov -at- gmail.com>, Lorenzo Caminiti <lorcaminiti -at- gmail.com>
serialization Robert Ramey <ramey -at- rrsd.com>
signals Douglas Gregor <dgregor -at- cs.indiana.edu>
@@ -128,14 +119,12 @@ smart_ptr Peter Dimov <pdimov -at- pdimov.com>
smart_ptr/make_shared Glen Fernandes <glenfe -at- live.com>
sort Steven Ross <spreadsort -at- gmail.com>
spirit Joel de Guzman <joel -at- boost-consulting.com>, Hartmut Kaiser <hartmut.kaiser -at- gmail.com>
spirit/classic Joel de Guzman <joel -at- boost-consulting.com>, Hartmut Kaiser <hartmut.kaiser -at- gmail.com>
spirit/repository Joel de Guzman <joel -at- boost-consulting.com>, Hartmut Kaiser <hartmut.kaiser -at- gmail.com>
stacktrace Antony Polukhin <antoshkka -at- gmail.com>
statechart Andreas Huber <ahd6974-boostorg -at- yahoo.com>
static_assert John Maddock <john -at- johnmaddock.co.uk>
sync Tim Blechmann <tim -at- klingt.org>, Andrey Semashev <andrey.semashev -at- gmail.com>, Vicente J. Botet Escriba <vicente.botet -at- wanadoo.fr>
test Gennadiy Rozental <rogeeff -at- gmail.com>, Raffi Enficiaud <raffi.enficiaud -at- free.fr>
thread Vicente J. Botet Escriba <vicente.botet -at- wanadoo.fr>
thread Vicente J. Botet Escriba <vicente.botet -at- wanadoo.fr>, Niall Douglas <niall -at- nedprod.com>
throw_exception Emil Dotchevski <emil -at- revergestudios.com>
timer Beman Dawes <bdawes -at- acm.org>
tokenizer John R. Bandela <jbandela -at- ufl.edu>
@@ -153,13 +142,12 @@ utility/enable_if Jaakko Jarvi <jarvi -at- cs.tamu.edu>, Jeremiah Willcock <
utility/identity_type Lorenzo Caminiti <lorcaminiti -at- gmail.com>
utility/result_of Daniel Walker <daniel.j.walker -at- gmail.com>
utility/swap Joseph Gauterin <joseph.gauterin -at- googlemail.com>
uuid Andy Tompkins <atompkins -at- fastmail.fm>, James E. King III <jking -at- apache.org>
uuid Andy Tompkins <atompkins -at- fastmail.fm>
variant Antony Polukhin <antoshkka -at- gmail.com>, Eric Friedman <ericbrandon -at- gmail.com>
vmd Edward Diener <eld -at- tropicsoft.com>
wave Hartmut Kaiser <hartmut.kaiser -at- gmail.com>
winapi Andrey Semashev <andrey.semashev -at- gmail.com>
xpressive Eric Niebler <eric -at- boostpro.com>
yap Zach Laine <whatwasthataddress -at- gmail.com>
Submodule libs/mp11 deleted from f7ca2842c3
Submodule libs/outcome deleted from e6d4cac4e8

Some files were not shown because too many files have changed in this diff Show More