diff options
author | Troy D. Straszheim <troy@resophonic.com> | 2009-01-24 18:57:20 +0000 |
---|---|---|
committer | Troy D. Straszheim <troy@resophonic.com> | 2009-01-24 18:57:20 +0000 |
commit | a0a37bc6333acd48cf869caf0afd46a44b2abfb8 (patch) | |
tree | d096bc4f44ba13b66a6c5e48e18635dd87f31483 | |
parent | b905fdb8aff4b0175cf842c531e73162aa5acd0d (diff) | |
download | boost-a0a37bc6333acd48cf869caf0afd46a44b2abfb8.tar.gz |
merge of cmake build files from trunk per beman
[SVN r50756]
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 |