summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTroy D. Straszheim <troy@resophonic.com>2009-01-24 18:57:20 +0000
committerTroy D. Straszheim <troy@resophonic.com>2009-01-24 18:57:20 +0000
commita0a37bc6333acd48cf869caf0afd46a44b2abfb8 (patch)
treed096bc4f44ba13b66a6c5e48e18635dd87f31483
parentb905fdb8aff4b0175cf842c531e73162aa5acd0d (diff)
downloadboost-a0a37bc6333acd48cf869caf0afd46a44b2abfb8.tar.gz
merge of cmake build files from trunk per beman
[SVN r50756]
-rw-r--r--BuildSlave.cmake64
-rw-r--r--CMakeLists.txt243
-rw-r--r--doc/CMakeLists.txt3
-rw-r--r--doc/src/CMakeLists.txt13
-rw-r--r--libs/CMakeLists.txt57
m---------libs/accumulators0
m---------libs/algorithm0
m---------libs/any0
m---------libs/array0
m---------libs/asio0
m---------libs/assign0
m---------libs/bimap0
m---------libs/bind0
m---------libs/circular_buffer0
m---------libs/compatibility0
m---------libs/concept_check0
m---------libs/config0
m---------libs/conversion0
m---------libs/crc0
m---------libs/date_time0
m---------libs/detail0
m---------libs/disjoint_sets0
m---------libs/dynamic_bitset0
m---------libs/exception0
m---------libs/foreach0
m---------libs/format0
m---------libs/function0
m---------libs/function_types0
m---------libs/functional0
m---------libs/fusion0
m---------libs/gil0
m---------libs/graph0
m---------libs/integer0
m---------libs/io0
m---------libs/iostreams0
m---------libs/iterator0
m---------libs/lambda0
m---------libs/logic0
m---------libs/math0
m---------libs/mpi0
m---------libs/mpl0
m---------libs/multi_array0
m---------libs/multi_index0
-rw-r--r--libs/numeric/CMakeLists.txt21
m---------libs/numeric/conversion0
m---------libs/numeric/interval0
-rw-r--r--libs/numeric/module.cmake1
m---------libs/numeric/ublas0
m---------libs/optional0
m---------libs/parameter0
m---------libs/pool0
m---------libs/preprocessor0
m---------libs/program_options0
m---------libs/property_map0
m---------libs/proto0
m---------libs/ptr_container0
m---------libs/python0
m---------libs/random0
m---------libs/range0
m---------libs/rational0
m---------libs/regex0
m---------libs/serialization0
m---------libs/signals0
m---------libs/smart_ptr0
m---------libs/spirit0
m---------libs/statechart0
m---------libs/static_assert0
m---------libs/system0
m---------libs/test0
m---------libs/thread0
m---------libs/timer0
m---------libs/tokenizer0
m---------libs/tr10
m---------libs/tuple0
m---------libs/type_traits0
m---------libs/typeof0
m---------libs/units0
m---------libs/unordered0
m---------libs/utility0
m---------libs/variant0
m---------libs/wave0
m---------libs/xpressive0
-rw-r--r--tools/CMakeLists.txt82
m---------tools/bcp0
m---------tools/quickbook0
85 files changed, 484 insertions, 0 deletions
diff --git a/BuildSlave.cmake b/BuildSlave.cmake
new file mode 100644
index 0000000000..ec8a125390
--- /dev/null
+++ b/BuildSlave.cmake
@@ -0,0 +1,64 @@
+##########################################################################
+# Boost Build Slave Support #
+##########################################################################
+# Copyright (C) 2008 Troy D. Straszheim #
+# #
+# 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 #
+##########################################################################
+#
+# Quick configuration of build slaves.
+#
+# 1. Copy this file to your (empty, newly created) build directory
+# 2. Customize below where you see CUSTOMIZE
+# 3. Use this file to populate your build directory. From the build
+# directory execute:
+#
+# cmake -C path/to/this/file ../path/to/source/directory
+#
+# e.g.
+#
+# cmake -C BuildSlave.cmake ../src
+#
+
+message (STATUS "Reading initial cache for build slaves.")
+
+#
+# CUSTOMIZE
+#
+set(BOOST_BUILD_SLAVE_CONTACT_INFO "buildmeister@example.com"
+ CACHE STRING "who to contact with questions" FORCE)
+
+set(BOOST_BUILD_SLAVE_HOSTNAME "descriptive.name.of.host.example.com"
+ CACHE STRING "descriptive hostname" FORCE)
+
+#
+# CUSTOMIZE: Either set this to the path of an existing file
+# (relative to build directory) or create the file slave-description.txt
+#
+set(BOOST_BUILD_SLAVE_DETAILS_FILE "slave-description.txt"
+ CACHE STRING "file containing details about the build/platform" FORCE)
+
+#
+# Below this line oughtn't require customization.
+#
+if(EXISTS ${BOOST_BUILD_SLAVE_DETAILS_FILE})
+ message(STATUS "Will take build details from ${BOOST_BUILD_SLAVE_DETAILS_FILE}")
+else(EXISTS ${BOOST_BUILD_SLAVE_DETAILS_FILE})
+ message(FATAL_ERROR "Please configure BOOST_BUILD_SLAVE_DETAILS_FILE (${BOOST_BUILD_SLAVE_DETAILS_FILE}) and create this file")
+endif(EXISTS ${BOOST_BUILD_SLAVE_DETAILS_FILE})
+
+if(WIN32)
+ set(CMAKE_GENERATOR "NMake Makefiles" CACHE INTERNAL "generator" FORCE)
+ set(CMAKE_MAKE_PROGRAM "nmake" CACHE INTERNAL "nmake" FORCE)
+endif(WIN32)
+
+set(BUILD_TESTING ON
+ CACHE BOOL "build testing" FORCE)
+
+set(BOOST_BUILD_SLAVE ON
+ CACHE BOOL "build slave mode" FORCE)
+
+
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000000..711cc54986
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,243 @@
+##########################################################################
+# CMake Build Rules for Boost #
+##########################################################################
+# Copyright (C) 2007, 2008 Douglas Gregor <doug.gregor@gmail.com> #
+# Copyright (C) 2007 Troy Straszheim #
+# #
+# 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 #
+##########################################################################
+# Basic Usage: #
+# #
+# On Unix variants: #
+# ccmake BOOST_DIRECTORY #
+# #
+# (c)onfigure options to your liking, then (g)enerate #
+# makefiles. Use "make" to build, "make test" to test, "make #
+# install" to install, and "make package" to build binary #
+# packages. #
+# #
+# On Windows: #
+# run the CMake GNU, load the Boost directory, and generate #
+# project files or makefiles for your environment. #
+# #
+# For more information about CMake, see http://www.cmake.org #
+##########################################################################
+cmake_minimum_required(VERSION 2.6.0 FATAL_ERROR)
+project(Boost)
+
+
+##########################################################################
+# Post a warning to those attempting to use the CMake Build system. When #
+# the build system stabilizes this can be removed. #
+##########################################################################
+if (NOT CMAKE_IS_EXPERIMENTAL)
+message(STATUS "##########################################################################")
+message(STATUS " THE CMAKE BUILD SYSTEM IS CURRENTLY UNDER DEVELOPMENT. PLEASE USE THE ")
+message(STATUS " BJAM BASED SYSTEM INSTEAD TO BUILD A PRODUCTION VERSION OF BOOST. IF YOU ")
+message(STATUS " STILL WANT TO TRY IT OUT INVOKE CMake WITH '-DCMAKE_IS_EXPERIMENTAL=TRUE'")
+message(STATUS " ARGUMENT. After this first run of cmake you will no longer have to supply")
+message(STATUS " the argument unless you need to run a cmake on a clean build directory.")
+message(STATUS "##########################################################################")
+message(FATAL_ERROR "")
+endif (NOT CMAKE_IS_EXPERIMENTAL)
+
+##########################################################################
+# Version information #
+##########################################################################
+set(BOOST_VERSION_MAJOR 1)
+set(BOOST_VERSION_MINOR 38)
+set(BOOST_VERSION_SUBMINOR 0)
+set(BOOST_VERSION "${BOOST_VERSION_MAJOR}.${BOOST_VERSION_MINOR}.${BOOST_VERSION_SUBMINOR}")
+##########################################################################
+
+# Put the libaries and binaries that get built into directories at the
+# top of the build tree rather than in hard-to-find leaf
+# directories. This simplifies manual testing and the use of the build
+# tree rather than installed Boost libraries.
+SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
+SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
+
+##########################################################################
+# Boost CMake modules #
+##########################################################################
+list(APPEND CMAKE_MODULE_PATH ${Boost_SOURCE_DIR}/tools/build/CMake)
+include(BoostUtils)
+include(BoostConfig)
+include(BoostBuildSlave)
+include(BoostCore)
+include(BoostDocs)
+include(BoostTesting)
+##########################################################################
+
+##########################################################################
+# Build Features and Variants #
+##########################################################################
+
+# Determine default settings for the variable BUILD_feature options
+if (MSVC)
+ set(BUILD_SINGLE_THREADED_DEFAULT OFF)
+else ()
+ set(BUILD_SINGLE_THREADED_DEFAULT OFF)
+endif ()
+
+# User-level options deciding which variants we will build.
+option(BUILD_STATIC "Whether to build static libraries" ON)
+option(BUILD_SHARED "Whether to build shared libraries" ON)
+option(BUILD_DEBUG "Whether to build debugging libraries" ON)
+option(BUILD_RELEASE "Whether to build release libraries" ON)
+option(BUILD_SINGLE_THREADED "Whether to build single-threaded libraries"
+ ${BUILD_SINGLE_THREADED_DEFAULT})
+option(BUILD_MULTI_THREADED "Whether to build multi-threaded libraries" ON)
+
+# For now, we only actually support static/dynamic run-time variants for
+# Visual C++. Provide both options for Visual C++ users, but just fix
+# the values of the variables for all other platforms.
+if(MSVC)
+ option(BUILD_STATIC_RUNTIME "Whether to build libraries linking against the static runtime" ON)
+ option(BUILD_DYNAMIC_RUNTIME "Whether to build libraries linking against the dynamic runtime" ON)
+else(MSVC)
+ set(BUILD_STATIC_RUNTIME OFF)
+ set(BUILD_DYNAMIC_RUNTIME ON)
+endif(MSVC)
+
+# The default set of library variants that we will be building
+boost_add_default_variant(RELEASE DEBUG)
+boost_add_default_variant(STATIC SHARED)
+boost_add_default_variant(SINGLE_THREADED MULTI_THREADED)
+boost_add_default_variant(DYNAMIC_RUNTIME STATIC_RUNTIME)
+
+# Extra features used by some libraries
+set(BUILD_PYTHON_NODEBUG ON)
+boost_add_extra_variant(PYTHON_NODEBUG PYTHON_DEBUG)
+##########################################################################
+
+##########################################################################
+# Installation #
+##########################################################################
+if(BOOST_VERSION_SUBMINOR GREATER 0)
+ set(BOOST_HEADER_DIR
+ "include/boost-${BOOST_VERSION_MAJOR}_${BOOST_VERSION_MINOR}_${BOOST_VERSION_SUBMINOR}")
+else(BOOST_VERSION_SUBMINOR GREATER 0)
+ set(BOOST_HEADER_DIR
+ "include/boost-${BOOST_VERSION_MAJOR}_${BOOST_VERSION_MINOR}")
+endif(BOOST_VERSION_SUBMINOR GREATER 0)
+install(DIRECTORY boost
+ DESTINATION ${BOOST_HEADER_DIR}
+ PATTERN "CVS" EXCLUDE
+ PATTERN ".svn" EXCLUDE)
+#
+# TDS 20080526: Getting a segfault here even with the ifs. At r45780, with these lines
+# uncommented:
+# 1. cmake the workspace
+# 2. run ccmake and turn OFF BUILD_MULTI_THREADED and BUILD_SHARED
+# 3. 'c' to configure
+# 4. 'g' to generate.... segfault.
+# 5. run rebuild_cache at the command line: no segfault this time.
+#
+# With these lines commented out, step 4 above does not segfault.
+#
+#if (NOT TEST_INSTALLED_TREE)
+ # If I don't have if around this, I get a seg fault
+# install(EXPORT boost-targets DESTINATION "lib/Boost${BOOST_VERSION}")
+#endif (NOT TEST_INSTALLED_TREE)
+##########################################################################
+
+##########################################################################
+# Binary packages #
+##########################################################################
+set(CPACK_PACKAGE_NAME "Boost")
+set(CPACK_PACKAGE_VENDOR "Boost.org")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Boost ${BOOST_VERSION}")
+
+if (EXISTS "${Boost_SOURCE_DIR}/README.txt")
+ message(STATUS "Using generic cpack package description file.")
+ set(CPACK_PACKAGE_DESCRIPTION_FILE "${Boost_SOURCE_DIR}/README.txt")
+ set(CPACK_RESOURCE_FILE_README "${Boost_SOURCE_DIR}/README.txt")
+endif ()
+
+set(CPACK_RESOURCE_FILE_LICENSE "${Boost_SOURCE_DIR}/LICENSE_1_0.txt")
+if (EXISTS "${Boost_SOURCE_DIR}/Welcome.txt")
+ message(STATUS "Using generic cpack welcome file.")
+ set(CPACK_RESOURCE_FILE_WELCOME "${Boost_SOURCE_DIR}/Welcome.txt")
+endif()
+
+set(CPACK_PACKAGE_VERSION "${BOOST_VERSION}")
+set(CPACK_PACKAGE_VERSION_MAJOR "${BOOST_VERSION_MAJOR}")
+set(CPACK_PACKAGE_VERSION_MINOR "${BOOST_VERSION_MINOR}")
+set(CPACK_PACKAGE_VERSION_PATCH "${BOOST_VERSION_SUBMINOR}")
+set(CPACK_PACKAGE_INSTALL_DIRECTORY "Boost")
+
+if(WIN32 AND NOT UNIX)
+ # There is a bug in NSI that does not handle full unix paths properly. Make
+ # sure there is at least one set of four (4) backlasshes.
+ # NOTE: No Boost icon yet
+# set(CPACK_PACKAGE_ICON "${Boost_SOURCE_DIR}/tools/build/CMake\\\\InstallIcon.bmp")
+# set(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\MyExecutable.exe")
+ set(CPACK_NSIS_DISPLAY_NAME "Boost ${BOOST_VERSION_MAJOR}.${BOOST_VERSION_MINOR}.${BOOST_VERSION_SUBMINOR}")
+ set(CPACK_NSIS_HELP_LINK "http:\\\\\\\\www.boost.org")
+ set(CPACK_NSIS_URL_INFO_ABOUT "http:\\\\\\\\www.boost.org")
+ set(CPACK_NSIS_CONTACT "boost-users@lists.boost.org")
+ set(CPACK_NSIS_MODIFY_PATH ON)
+
+ # Encode the compiler name in the package
+ if (MSVC60)
+ set(CPACK_PACKAGE_FILE_NAME "Boost-${BOOST_VERSION}-vc6")
+ set(CPACK_NSIS_DISPLAY_NAME "${CPACK_NSIS_DISPLAY_NAME} for Microsoft Visual C++ 6")
+ elseif (MSVC70)
+ set(CPACK_PACKAGE_FILE_NAME "Boost-${BOOST_VERSION}-vc7")
+ set(CPACK_NSIS_DISPLAY_NAME "${CPACK_NSIS_DISPLAY_NAME} for Microsoft Visual Studio 2002")
+ elseif (MSVC71)
+ set(CPACK_PACKAGE_FILE_NAME "Boost-${BOOST_VERSION}-vc71")
+ set(CPACK_NSIS_DISPLAY_NAME "${CPACK_NSIS_DISPLAY_NAME} for Microsoft Visual Studio 2003")
+ elseif (MSVC80)
+ set(CPACK_PACKAGE_FILE_NAME "Boost-${BOOST_VERSION}-vc8")
+ set(CPACK_NSIS_DISPLAY_NAME "${CPACK_NSIS_DISPLAY_NAME} for Microsoft Visual Studio 2005")
+ elseif (MSVC90)
+ set(CPACK_PACKAGE_FILE_NAME "Boost-${BOOST_VERSION}-vc9")
+ set(CPACK_NSIS_DISPLAY_NAME "${CPACK_NSIS_DISPLAY_NAME} for Microsoft Visual Studio 2008")
+ elseif (BORLAND)
+ set(CPACK_PACKAGE_FILE_NAME "Boost-${BOOST_VERSION}-borland")
+ set(CPACK_NSIS_DISPLAY_NAME "${CPACK_NSIS_DISPLAY_NAME} for Borland C++ Builder")
+ endif (MSVC60)
+ set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${CPACK_NSIS_DISPLAY_NAME}")
+endif(WIN32 AND NOT UNIX)
+include(CPack)
+
+if(COMMAND cpack_configure_downloads)
+ cpack_configure_downloads(
+ "http://www.osl.iu.edu/~dgregor/Boost-CMake/${BOOST_VERSION}/"
+ ALL ADD_REMOVE)
+endif()
+##########################################################################
+
+##########################################################################
+# Building Boost libraries #
+##########################################################################
+# Always include the directory where Boost's include files will be.
+if (TEST_INSTALLED_TREE)
+ # Use the headers from the installation directory
+ include_directories("${CMAKE_INSTALL_PREFIX}/${BOOST_HEADER_DIR}")
+else (TEST_INSTALLED_TREE)
+ # Use the headers directly from the Boost source tree (in boost/)
+ include_directories(${Boost_SOURCE_DIR})
+endif (TEST_INSTALLED_TREE)
+
+# Boost.Build version 2 does this due to trouble with autolinking
+# during building and testing.
+# TODO: See if we can actually use auto-linking in our regression tests.
+add_definitions(-DBOOST_ALL_NO_LIB=1)
+
+# Add build rules for documentation
+add_subdirectory(doc)
+
+# Add build rules for all of the Boost libraries
+add_subdirectory(${BOOST_LIBS_DIR})
+
+# Add build rules for all of the Boost tools
+# TODO: On hold while I work on the modularity code
+add_subdirectory(tools)
+##########################################################################
+
diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
new file mode 100644
index 0000000000..46d3147238
--- /dev/null
+++ b/doc/CMakeLists.txt
@@ -0,0 +1,3 @@
+if (BUILD_DOCUMENTATION)
+ add_subdirectory(src)
+endif ()
diff --git a/doc/src/CMakeLists.txt b/doc/src/CMakeLists.txt
new file mode 100644
index 0000000000..3904232256
--- /dev/null
+++ b/doc/src/CMakeLists.txt
@@ -0,0 +1,13 @@
+if (BUILD_DOCUMENTATION_HTML)
+ # Install style sheets and the main Boost logo
+ install(FILES boostbook.css docutils.css reference.css ../../boost.png
+ DESTINATION share/boost-${BOOST_VERSION}/html)
+
+ # Install images
+ install(DIRECTORY images
+ DESTINATION share/boost-${BOOST_VERSION}/html
+ COMPONENT Core
+ PATTERN "CVS" EXCLUDE
+ PATTERN ".svn" EXCLUDE)
+endif ()
+
diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt
new file mode 100644
index 0000000000..4e8f87367a
--- /dev/null
+++ b/libs/CMakeLists.txt
@@ -0,0 +1,57 @@
+# Find each subdirectory containing a CMakeLists.txt file, and include
+# it. This avoids the need to manually list which libraries in Boost
+# have CMakeLists.txt files.
+
+# return a list of directories that we should add_subdirectory()
+macro(BOOST_COLLECT_SUBPROJECT_DIRECTORY_NAMES varname filename)
+ file(GLOB BOOST_LIBRARY_CMAKE_FILES
+ RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "*/${filename}")
+ foreach(BOOST_LIB_CMAKE_FILE ${BOOST_LIBRARY_CMAKE_FILES})
+ get_filename_component(BOOST_LIB_DIR ${BOOST_LIB_CMAKE_FILE} PATH)
+ set(${varname} ${${varname}} ${BOOST_LIB_DIR})
+ endforeach(BOOST_LIB_CMAKE_FILE ${BOOST_LIBRARY_CMAKE_FILES})
+endmacro(BOOST_COLLECT_SUBPROJECT_DIRECTORY_NAMES varname)
+
+macro(ADD_SUBDIRECTORIES prefix)
+ foreach(subdir ${ARGN})
+ message(STATUS "${prefix}${subdir}")
+ add_subdirectory(${subdir})
+ endforeach(subdir ${ARGN})
+endmacro(ADD_SUBDIRECTORIES prefix)
+
+# Find all of the subdirectories with .cmake files in them. These are
+# the libraries with dependencies.
+boost_collect_subproject_directory_names(BOOST_MODULE_DIRS "module.cmake")
+foreach(subdir ${BOOST_MODULE_DIRS})
+ include("${CMAKE_CURRENT_SOURCE_DIR}/${subdir}/module.cmake")
+endforeach(subdir)
+
+# Find all of the subdirectories with CMakeLists.txt files in
+# them. This contains all of the Boost libraries.
+boost_collect_subproject_directory_names(BOOST_SUBPROJECT_DIRS "CMakeLists.txt")
+
+# Add all of the Boost projects in reverse topological order, so that
+# a library's dependencies show up before the library itself.
+set(CPACK_INSTALL_CMAKE_COMPONENTS_ALL)
+list(SORT BOOST_SUBPROJECT_DIRS)
+topological_sort(BOOST_SUBPROJECT_DIRS BOOST_ _DEPENDS)
+add_subdirectories(" + " ${BOOST_SUBPROJECT_DIRS})
+
+# Write out a GraphViz file containing inter-library dependencies.
+set(BOOST_DEPENDENCY_GRAPHVIZ_FILE "${Boost_BINARY_DIR}/dependencies.dot")
+file(WRITE ${BOOST_DEPENDENCY_GRAPHVIZ_FILE} "digraph boost {\n")
+foreach(SUBDIR ${BOOST_SUBPROJECT_DIRS})
+ string(TOUPPER "BOOST_${SUBDIR}_COMPILED_LIB" BOOST_COMPILED_LIB_VAR)
+ if (${BOOST_COMPILED_LIB_VAR})
+ file(APPEND ${BOOST_DEPENDENCY_GRAPHVIZ_FILE} " \"${SUBDIR}\" [style=\"filled\" fillcolor=\"#A3A27C\" shape=\"box\"];\n ")
+ endif (${BOOST_COMPILED_LIB_VAR})
+ string(TOUPPER "BOOST_${SUBDIR}_DEPENDS" DEPENDS_VAR)
+ if(DEFINED ${DEPENDS_VAR})
+ foreach(DEP ${${DEPENDS_VAR}})
+ file(APPEND ${BOOST_DEPENDENCY_GRAPHVIZ_FILE}
+ " \"${SUBDIR}\" -> \"${DEP}\";\n")
+ endforeach()
+ endif()
+endforeach()
+file(APPEND ${BOOST_DEPENDENCY_GRAPHVIZ_FILE} " \"test\" [style=\"filled\" fillcolor=\"#A3A27C\" shape=\"box\"];\n ")
+file(APPEND ${BOOST_DEPENDENCY_GRAPHVIZ_FILE} "}\n")
diff --git a/libs/accumulators b/libs/accumulators
-Subproject d045f6ca8ea1ec56b04df6c6c7f30ab837a3dd2
+Subproject a1700a34c03e16b80640e3a272443ce8c03231b
diff --git a/libs/algorithm b/libs/algorithm
-Subproject 98a8b08afb9c3b5779c0f88ceec24f02ad38a44
+Subproject c33935fa1fbc6b7bf394de8f2689349e74a8873
diff --git a/libs/any b/libs/any
-Subproject f2f981388fbdf1865d77d764fe33f6bbfba068c
+Subproject 873a016568bf4c3233a8fac7a37a97d3a5459bb
diff --git a/libs/array b/libs/array
-Subproject e7122b3f207d6cb697ba61ffb37ce033378260c
+Subproject 3d20bb1310193af12e842bca41a5e5465e8f172
diff --git a/libs/asio b/libs/asio
-Subproject 51be01775f8b57cea5063a532b5005c600b365e
+Subproject 9be4e6992e7fbefa44e72fff8ec13ab714040a0
diff --git a/libs/assign b/libs/assign
-Subproject afa4b560a0f6ff02cf87d7ebdc898409d00ced3
+Subproject 6a98dd41eadc6d684fe8915b079e1c2944ea0a1
diff --git a/libs/bimap b/libs/bimap
-Subproject 3daa894cf5111e4685aafaaf5c69df5141e7616
+Subproject 8c16371c783ada0aec1e33ed43c29770953341b
diff --git a/libs/bind b/libs/bind
-Subproject 45720b6f2df094dfbb9c74a381436d16f1aa8f2
+Subproject 85d146117ea6c54303d54e8db40d16dc20a8ae6
diff --git a/libs/circular_buffer b/libs/circular_buffer
-Subproject 8a115a066a2fe37075a28e8bd7ae861071e7ca4
+Subproject 92c290536e5930c49fe4dc081ca5979f0b8e1d4
diff --git a/libs/compatibility b/libs/compatibility
-Subproject 0cbae63142d21a69dd849a4ab6e3ea59f5c5666
+Subproject c40f64cadb218cf73b5215e8be8e7fb97cadd05
diff --git a/libs/concept_check b/libs/concept_check
-Subproject 3dcaf09ecf2110eda24385e674cfd9a6c2cd85c
+Subproject 2fbf9d137577ef6ea0fd87003fe987fc234c41d
diff --git a/libs/config b/libs/config
-Subproject d379865f42f5190d6e1bdff796140b2fe4703c5
+Subproject bc97209574aa53d2f8f7d23b3507e24a9fed07d
diff --git a/libs/conversion b/libs/conversion
-Subproject 98a67d93f3f1b253e22c743f82bd48df5107e1d
+Subproject fb681bb0eabdd75ee60eff434eb949cb6965890
diff --git a/libs/crc b/libs/crc
-Subproject 006db0974168cc1aeb70883215dd169da7132b6
+Subproject 709b3b7a343c07aceede0a50835036580ee1576
diff --git a/libs/date_time b/libs/date_time
-Subproject 86a65b062a90c860fd5de9375e9f11e9cc6911f
+Subproject 983db9f225a99a29d8ace9750b3c26c20d66d1b
diff --git a/libs/detail b/libs/detail
-Subproject c0fb2515b03a6ce78b6721e5255d5a7001133f1
+Subproject 9d2dd3f2190f69fbf530df9a2fa4faeebf13825
diff --git a/libs/disjoint_sets b/libs/disjoint_sets
-Subproject 9fdf4a0db5cb810a7c0a6a62f1d9a7ee69f20ec
+Subproject 208ff6cd2f57c3296757af21a66ca6cc3ccc00f
diff --git a/libs/dynamic_bitset b/libs/dynamic_bitset
-Subproject 16ca9cbb3caf1210baca5f1ea0c4c254542cbae
+Subproject b7eedd0f46cdef22750f110e90b9ccdccba69ca
diff --git a/libs/exception b/libs/exception
-Subproject 18713332234452f8c2d4459e39f6e50c242465b
+Subproject fa309046184ce59395a6c3036fa3256d0cd6dde
diff --git a/libs/foreach b/libs/foreach
-Subproject ddf692ab283df244fbf60b0ce2492cbdf836736
+Subproject b80e723dcc6247cb33d882ed7ff382e490bf407
diff --git a/libs/format b/libs/format
-Subproject a9b9bf088701315538b6d09531a71887b30e273
+Subproject 756ce274797d728e8bc6790e7869b965181b1c1
diff --git a/libs/function b/libs/function
-Subproject 587658b047716dcdb33ef04fba8cc69324396e8
+Subproject 2fd383cd2e38533264a771ede4348a11a444161
diff --git a/libs/function_types b/libs/function_types
-Subproject 6f100429eb03410cff003f7c12051949561c1ab
+Subproject cde937faaa0136699dcfec47757837c3806d42d
diff --git a/libs/functional b/libs/functional
-Subproject c2fc561d41466f1ac4c1dda3e233f52e86ae527
+Subproject ecdbca2dacb7e8c8161776eb012e1a609bc1fb5
diff --git a/libs/fusion b/libs/fusion
-Subproject d004046aa5e14e84e55ede0ea706de520ea3031
+Subproject 5dff6100079ed126f7cecaa043bd6b3d89fb118
diff --git a/libs/gil b/libs/gil
-Subproject ab7f23636bbd9c91908585d838af07420484a74
+Subproject 44871518f5fa4613fc2cacaed27cfc8e518feaa
diff --git a/libs/graph b/libs/graph
-Subproject 06562ff825a5fecd27f5eef50886d1f4fdf2601
+Subproject 4a3510bbf96e472b6b8219cf7de00c78cd6941c
diff --git a/libs/integer b/libs/integer
-Subproject 1b9549693acd7be526f9f71a7eefb20f5127be5
+Subproject e6bbb336608ac6762148a299b3b1b22ba1ada7e
diff --git a/libs/io b/libs/io
-Subproject eea2bb328c7852c42e9dcba52eec1550f778119
+Subproject 9498b1b24188de52e2573cd9a5e494db5719c20
diff --git a/libs/iostreams b/libs/iostreams
-Subproject ce5da3aceb847fc6eeac1470bf3ab31448f0cd1
+Subproject edb6742f9b932de1f8d31b06c48422b72791731
diff --git a/libs/iterator b/libs/iterator
-Subproject 2ece3ac5c2e70aa01823ed638d043321caa2940
+Subproject 264c186eacbf06cf85b18fbe2227429ed9d385e
diff --git a/libs/lambda b/libs/lambda
-Subproject 1f6ca994e68a7cabcb442fe7894c6b3bf3950d5
+Subproject b5b41af8f4631973ec8746686ccfcf694e37d98
diff --git a/libs/logic b/libs/logic
-Subproject f1d8f513bf0436ad6bea4a695b6f06c413352cf
+Subproject 951486c794b92d161a44884daf5662e0607496d
diff --git a/libs/math b/libs/math
-Subproject 77b98a01418052cb015e9076447f73d8efc05cc
+Subproject 2b4b5fecede7ada14ae33984247f88932df0c8f
diff --git a/libs/mpi b/libs/mpi
-Subproject 95046cfeb917769ee98cf244f4032ceb3b827c1
+Subproject 881fa9299224550e36fa02d0bb6beb59e83ae43
diff --git a/libs/mpl b/libs/mpl
-Subproject 3aca8ba4179081b5bbcdbd69e94acfc0eca90e9
+Subproject 951004474cbba74ee7e3f6e77cec529ca58ddb4
diff --git a/libs/multi_array b/libs/multi_array
-Subproject 805db3d46fdeb6eb84fb9d273164424d073055c
+Subproject 5479ef94c8de5b84bc30423e63353a210d48319
diff --git a/libs/multi_index b/libs/multi_index
-Subproject f5976c16952348532f03be9766d82e2eb3ce4d5
+Subproject d3e74bc941916d5660827dd09ceb31cec64515c
diff --git a/libs/numeric/CMakeLists.txt b/libs/numeric/CMakeLists.txt
new file mode 100644
index 0000000000..94df5881a0
--- /dev/null
+++ b/libs/numeric/CMakeLists.txt
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+ numeric
+)
+
+# Add a library target to the build system
+boost_library_project(
+ numeric
+ # SRCDIRS
+ TESTDIRS conversion/test interval/test ublas/test
+ HEADERS ${lib_headers}
+ # DOCDIRS
+ # DESCRIPTION
+ MODULARIZED
+ # AUTHORS
+ # MAINTAINERS
+)
+
+
diff --git a/libs/numeric/conversion b/libs/numeric/conversion
-Subproject 5963a9cb673d73c79f439194d073fab9951c737
+Subproject e0eee93fa55c2e4054d15173c442371a7886ca0
diff --git a/libs/numeric/interval b/libs/numeric/interval
-Subproject 3142de747f35ca5a6affc47bf988fc5042c85bc
+Subproject 96b3e4edf18fb9d39967c4f96fe6f61055b5d7b
diff --git a/libs/numeric/module.cmake b/libs/numeric/module.cmake
new file mode 100644
index 0000000000..cab15aacd0
--- /dev/null
+++ b/libs/numeric/module.cmake
@@ -0,0 +1 @@
+boost_module(numeric DEPENDS logic serialization) \ No newline at end of file
diff --git a/libs/numeric/ublas b/libs/numeric/ublas
-Subproject 19d0e14743500a59c2ea208af91b60fffc6c0a5
+Subproject c65fccf2d7e39dca268b2219c91a7bcafea2c61
diff --git a/libs/optional b/libs/optional
-Subproject e68e68276ce6c34abf4f66121a97f1f21f9eff5
+Subproject 6b8df2a27d45c5f9b9286794700e7c7a631286e
diff --git a/libs/parameter b/libs/parameter
-Subproject 04cea6497d597ba200acbecd6469643eea77015
+Subproject 3cf03f73cac3530d82acd051c5c2d8194eeda90
diff --git a/libs/pool b/libs/pool
-Subproject e152372ea6060d10e9543f3b30df79fb1599d39
+Subproject b8de19b4688a3712aacebb19f32cf4d05600a16
diff --git a/libs/preprocessor b/libs/preprocessor
-Subproject 32f92a14311079cf0d54b220bf71ec58465c73c
+Subproject 6cee861d4b835a6395bd57852820f799446bc2e
diff --git a/libs/program_options b/libs/program_options
-Subproject 2a16575f984d931ec0d95cff8e5044f0f372512
+Subproject b55001a061ccf9d906243bbe9e1b773b63619ea
diff --git a/libs/property_map b/libs/property_map
-Subproject a24948956b19b5e9c3387a8c2922a361ce27d85
+Subproject e3a97f0fa3da28f175755cd74df12bd4d949a5f
diff --git a/libs/proto b/libs/proto
-Subproject e51953e9a2968162daf8f98981c13552205e353
+Subproject 41de660699b05e6dd6810e259cf7e01f9d4545a
diff --git a/libs/ptr_container b/libs/ptr_container
-Subproject fd6e7aa6fecf1f2e98f541711dee2a61a2b8c81
+Subproject 77a1e4d8c71485608ef44b358ca323904115466
diff --git a/libs/python b/libs/python
-Subproject 19846f5d7932d2bbc5dd8df903729b3168a0078
+Subproject 29152af56cfc7489e9591d2516a41dc4af48c90
diff --git a/libs/random b/libs/random
-Subproject 1fe2ce622eefbf6a83c3065307496fa7d205bfd
+Subproject 7cee654ec2c5f3ea1a4d6468808e6216ad25faa
diff --git a/libs/range b/libs/range
-Subproject 26b096f65db8b158f03b564f6df7c17d8e09ac1
+Subproject 12d904a5e416ca92df6232b2ca377e9773644a1
diff --git a/libs/rational b/libs/rational
-Subproject a51d8489c0ca4585931fb6e6e43181517e39493
+Subproject 0867febd799fe647d1b836deeabd3e8c2edb155
diff --git a/libs/regex b/libs/regex
-Subproject 2d43c1b305a4f73efaa171115c7bda7aa6cfdc8
+Subproject 083ea3a6c71090bbad9dfd14a49eb60b96ba4fe
diff --git a/libs/serialization b/libs/serialization
-Subproject c3d762e168dae8f85ee2a2495005cd875986463
+Subproject 005bf3051b9715bf61b302d7ed3a71076649681
diff --git a/libs/signals b/libs/signals
-Subproject 2fd39d0771139b47ee7b186bddc1d5d675e7858
+Subproject 551734976a8126b4e51db3d4464c1daf4ad9833
diff --git a/libs/smart_ptr b/libs/smart_ptr
-Subproject 6f91ea87c34add9108acfebe2e349d15f90596a
+Subproject 55583ac7490bcbfcf9f33d7fd7a23787adda2e4
diff --git a/libs/spirit b/libs/spirit
-Subproject 063723c81427131dcfc18fb54a02b083bb2a91e
+Subproject 57cca6bcc5d0442bcad87962d087cfa90de8ab2
diff --git a/libs/statechart b/libs/statechart
-Subproject 78a6451517ae9c22f5ba83398a377f4dfea8a43
+Subproject 5357b283083098ddbec558714750db2eb5ef774
diff --git a/libs/static_assert b/libs/static_assert
-Subproject 3488b2bdf29496654a009b0d0b1341cf66658b7
+Subproject 9e411076c6346cd0cd1fe76305ff8fd6c2cf3d8
diff --git a/libs/system b/libs/system
-Subproject 40612c12db86eb3c9e10fc2b09d74ca3ffcd4f3
+Subproject e6f66bfc95fbf43acbf3291e1e87930bbb89856
diff --git a/libs/test b/libs/test
-Subproject ba139de9b1a30d6f33682cf4017cb06f3ac56ad
+Subproject ad148e98727bf3644be8363b68cf3dbcc3cf6dd
diff --git a/libs/thread b/libs/thread
-Subproject 8ab0d5acdd286da5efe622296d06fa0d3e1c4a1
+Subproject fbdc23f48248291ed8d203f863ef655388d76a9
diff --git a/libs/timer b/libs/timer
-Subproject 2d2a2f47e11cfcd2896d6aae09f5e4c79ea7d69
+Subproject b77f89da41664cda4bc59b9a1da52466f786dcf
diff --git a/libs/tokenizer b/libs/tokenizer
-Subproject 598fd68b1ee33c8add7e37112eeecc39c8f97da
+Subproject b42776b6881f5541210282c91c8b0b96dad3f76
diff --git a/libs/tr1 b/libs/tr1
-Subproject 293a9f3d4760209e7e8c07572cb9229bb0bf05e
+Subproject 65e36fc1ddc4d98a9f0030165592a603ab4203d
diff --git a/libs/tuple b/libs/tuple
-Subproject 785ada83f401e09844476e85c9649feff4b8790
+Subproject 99039c3db8a714cf14eff018d1faaa1c1c6cc5d
diff --git a/libs/type_traits b/libs/type_traits
-Subproject 5744aef20ce7a681cc38466d6eb3eb7868109d6
+Subproject 407e286df1d6c0b85575044896882fb1fe93d7d
diff --git a/libs/typeof b/libs/typeof
-Subproject cde21a588d6d8bf357f8e9f59fd98c16fcb3f12
+Subproject 33ae5341c11d6cbcb7e71801b6608ff98b4ea3c
diff --git a/libs/units b/libs/units
-Subproject c7aec0321261095ba6cd8b6f94e4fd78d084fea
+Subproject bf5f32b16235681149aaf11c12ada00f6844467
diff --git a/libs/unordered b/libs/unordered
-Subproject 0921f8076d3efe85cc72556218270cebeb38f6d
+Subproject f7c664a35907a4b864a1507db46b212af760221
diff --git a/libs/utility b/libs/utility
-Subproject ffbbf38e12feceeb2d2dc1e7d5d9ed2c8cecee6
+Subproject 390372294a130aa96ea026747abf6f357fb2c1e
diff --git a/libs/variant b/libs/variant
-Subproject 5edc8631742b00be18db94ef605bc269da91119
+Subproject c7d1cccc13eb0fa4815f388e7b0e8b1cd2b8281
diff --git a/libs/wave b/libs/wave
-Subproject a0085761eb88be624f0af4b764d15052e094874
+Subproject 4e450deb3b6253c5574ffea70a3097be802f8b2
diff --git a/libs/xpressive b/libs/xpressive
-Subproject 14aff7b8123a095880f9034a6cfa420fba84aa3
+Subproject 145d606cf05e7fa2da3a88c3a54a1a0c2a88494
diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt
new file mode 100644
index 0000000000..cc6a0db7b4
--- /dev/null
+++ b/tools/CMakeLists.txt
@@ -0,0 +1,82 @@
+# return a list of directories that we should add_subdirectory()
+macro(boost_collect_lib_dependencies varname filename)
+ #message(STATUS "boost_collect_lib_dependencies.... ${Boost_SOURCE_DIR}/libs")
+ file(GLOB BOOST_LIBRARY_CMAKE_FILES
+ RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${Boost_SOURCE_DIR}/libs/*/${filename}")
+ foreach(BOOST_LIB_CMAKE_FILE ${BOOST_LIBRARY_CMAKE_FILES})
+ #message(STATUS "-- BOOST_LIB_CMAKE_FILE: ${BOOST_LIB_CMAKE_FILE}")
+ get_filename_component(BOOST_LIB_DIR ${BOOST_LIB_CMAKE_FILE} PATH)
+ set(${varname} ${${varname}} ${BOOST_LIB_DIR})
+ endforeach(BOOST_LIB_CMAKE_FILE ${BOOST_LIBRARY_CMAKE_FILES})
+endmacro(boost_collect_lib_dependencies varname)
+
+
+# Find all of the subdirectories with .cmake files in them. These are
+# the libraries with dependencies.
+boost_collect_lib_dependencies(BOOST_MODULE_DIRS "module.cmake")
+foreach(subdir ${BOOST_MODULE_DIRS})
+# message(STATUS "${Boost_SOURCE_DIR}/libs/${subdir}/module.cmake")
+ include("${Boost_SOURCE_DIR}/libs/${subdir}/module.cmake")
+endforeach(subdir)
+
+
+###############################################################################
+# This macro is an internal utility macro
+# TODO: Document this if it stays around
+#
+#
+# example usage:
+# boost_tool_dependencies( BOOST_DEPENDS test)
+#
+macro(boost_tool_dependencies)
+ parse_arguments(BOOST_TEST
+ "BOOST_DEPENDS"
+ ""
+ ${ARGN}
+ )
+ set (THIS_TEST_DEPENDS_ALL "")
+ # message (STATUS "BOOST_TEST_BOOST_DEPENDS: ${BOOST_TEST_BOOST_DEPENDS}")
+ foreach(libname ${BOOST_TEST_BOOST_DEPENDS})
+ # message(STATUS "libname: ${libname}")
+ string(TOUPPER "BOOST_${libname}_DEPENDS" THIS_PROJECT_DEPENDS)
+ # message(STATUS "${THIS_PROJECT_DEPENDS}: ${${THIS_PROJECT_DEPENDS}}")
+ # set(THIS_TEST_DEPENDS_ALL ${libname} ${${THIS_PROJECT_DEPENDS}} )
+ # message(STATUS "${THIS_TEST_DEPENDS_ALL}: ${${THIS_TEST_DEPENDS_ALL}}")
+
+ list(FIND THIS_TEST_DEPENDS_ALL ${libname} DEPDEP_INDEX)
+ if (DEPDEP_INDEX EQUAL -1)
+ list(APPEND THIS_TEST_DEPENDS_ALL ${libname})
+ set(ADDED_DEPS TRUE)
+ endif()
+ string(TOUPPER "BOOST_${libname}_DEPENDS" THIS_PROJECT_DEPENDS)
+ # message(STATUS "${additional_lib}: ===> ${${THIS_PROJECT_DEPENDS}}")
+ set(ADDED_DEPS TRUE)
+ while (ADDED_DEPS)
+ set(ADDED_DEPS FALSE)
+ foreach(DEP ${THIS_TEST_DEPENDS_ALL})
+ string(TOUPPER "BOOST_${DEP}_DEPENDS" DEP_DEPENDS)
+ foreach(DEPDEP ${${DEP_DEPENDS}})
+ list(FIND THIS_TEST_DEPENDS_ALL ${DEPDEP} DEPDEP_INDEX)
+ if (DEPDEP_INDEX EQUAL -1)
+ list(APPEND THIS_TEST_DEPENDS_ALL ${DEPDEP})
+ set(ADDED_DEPS TRUE)
+ endif()
+ endforeach()
+ endforeach()
+ endwhile()
+ # message(STATUS "-> Dependencies for ${libname}")
+ # message(STATUS "-> THIS_TEST_DEPENDS_ALL: ${THIS_TEST_DEPENDS_ALL}")
+
+ endforeach(libname ${BOOST_TEST_BOOST_DEPENDS})
+ foreach (include ${THIS_TEST_DEPENDS_ALL})
+ #message(STATUS "include: ${include}")
+ include_directories("${Boost_SOURCE_DIR}/libs/${include}/include")
+ endforeach (include ${includes})
+
+endmacro(boost_tool_dependencies)
+#
+###############################################################################
+
+# add_subdirectory(quickbook)
+# add_subdirectory(wave)
+add_subdirectory(bcp) \ No newline at end of file
diff --git a/tools/bcp b/tools/bcp
-Subproject d20df0a4086af01f4c25e3d4380343e46f9a70f
+Subproject deed3885d0951a9651dad2b461c3766e9e735f2
diff --git a/tools/quickbook b/tools/quickbook
-Subproject cb639fb17d45cdc4b9ef14808b8f0b18d164c65
+Subproject 08062df544c0fa53fe506d388f1cafb97265e9b