Boost logo

Boost-Commit :

From: dgregor_at_[hidden]
Date: 2008-03-04 12:52:58


Author: dgregor
Date: 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
New Revision: 43495
URL: http://svn.boost.org/trac/boost/changeset/43495

Log:
Import Boost-CMake work for 1.35.0
Added:
   branches/CMake-release/CMakeLists.txt (contents, props changed)
   branches/CMake-release/README.txt (contents, props changed)
   branches/CMake-release/Welcome.txt (contents, props changed)
   branches/CMake-release/libs/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/algorithm/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/algorithm/minmax/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/algorithm/string/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/any/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/any/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/array/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/array/test/
   branches/CMake-release/libs/array/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/assign/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/assign/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/bind/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/bind/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/concept_check/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/concept_check/test/
   branches/CMake-release/libs/concept_check/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/config/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/config/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/conversion/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/conversion/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/crc/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/crc/test/
   branches/CMake-release/libs/crc/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/date_time/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/date_time/src/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/date_time/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/disjoint_sets/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/disjoint_sets/test/
   branches/CMake-release/libs/disjoint_sets/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/dynamic_bitset/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/dynamic_bitset/test/
   branches/CMake-release/libs/dynamic_bitset/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/filesystem/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/filesystem/src/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/filesystem/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/foreach/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/foreach/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/format/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/format/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/function/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/function/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/functional/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/functional/hash/examples/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/functional/hash/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/functional/test/
   branches/CMake-release/libs/functional/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/graph/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/graph/src/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/graph/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/integer/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/integer/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/io/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/io/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/iostreams/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/iostreams/src/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/iostreams/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/iterator/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/iterator/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/lambda/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/lambda/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/logic/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/logic/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/math/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/math/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/mpl/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/mpl/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/multi_array/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/multi_array/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/multi_index/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/multi_index/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/numeric/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/numeric/conversion/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/numeric/interval/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/numeric/ublas/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/optional/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/optional/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/parameter/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/parameter/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/pool/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/pool/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/preprocessor/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/preprocessor/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/program_options/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/program_options/src/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/program_options/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/property_map/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/property_map/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/ptr_container/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/ptr_container/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/python/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/python/src/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/python/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/random/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/random/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/range/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/range/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/rational/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/rational/test/
   branches/CMake-release/libs/rational/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/regex/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/regex/src/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/regex/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/serialization/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/serialization/src/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/serialization/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/signals/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/signals/src/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/signals/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/smart_ptr/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/smart_ptr/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/spirit/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/spirit/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/spirit/test/actor/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/spirit/test/typeof_support/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/statechart/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/statechart/example/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/statechart/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/static_assert/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/static_assert/test/
   branches/CMake-release/libs/static_assert/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/system/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/system/src/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/test/src/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/test/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/thread/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/thread/src/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/thread/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/timer/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/timer/test/
   branches/CMake-release/libs/timer/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/tokenizer/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/tokenizer/test/
   branches/CMake-release/libs/tokenizer/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/tr1/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/tr1/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/tuple/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/tuple/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/type_traits/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/type_traits/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/typeof/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/typeof/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/utility/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/utility/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/variant/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/variant/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/wave/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/wave/src/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/wave/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/xpressive/CMakeLists.txt (contents, props changed)
   branches/CMake-release/libs/xpressive/test/CMakeLists.txt (contents, props changed)
   branches/CMake-release/tools/CMakeLists.txt (contents, props changed)
   branches/CMake-release/tools/build/CMake/
   branches/CMake-release/tools/build/CMake/BoostConfig.cmake (contents, props changed)
   branches/CMake-release/tools/build/CMake/BoostCore.cmake (contents, props changed)
   branches/CMake-release/tools/build/CMake/BoostTesting.cmake (contents, props changed)
   branches/CMake-release/tools/build/CMake/BoostUtils.cmake (contents, props changed)
   branches/CMake-release/tools/build/CMake/CompileTest/
   branches/CMake-release/tools/build/CMake/CompileTest/CMakeLists.txt (contents, props changed)
   branches/CMake-release/tools/build/CMake/FindICU.cmake (contents, props changed)
   branches/CMake-release/tools/build/CMake/LinkTest/
   branches/CMake-release/tools/build/CMake/LinkTest/CMakeLists.txt (contents, props changed)
   branches/CMake-release/tools/quickbook/CMakeLists.txt (contents, props changed)
   branches/CMake-release/tools/wave/CMakeLists.txt (contents, props changed)

Added: branches/CMake-release/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,172 @@
+##########################################################################
+# CMake Build Rules for Boost #
+##########################################################################
+# Copyright (C) 2007, 2008 Douglas Gregor <doug.gregor_at_[hidden]> #
+# 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.4.5 FATAL_ERROR)
+set(CMAKE_BACKWARDS_COMPATIBILITY 2.4)
+project(Boost)
+
+##########################################################################
+# Version information #
+##########################################################################
+set(BOOST_VERSION_MAJOR 1)
+set(BOOST_VERSION_MINOR 35)
+set(BOOST_VERSION_SUBMINOR 0)
+set(BOOST_VERSION "${BOOST_VERSION_MAJOR}.${BOOST_VERSION_MINOR}.${BOOST_VERSION_SUBMINOR}")
+##########################################################################
+
+##########################################################################
+# Boost CMake modules #
+##########################################################################
+list(APPEND CMAKE_MODULE_PATH ${Boost_SOURCE_DIR}/tools/build/CMake)
+include(BoostUtils)
+include(BoostConfig)
+include(BoostCore)
+include(BoostTesting)
+##########################################################################
+
+##########################################################################
+# Build Features and Variants #
+##########################################################################
+
+# 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" ON)
+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)
+if(MSVC)
+ boost_add_default_variant(MULTI_THREADED SINGLE_THREADED)
+else(MSVC)
+ boost_add_default_variant(SINGLE_THREADED MULTI_THREADED)
+endif(MSVC)
+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
+ REGEX ".svn" EXCLUDE)
+##########################################################################
+
+##########################################################################
+# Binary packages #
+##########################################################################
+set(CPACK_PACKAGE_NAME "Boost")
+set(CPACK_PACKAGE_VENDOR "Boost.org")
+set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Boost")
+set(CPACK_PACKAGE_DESCRIPTION_FILE "${Boost_SOURCE_DIR}/README.txt")
+set(CPACK_RESOURCE_FILE_README "${Boost_SOURCE_DIR}/README.txt")
+set(CPACK_RESOURCE_FILE_LICENSE "${Boost_SOURCE_DIR}/LICENSE_1_0.txt")
+set(CPACK_RESOURCE_FILE_WELCOME "${Boost_SOURCE_DIR}/Welcome.txt")
+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_at_[hidden]")
+ set(CPACK_NSIS_MODIFY_PATH ON)
+
+ # Encode the compiler name in the package
+ if (MSVC60)
+ set(CPACK_PACKAGE_FILE_NAME "Boost-${BOOST_VERSION}-vc6")
+ elseif (MSVC70)
+ set(CPACK_PACKAGE_FILE_NAME "Boost-${BOOST_VERSION}-vc7")
+ elseif (MSVC71)
+ set(CPACK_PACKAGE_FILE_NAME "Boost-${BOOST_VERSION}-vc71")
+ elseif (MSVC80)
+ set(CPACK_PACKAGE_FILE_NAME "Boost-${BOOST_VERSION}-vc8")
+ elseif (BORLAND)
+ set(CPACK_PACKAGE_FILE_NAME "Boost-${BOOST_VERSION}-borland")
+ endif (MSVC60)
+endif(WIN32 AND NOT UNIX)
+include(CPack)
+##########################################################################
+
+
+##########################################################################
+# Building Boost libraries #
+##########################################################################
+# Always include the Boost source directory, so that we can find
+# include files in boost/
+include_directories(${Boost_SOURCE_DIR})
+
+# 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(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
+SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
+
+# 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 all of the Boost libraries
+add_subdirectory(libs)
+
+# Add build rules for all of the Boost tools
+add_subdirectory(tools)
+##########################################################################

Added: branches/CMake-release/README.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/README.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,210 @@
+Boost 1.34.0, the latest version of peer-reviewed, portable C++
+libraries, has been released. This release brings five new libraries
+and extensive updates to existing libraries.
+
+New Libraries
+
+ * Foreach Library:
+ BOOST_FOREACH macro for easily iterating over the elements of a
+ sequence, from Eric Niebler.
+ * Statechart Library:
+ Arbitrarily complex finite state machines can be implemented in
+ easily readable and maintainable C++ code, from Andreas Huber.
+ * TR1 Library:
+ An implementation of the C++ Technical Report on Standard Library
+ Extensions, from John Maddock.
+ This library does not itself implement the TR1 components, rather
+ it's a thin wrapper that will include your standard library's TR1
+ implementation (if it has one), otherwise it will include the Boost
+ Library equivalents, and import them into namespace std::tr1. Highlights
+ include: Reference Wrappers, Smart Pointers, result_of,
+ Function Object Binders, Polymorphic function wrappers, Type Traits,
+ Random Number Generators and Distributions, Tuples, Fixed Size Array,
+ Hash Function Objects, Regular Expressions and
+ Complex Number Additional Algorithms.
+ * Typeof Library:
+ Typeof operator emulation, from Arkadiy Vertleyb and Peder Holt.
+ * Xpressive Library:
+ Regular expressions that can be written as strings or as expression
+ templates, and that can refer to each other and themselves recursively
+ with the power of context-free grammars, from Eric Niebler.
+
+Updated Libraries
+
+ * Assign Library:
+ o Support for ptr_map<key,T> via the new function ptr_map_insert()
+ o Support for initialization of Pointer Containers when the containers
+ hold pointers to an abstract base class.
+ * Date_time library:
+ o Support for new US/Canada timezone rules and other bug fixes.
+ See Change History for details.
+ * Filesystem Library:
+ Major upgrade in preparation for submission to the C++ Standards Committee
+ for TR2. Changes include:
+ o Internationalization, provided by class templates basic_path,
+ basic_filesystem_error, basic_directory_iterator
+ and basic_directory_entry.
+ o Simplification of the path interface by eliminating special constructors
+ to identify native formats.
+ o Rationalization of predicate function design, including the addition of
+ several new functions.
+ o Clearer specification by reference to POSIX, the ISO/IEEE Single Unix
+ Standard, with provisions for Windows and other operating systems.
+ o Preservation of existing user code whenever possible.
+ o More efficient directory iteration.
+ o Addition of a recursive directory iterator.
+ * Function Library:
+ Boost.Function now implements a small buffer optimization, which can
+ drastically improve the performance when copying or constructing
+ Boost.Function objects storing small function objects. For instance,
+ bind(&X:foo, &x, _1, _2) requires no heap allocation when placed into
+ a Boost.Function object.
+ * Functional/Hash Library
+ o Use declarations for standard classes, so that the library doesn't
+ need to include all of their headers
+ o Deprecated the <boost/functional/hash/*.hpp> headers.
+ o Add support for the BOOST_HASH_NO_EXTENSIONS macro, which disables
+ the extensions to TR1
+ o Minor improvements to the hash functions for floating point numbers.
+ * Graph Library:
+ o edmonds_maximum_cardinality_matching, from Aaron Windsor.
+ o lengauer_tarjan_dominator_tree, from JongSoo Park.
+ o compressed_sparse_row_graph, from Jeremiah Willcock and Douglas Gregor
+ of Indiana University.
+ o sorted_erdos_renyi_iterator, from Jeremiah Willcock
+ of Indiana University.
+ o biconnected_components now supports a visitor and named parameters,
+ from Janusz Piwowarski.
+ o adjacency_matrix now models the Bidirectional Graph concept.
+ o dijkstra_shortest_paths now calls vis.initialize_vertex for each
+ vertex during initialization.
+ o Note: the name of the compiled library for the GraphViz reader has
+ changed to boost_graph (from bgl-viz) to match Boost conventions.
+ o See the complete revision history for more information.
+ * MultiArray Library:
+ Boost.MultiArray now by default provides range-checking for operator[].
+ Range checking can be disabled by defining the macro BOOST_DISABLE_ASSERTS
+ before including multi_array.hpp. A bug in multi_array::resize() related
+ to storage orders was fixed.
+ * Multi-index Containers Library:
+ o New random access indices.
+ o Non key-based indices feature new rearrange facilities.
+ o This version also includes a number of optimizations and usage
+ improvements. For a complete list of changes,
+ see the library release notes.
+ * Optional Library:
+ o boost::none_t and boost::none now added to Optional's documentation
+ o Relational operators now directly support arguments of type 'T'
+ and 'none_t'
+ o operator->() now also works with reference types.
+ o Helper functions make_optional(val), make_optional(cond,val)
+ and get_optional_value_or(opt,alternative_value) added.
+ o Constructor taking a boolean condition (as well as a value) added.
+ o Member function get_value_or(alternative_value) added.
+ o Incompatbility bug with mpl::apply<> fixed.
+ o Converting assignment bug with uninitialized lvalues fixed.
+ * Parameter Library:
+ o Every ArgumentPack is now a valid MPL Forward Sequence.
+ o Support for unnamed arguments (those whose keyword is deduced from
+ their types) is added.
+ o Support for named and unnamed template arguments is added.
+ o New overload generation macros solve the forwarding problem directly.
+ o See also the Python library changes, below.
+ * Pointer Container Library:
+ o Support for serialization via Boost.Serialization.
+ o Exceptions can be disabled by defining the macro
+ BOOST_PTR_CONTAINER_NO_EXCEPTIONS before including any header.
+ This macro is defined by default if BOOST_NO_EXCEPTIONS is defined.
+ o Additional std::auto_ptr<T> overloads added s.t. one can also pass
+ std::auto_ptr<T> instead of only T* arguments to member functions.
+ o transfer() now has weaker requirements s.t. one can transfer objects
+ from ptr_container<Derived> to ptr_container<Base>,
+ * Python Library:
+ o Boost.Python now automatically appends C++ signatures to docstrings.
+ The new docstring_options.hpp header is available to control the
+ content of docstrings.
+ o stl_input_iterator, for turning a Python iterable object into an STL
+ input iterator, from Eric Niebler.
+ o Support for void* conversions is added.
+ o Integrated support for wrapping C++ functions built with the
+ parameter library; keyword names are automatically known to
+ docsstrings.
+ o Enhancements to the API for better embedding support
+ (boost::python::import(), boost::python::exec()
+ and boost::python::exec_file()).
+ * Signals Library:
+ More improvements to signal invocation performance from Robert Zeh.
+ * Smart Pointers Library:
+ o Allocator support as proposed in N1851 (162 Kb PDF).
+ o pointer_cast and pointer_to_other utilities to allow
+ pointer-independent code, from Ion Gaztanaga.
+ * String Algorithm Library:
+ o lexicographical_compare
+ o join
+ o New comparison predicates is_less, is_not_greater.
+ o Negative indexes support (like Perl) in various algorihtms
+ (*_head/tail, *_nth).
+ * Wave Library:
+ o Wave now correctly recognizes pp-number tokens as mandated by the
+ C++ Standard, which are converted to C++ tokens right before they are
+ returned from the library.
+ o Several new preprocessing hooks have been added. For a complete
+ description please refer to the related documentation page:
+ The Context Policy.
+ o Shared library (dll) support has been added for the generated Wave
+ libraries.
+ o The overall error handling has been improved. It is now possible to
+ recover and continue after an error or a warning was issued.
+ o Support for optional comment and/or full whitespace preservation
+ in the generated output stream has been added.
+ o The Wave library now performs automatic include guard detection to
+ avoid accessing header files more than once, if appropriate.
+ o Full interactive mode has been added to the Wave tool. Now the Wave
+ tool can be used just like Python or Perl for instance to
+ interactively try out your BOOST_PP macros. Additionally it is now
+ possible to load and save the current state of an interactive
+ session (macro tables et.al.).
+ o The overall performance has been improved by upto 40-60%, depending
+ on the concrete files to process.
+ o Support for new pragmas has been added allowing to control certain
+ library features from inside the preprocessed sources (partial
+ output redirection, control of generated whitespace and #line
+ directives).
+ o Optional support for #pragma message "..." has been added.
+ o This version also includes a number of bug fixes and usage
+ improvements. For a complete list of changes, see the libraries
+ change log.
+
+Supported Compilers
+
+ Boost is tested on a wide range of compilers and platforms. Since Boost libraries
+ rely on modern C++ features not available in all compilers, not all Boost
+ libraries will work with every compiler. The following compilers and platforms
+ have been extensively tested with Boost, although many other compilers and
+ platforms will work as well. For more information, see the regression test
+ results.
+
+ * Apple GCC 4.0.1 on Mac OS X.
+ * Borland C++ 5.8.2 on Windows.
+ * GNU C++
+ o 3.2.x., 3.3.x, 3.4.x, 4.0.x, 4.1.x on Linux
+ o 4.1.x on Solaris
+ o 3.4.x on Windows
+ * HP aC++ A.06.14.
+ * Intel C++ 9.1 on Windows, 9.0 on Linux.
+ * Metrowerks CodeWarrior 9.4 on Windows.
+ * Microsoft Visual C++ 6.0 (sp5, with and without STLport), 7.0, 7.1, 8.0.
+ Note: Boost does not support the non-standard "Safe" C++ Library shipping
+ with Visual C++ 8.0, which may result in many spurious warnings from Boost
+ headers and other standards-conforming C++ code. To suppress these warnings,
+ define the macro _SCL_SECURE_NO_DEPRECATE.
+ * Sun Studio 11 on Solaris.
+
+Acknowledgements
+
+ Thomas Witt managed this release.
+
+ A great number of people contributed their time and expertise to make this release
+ possible. Special thanks go to Vladimir Prus for making Boost.Build version 2 a
+ reality, David Abrahams for authoring a new Getting Started guide, Rene Rivera for
+ general build and installation support and Greg D. for answering countless questions.
\ No newline at end of file

Added: branches/CMake-release/Welcome.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/Welcome.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,7 @@
+Welcome to Boost!
+
+Boost provides free peer-reviewed portable C++ source libraries.
+
+We emphasize libraries that work well with the C++ Standard Library. Boost libraries are intended to be widely useful, and usable across a broad spectrum of applications. The Boost license encourages both commercial and non-commercial use.
+
+We aim to establish "existing practice" and provide reference implementations so that Boost libraries are suitable for eventual standardization. Ten Boost libraries are already included in the C++ Standards Committee's Library Technical Report ( TR1) as a step toward becoming part of a future C++ Standard. More Boost libraries are proposed for the upcoming TR2.

Added: branches/CMake-release/libs/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,25 @@
+# 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)
+ file(GLOB BOOST_LIBRARY_CMAKE_FILES
+ RELATIVE "${CMAKE_SOURCE_DIR}/libs" "*/CMakeLists.txt")
+ MESSAGE(STATUS "Scanning subdirectories:")
+ 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)
+
+boost_collect_subproject_directory_names(BOOST_SUBPROJECT_DIRS)
+add_subdirectories(" + " ${BOOST_SUBPROJECT_DIRS})
+

Added: branches/CMake-release/libs/algorithm/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/algorithm/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Algorithm
+ TESTDIRS minmax/test string/test
+ )

Added: branches/CMake-release/libs/algorithm/minmax/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/algorithm/minmax/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,2 @@
+boost_test_run(minmax_element_test)
+boost_test_run(minmax_test)

Added: branches/CMake-release/libs/algorithm/string/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/algorithm/string/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,10 @@
+boost_test_run(trim_test)
+
+boost_test_run(conv_test)
+boost_test_run(predicate_test)
+boost_test_run(find_test)
+boost_test_run(split_test)
+boost_test_run(join_test)
+boost_test_run(replace_test)
+boost_test_run(regex_test DEPENDS boost_regex SHARED)
+

Added: branches/CMake-release/libs/any/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/any/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,6 @@
+boost_library_project(
+ Any
+ TESTDIRS test
+)
+
+

Added: branches/CMake-release/libs/any/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/any/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,2 @@
+boost_test_run(any_test ../any_test.cpp)
+

Added: branches/CMake-release/libs/array/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/array/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Array
+ TESTDIRS test
+)

Added: branches/CMake-release/libs/array/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/array/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,6 @@
+boost_test_run(array0 ../array0.cpp)
+boost_test_run(array1 ../array1.cpp)
+boost_test_run(array2 ../array2.cpp)
+boost_test_run(array3 ../array3.cpp)
+boost_test_run(array4 ../array4.cpp)
+boost_test_run(array5 ../array5.cpp)

Added: branches/CMake-release/libs/assign/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/assign/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,6 @@
+boost_library_project(
+ Assign
+ TESTDIRS test
+)
+
+

Added: branches/CMake-release/libs/assign/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/assign/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,19 @@
+SET(TESTS
+ basic
+ std
+ list_of
+ ptr_list_of
+ static_list_of
+ tuple_list_of
+ list_inserter
+ ptr_list_inserter
+ ptr_map_inserter
+ list_of_workaround
+ email_example
+ my_vector_example
+ multi_index_container)
+
+FOREACH(test ${TESTS})
+ boost_test_run(${test} DEPENDS boost_unit_test_framework)
+ENDFOREACH(test ${TESTS})
+

Added: branches/CMake-release/libs/bind/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/bind/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,6 @@
+boost_library_project(
+ Bind
+ TESTDIRS test
+)
+
+

Added: branches/CMake-release/libs/bind/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/bind/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,28 @@
+SET(tests
+ bind_test
+ bind_dm_test
+ bind_eq_test
+ bind_const_test
+ bind_cv_test
+ bind_stateful_test
+ bind_dm2_test
+ bind_not_test
+ bind_rel_test
+ bind_function_test
+ bind_lookup_problem_test
+ bind_rv_sp_test
+ bind_dm3_test
+ bind_visit_test
+ mem_fn_test
+ mem_fn_void_test
+ mem_fn_derived_test
+ mem_fn_eq_test
+ mem_fn_dm_test
+ mem_fn_rv_test
+ )
+FOREACH(test ${tests})
+ boost_test_run(${test})
+ENDFOREACH(test ${tests})
+
+boost_test_compile(bind_unary_addr)
+

Added: branches/CMake-release/libs/concept_check/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/concept_check/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,6 @@
+boost_library_project(
+ Concept_check
+ TESTDIRS test
+)
+
+

Added: branches/CMake-release/libs/concept_check/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/concept_check/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,6 @@
+# this fails but looks like it isn't the build
+# boost_test_run(../stl_concept_covering)
+boost_test_run(concept_check_test ../concept_check_test.cpp)
+boost_test_run(class_concept_check_test ../class_concept_check_test.cpp)
+boost_test_compile_fail(concept_check_fail_expected ../concept_check_fail_expected.cpp)
+boost_test_compile_fail(class_concept_fail_expected ../class_concept_fail_expected.cpp)

Added: branches/CMake-release/libs/config/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/config/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,3 @@
+boost_library_project(
+ Config
+ TESTDIRS test)

Added: branches/CMake-release/libs/config/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/config/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,255 @@
+#
+# Regression test rules for Boost configuration setup.
+# *** DO NOT EDIT THIS FILE BY HAND ***
+# This file was automatically generated on Fri May 18 22:13:10 2007
+# by libs/config/tools/generate.cpp
+# Copyright John Maddock and Douglas Gregor.
+# 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)
+macro(boost_configure what var)
+ file(READ ${CMAKE_CURRENT_SOURCE_DIR}/${what}.ipp SRC)
+ check_cxx_source_compiles("${SRC} int main(int, char**) { }" tmp)
+ set(${var} ${tmp})
+endmacro(boost_configure what)
+
+file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/main.cpp "int main(int, char**) { }")
+
+#
+# it would seem a lot easier to do this kind of thing here and write a config.h at build time
+# rather than checking all this stuff in
+#
+
+boost_configure(boost_has_pthread_yield BOOST_HAS_PTHREAD_YIELD)
+# boost_configure(boost_has_nanosleep BOOST_HAS_NANOSLEEP)
+# boost_configure(boost_has_pthread_ma_st BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE)
+# boost_configure(boost_no_ded_typename BOOST_DEDUCED_TYPENAME)
+
+set(vars "BOOST_HAS_PTHREAD_YIELD")
+foreach(var ${vars})
+ if(${var})
+ add_definitions(-D${var})
+ endif(${var})
+endforeach(var ${vars})
+
+boost_test_run(config_info)
+boost_test_run(math_info)
+
+
+# if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+# set(threadlibs "LIBRARIES;pthread;rt")
+# endif(CMAKE_SYSTEM_NAME MATCHES "Linux")
+
+# these aren't really tests anyway
+#set(tests_need_threadlibs config_test has_clock_gettime_pass has_pthread_ma_st_pass has_pthread_yield_pass)
+#foreach(test ${tests_need_threadlibs})
+# boost_test_run(${test})
+#endforeach(test ${tests_need_threadlibs})
+
+
+boost_test_run(limits_test DEPENDS boost_test_exec_monitor)
+boost_test_run(abi_test abi/abi_test.cpp abi/main.cpp)
+
+boost_test_run(has_2arg_use_facet_pass)
+boost_test_compile_fail(has_2arg_use_facet_fail)
+boost_test_run(has_bethreads_pass)
+boost_test_compile_fail(has_bethreads_fail)
+boost_test_compile_fail(has_clock_gettime_fail)
+boost_test_run(has_dirent_h_pass)
+boost_test_compile_fail(has_dirent_h_fail)
+boost_test_run(has_expm1_pass)
+boost_test_compile_fail(has_expm1_fail)
+boost_test_run(has_ftime_pass)
+boost_test_compile_fail(has_ftime_fail)
+boost_test_run(has_gettimeofday_pass)
+boost_test_compile_fail(has_gettimeofday_fail)
+boost_test_run(has_hash_pass)
+boost_test_compile_fail(has_hash_fail)
+boost_test_run(has_log1p_pass)
+boost_test_compile_fail(has_log1p_fail)
+boost_test_run(has_long_long_pass)
+boost_test_compile_fail(has_long_long_fail)
+boost_test_run(has_macro_use_facet_pass)
+boost_test_compile_fail(has_macro_use_facet_fail)
+boost_test_run(has_ms_int64_pass)
+boost_test_compile_fail(has_ms_int64_fail)
+boost_test_run(has_nanosleep_pass)
+boost_test_compile_fail(has_nanosleep_fail)
+boost_test_run(has_nl_types_h_pass)
+boost_test_compile_fail(has_nl_types_h_fail)
+boost_test_run(has_nrvo_pass)
+boost_test_compile_fail(has_nrvo_fail)
+boost_test_run(has_part_alloc_pass)
+boost_test_compile_fail(has_part_alloc_fail)
+boost_test_run(has_pthread_delay_np_pass)
+boost_test_compile_fail(has_pthread_delay_np_fail)
+
+boost_test_compile_fail(has_pthread_ma_st_fail)
+boost_test_compile_fail(has_pthread_yield_fail)
+boost_test_run(has_pthreads_pass)
+boost_test_compile_fail(has_pthreads_fail)
+boost_test_run(has_sched_yield_pass)
+boost_test_compile_fail(has_sched_yield_fail)
+boost_test_run(has_sgi_type_traits_pass)
+boost_test_compile_fail(has_sgi_type_traits_fail)
+boost_test_run(has_sigaction_pass)
+boost_test_compile_fail(has_sigaction_fail)
+boost_test_run(has_slist_pass)
+boost_test_compile_fail(has_slist_fail)
+boost_test_run(has_stdint_h_pass)
+boost_test_compile_fail(has_stdint_h_fail)
+boost_test_run(has_stlp_use_facet_pass)
+boost_test_compile_fail(has_stlp_use_facet_fail)
+boost_test_run(has_tr1_array_pass)
+boost_test_compile_fail(has_tr1_array_fail)
+boost_test_run(has_tr1_bind_pass)
+boost_test_compile_fail(has_tr1_bind_fail)
+boost_test_run(has_tr1_complex_over_pass)
+boost_test_compile_fail(has_tr1_complex_over_fail)
+boost_test_run(has_tr1_complex_trig_pass)
+boost_test_compile_fail(has_tr1_complex_trig_fail)
+boost_test_run(has_tr1_function_pass)
+boost_test_compile_fail(has_tr1_function_fail)
+boost_test_run(has_tr1_hash_pass)
+boost_test_compile_fail(has_tr1_hash_fail)
+boost_test_run(has_tr1_mem_fn_pass)
+boost_test_compile_fail(has_tr1_mem_fn_fail)
+boost_test_run(has_tr1_random_pass)
+boost_test_compile_fail(has_tr1_random_fail)
+boost_test_run(has_tr1_ref_wrap_pass)
+boost_test_compile_fail(has_tr1_ref_wrap_fail)
+boost_test_run(has_tr1_regex_pass)
+boost_test_compile_fail(has_tr1_regex_fail)
+boost_test_run(has_tr1_result_of_pass)
+boost_test_compile_fail(has_tr1_result_of_fail)
+boost_test_run(has_tr1_shared_ptr_pass)
+boost_test_compile_fail(has_tr1_shared_ptr_fail)
+boost_test_run(has_tr1_tuple_pass)
+boost_test_compile_fail(has_tr1_tuple_fail)
+boost_test_run(has_tr1_type_traits_pass)
+boost_test_compile_fail(has_tr1_type_traits_fail)
+boost_test_run(has_tr1_unordered_map_pass)
+boost_test_compile_fail(has_tr1_unordered_map_fail)
+boost_test_run(has_tr1_unordered_set_pass)
+boost_test_compile_fail(has_tr1_unordered_set_fail)
+boost_test_run(has_tr1_utility_pass)
+boost_test_compile_fail(has_tr1_utility_fail)
+boost_test_run(has_unistd_h_pass)
+boost_test_compile_fail(has_unistd_h_fail)
+boost_test_run(has_vc6_mem_templ_pass)
+boost_test_compile_fail(has_vc6_mem_templ_fail)
+boost_test_run(has_vc_iterator_pass)
+boost_test_compile_fail(has_vc_iterator_fail)
+boost_test_run(has_winthreads_pass)
+boost_test_compile_fail(has_winthreads_fail)
+boost_test_run(no_arg_dep_lookup_pass)
+boost_test_compile_fail(no_arg_dep_lookup_fail)
+boost_test_run(no_array_type_spec_pass)
+boost_test_compile_fail(no_array_type_spec_fail)
+boost_test_run(no_auto_ptr_pass)
+boost_test_compile_fail(no_auto_ptr_fail)
+boost_test_run(no_bcb_partial_spec_pass)
+boost_test_compile_fail(no_bcb_partial_spec_fail)
+boost_test_run(no_ctype_functions_pass)
+boost_test_compile_fail(no_ctype_functions_fail)
+boost_test_run(no_cv_spec_pass)
+boost_test_compile_fail(no_cv_spec_fail)
+boost_test_run(no_cv_void_spec_pass)
+boost_test_compile_fail(no_cv_void_spec_fail)
+boost_test_run(no_cwchar_pass)
+boost_test_compile_fail(no_cwchar_fail)
+boost_test_run(no_cwctype_pass)
+boost_test_compile_fail(no_cwctype_fail)
+boost_test_run(no_ded_typename_pass)
+boost_test_compile_fail(no_ded_typename_fail)
+boost_test_run(no_dep_nested_class_pass)
+boost_test_compile_fail(no_dep_nested_class_fail)
+boost_test_run(no_dep_val_param_pass)
+boost_test_compile_fail(no_dep_val_param_fail)
+boost_test_run(no_excep_std_pass)
+boost_test_compile_fail(no_excep_std_fail)
+boost_test_run(no_exceptions_pass)
+boost_test_compile_fail(no_exceptions_fail)
+boost_test_run(no_exp_func_tem_arg_pass)
+boost_test_compile_fail(no_exp_func_tem_arg_fail)
+boost_test_run(no_func_tmp_order_pass)
+boost_test_compile_fail(no_func_tmp_order_fail)
+boost_test_run(no_i64_limits_pass)
+boost_test_compile_fail(no_i64_limits_fail)
+boost_test_run(no_inline_memb_init_pass)
+boost_test_compile_fail(no_inline_memb_init_fail)
+boost_test_run(no_integral_int64_t_pass)
+boost_test_compile_fail(no_integral_int64_t_fail)
+boost_test_run(no_is_abstract_pass)
+boost_test_compile_fail(no_is_abstract_fail)
+boost_test_run(no_iter_construct_pass)
+boost_test_compile_fail(no_iter_construct_fail)
+boost_test_run(no_limits_pass)
+boost_test_compile_fail(no_limits_fail)
+boost_test_run(no_limits_const_exp_pass)
+boost_test_compile_fail(no_limits_const_exp_fail)
+boost_test_run(no_ll_limits_pass)
+boost_test_compile_fail(no_ll_limits_fail)
+boost_test_run(no_mem_func_spec_pass)
+boost_test_compile_fail(no_mem_func_spec_fail)
+boost_test_run(no_mem_tem_keyword_pass)
+boost_test_compile_fail(no_mem_tem_keyword_fail)
+boost_test_run(no_mem_tem_pnts_pass)
+boost_test_compile_fail(no_mem_tem_pnts_fail)
+boost_test_run(no_mem_templ_frnds_pass)
+boost_test_compile_fail(no_mem_templ_frnds_fail)
+boost_test_run(no_mem_templates_pass)
+boost_test_compile_fail(no_mem_templates_fail)
+boost_test_run(no_ops_in_namespace_pass)
+boost_test_compile_fail(no_ops_in_namespace_fail)
+boost_test_run(no_partial_spec_pass)
+boost_test_compile_fail(no_partial_spec_fail)
+boost_test_run(no_priv_aggregate_pass)
+boost_test_compile_fail(no_priv_aggregate_fail)
+boost_test_run(no_ptr_mem_const_pass)
+boost_test_compile_fail(no_ptr_mem_const_fail)
+boost_test_run(no_ret_det_pass)
+boost_test_compile_fail(no_ret_det_fail)
+boost_test_run(no_sfinae_pass)
+boost_test_compile_fail(no_sfinae_fail)
+boost_test_run(no_sstream_pass)
+boost_test_compile_fail(no_sstream_fail)
+boost_test_run(no_std_allocator_pass)
+boost_test_compile_fail(no_std_allocator_fail)
+boost_test_run(no_std_distance_pass)
+boost_test_compile_fail(no_std_distance_fail)
+boost_test_run(no_std_iter_traits_pass)
+boost_test_compile_fail(no_std_iter_traits_fail)
+boost_test_run(no_std_iterator_pass)
+boost_test_compile_fail(no_std_iterator_fail)
+boost_test_run(no_std_locale_pass)
+boost_test_compile_fail(no_std_locale_fail)
+boost_test_run(no_std_messages_pass)
+boost_test_compile_fail(no_std_messages_fail)
+boost_test_run(no_std_min_max_pass)
+boost_test_compile_fail(no_std_min_max_fail)
+boost_test_run(no_std_oi_assign_pass)
+boost_test_compile_fail(no_std_oi_assign_fail)
+boost_test_run(no_std_use_facet_pass)
+boost_test_compile_fail(no_std_use_facet_fail)
+boost_test_run(no_std_wstreambuf_pass)
+boost_test_compile_fail(no_std_wstreambuf_fail)
+boost_test_run(no_std_wstring_pass)
+boost_test_compile_fail(no_std_wstring_fail)
+boost_test_run(no_stdc_namespace_pass)
+boost_test_compile_fail(no_stdc_namespace_fail)
+boost_test_run(no_swprintf_pass)
+boost_test_compile_fail(no_swprintf_fail)
+boost_test_run(no_template_template_pass)
+boost_test_compile_fail(no_template_template_fail)
+boost_test_run(no_using_breaks_adl_pass)
+boost_test_compile_fail(no_using_breaks_adl_fail)
+boost_test_run(no_using_decl_overld_pass)
+boost_test_compile_fail(no_using_decl_overld_fail)
+boost_test_run(no_using_template_pass)
+boost_test_compile_fail(no_using_template_fail)
+boost_test_run(no_void_returns_pass)
+boost_test_compile_fail(no_void_returns_fail)
+boost_test_run(no_wchar_t_pass)
+boost_test_compile_fail(no_wchar_t_fail)
+

Added: branches/CMake-release/libs/conversion/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/conversion/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,6 @@
+boost_library_project(
+ Conversion
+ TESTDIRS test
+)
+
+

Added: branches/CMake-release/libs/conversion/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/conversion/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,12 @@
+boost_test_run(implicit_cast)
+boost_test_compile_fail(implicit_cast_fail)
+boost_test_run(cast_test ../cast_test.cpp)
+boost_test_run(numeric_cast_test ../numeric_cast_test.cpp)
+boost_test_run(
+ lexical_cast_test
+ ../lexical_cast_test.cpp
+ DEPENDS boost_unit_test_framework
+)
+
+
+

Added: branches/CMake-release/libs/crc/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/crc/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,6 @@
+boost_library_project(
+ CRC
+ TESTDIRS test
+)
+
+

Added: branches/CMake-release/libs/crc/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/crc/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,2 @@
+boost_test_run(crc_test ../crc_test.cpp)
+

Added: branches/CMake-release/libs/date_time/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/date_time/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,10 @@
+boost_library_project(
+ Date_time
+ SRCDIRS src
+ TESTDIRS test
+ )
+
+
+
+
+

Added: branches/CMake-release/libs/date_time/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/date_time/src/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,7 @@
+add_definitions(-DBOOST_DATE_TIME_NO_LIB=1)
+boost_add_library(
+ boost_date_time
+ gregorian/greg_month.cpp gregorian/greg_weekday.cpp gregorian/date_generators.cpp
+ STATIC_COMPILE_FLAGS -DBOOST_DATE_TIME_STATIC_LINK
+ SHARED_COMPILE_FLAGS -DBOOST_ALL_DYN_LINK=1
+ )

Added: branches/CMake-release/libs/date_time/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/date_time/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,185 @@
+# Core
+boost_test_run(testint_adapter)
+boost_test_run(testtime_resolution_traits)
+boost_test_run(testwrapping_int)
+boost_test_run(testconstrained_value)
+boost_test_run(testgregorian_calendar)
+boost_test_run(testgeneric_period)
+
+set(DATE_TIME_COMPILE_FLAGS
+ "-DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG -DBOOST_DATE_TIME_STATIC_LINK -DBOOST_ALL_NO_LIB")
+set(DATE_TIME_SHARED_COMPILE_FLAGS
+ "-DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG -DBOOST_ALL_DYN_LINK -DBOOST_ALL_NO_LIB")
+
+# A macro that collects the common settings used to build a run test
+# for the Date-Time library that links statically.
+macro(date_time_static_test SUBDIR TESTNAME)
+ boost_test_run(${TESTNAME}
+ "${SUBDIR}/${TESTNAME}.cpp"
+ DEPENDS boost_date_time STATIC
+ COMPILE_FLAGS ${DATE_TIME_COMPILE_FLAGS})
+endmacro(date_time_static_test)
+
+# A macro that collects the common settings used to build a run test
+# for the Date-Time library that links dynamically.
+macro(date_time_shared_test SUBDIR TESTNAME)
+ boost_test_run("${TESTNAME}_dll"
+ "${SUBDIR}/${TESTNAME}.cpp"
+ DEPENDS boost_date_time SHARED
+ COMPILE_FLAGS ${DATE_TIME_SHARED_COMPILE_FLAGS})
+endmacro(date_time_shared_test)
+
+# Gregorian
+date_time_static_test(gregorian testdate)
+date_time_static_test(gregorian testdate_duration)
+date_time_static_test(gregorian testgreg_durations)
+date_time_static_test(gregorian testperiod)
+date_time_static_test(gregorian testdate_iterator)
+date_time_static_test(gregorian testformatters)
+### streaming
+date_time_static_test(gregorian testdate_facet_new)
+date_time_static_test(gregorian testdate_input_facet)
+###
+date_time_static_test(gregorian testgenerators)
+date_time_static_test(gregorian testgreg_cal)
+date_time_static_test(gregorian testgreg_day)
+date_time_static_test(gregorian testgreg_month)
+date_time_static_test(gregorian testgreg_year)
+
+date_time_shared_test(gregorian testdate)
+date_time_shared_test(gregorian testdate_duration)
+date_time_shared_test(gregorian testgreg_durations)
+date_time_shared_test(gregorian testperiod)
+date_time_shared_test(gregorian testdate_iterator)
+date_time_shared_test(gregorian testformatters)
+### streaming
+date_time_shared_test(gregorian testdate_facet_new)
+date_time_shared_test(gregorian testdate_input_facet)
+###
+date_time_shared_test(gregorian testgenerators)
+date_time_shared_test(gregorian testgreg_cal)
+date_time_shared_test(gregorian testgreg_day)
+date_time_shared_test(gregorian testgreg_month)
+date_time_shared_test(gregorian testgreg_year)
+
+# POSIX Time
+date_time_static_test(posix_time testfiletime_functions)
+date_time_static_test(posix_time testlocal_adjustor)
+date_time_static_test(posix_time testc_local_adjustor)
+date_time_static_test(posix_time testclock)
+date_time_static_test(posix_time testdst_rules)
+date_time_static_test(posix_time testduration)
+date_time_static_test(posix_time testiterator)
+date_time_static_test(posix_time testparse_time)
+date_time_static_test(posix_time testtime_period)
+date_time_static_test(posix_time testtime)
+date_time_static_test(posix_time testmicrosec_time_clock)
+date_time_static_test(posix_time testtime_formatters)
+date_time_static_test(posix_time testgreg_duration_operators)
+### streaming
+date_time_static_test(posix_time testtime_facet)
+date_time_static_test(posix_time testtime_input_facet)
+###
+
+# Wide streaming
+boost_test_run(testgreg_wstream
+ "gregorian/testgreg_wstream.cpp"
+ DEPENDS boost_date_time STATIC
+ COMPILE_FLAGS "${DATE_TIME_COMPILE_FLAGS} -DUSE_DATE_TIME_PRE_1_33_FACET_IO")
+boost_test_run(testtime_wstream
+ "posix_time/testtime_wstream.cpp"
+ DEPENDS boost_date_time STATIC
+ COMPILE_FLAGS "${DATE_TIME_COMPILE_FLAGS} -DUSE_DATE_TIME_PRE_1_33_FACET_IO")
+
+# Pre-1.33 facets
+boost_test_run(testfacet_dll
+ "gregorian/testfacet.cpp"
+ DEPENDS boost_date_time SHARED
+ COMPILE_FLAGS "${DATE_TIME_SHARED_COMPILE_FLAGS} -DUSE_DATE_TIME_PRE_1_33_FACET_IO")
+# Note: This next test was commented out in the Jamfile.v2 because "it
+# crashes on VC6 (cause unknown)"
+boost_test_run(testparse_date_dll
+ "gregorian/testparse_date.cpp"
+ DEPENDS boost_date_time SHARED
+ COMPILE_FLAGS "${DATE_TIME_SHARED_COMPILE_FLAGS} -DUSE_DATE_TIME_PRE_1_33_FACET_IO")
+boost_test_run(testfacet
+ "gregorian/testfacet.cpp"
+ DEPENDS boost_date_time STATIC
+ COMPILE_FLAGS "${DATE_TIME_COMPILE_FLAGS} -DUSE_DATE_TIME_PRE_1_33_FACET_IO")
+boost_test_run(testparse_date
+ "gregorian/testparse_date.cpp"
+ DEPENDS boost_date_time STATIC
+ COMPILE_FLAGS "${DATE_TIME_COMPILE_FLAGS} -DUSE_DATE_TIME_PRE_1_33_FACET_IO")
+boost_test_run(teststreams
+ "posix_time/teststreams.cpp"
+ DEPENDS boost_date_time STATIC
+ COMPILE_FLAGS "${DATE_TIME_COMPILE_FLAGS} -DUSE_DATE_TIME_PRE_1_33_FACET_IO")
+
+# Local time
+date_time_static_test(local_time testdst_transition_day_rule)
+date_time_static_test(local_time testcustom_time_zone)
+date_time_static_test(local_time testposix_time_zone)
+date_time_static_test(local_time testwcustom_time_zone)
+date_time_static_test(local_time testwposix_time_zone)
+
+# we have to copy these into the binary dir because to make the
+# paths inside the tests match
+if (NOT ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
+ FILE(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/libs/date_time/data")
+ execute_process(COMMAND cmake -E copy "${CMAKE_SOURCE_DIR}/libs/date_time/data/date_time_zonespec.csv" "${CMAKE_BINARY_DIR}/libs/date_time/data")
+ FILE(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/libs/date_time/test/local_time")
+ execute_process(COMMAND cmake -E copy "${CMAKE_SOURCE_DIR}/libs/date_time/test/local_time/poorly_formed_zonespec.csv" "${CMAKE_BINARY_DIR}/libs/date_time/test/local_time")
+endif (NOT ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
+
+date_time_static_test(local_time testtz_database)
+date_time_static_test(local_time testlocal_time)
+date_time_static_test(local_time testlocal_time_iterator)
+date_time_static_test(local_time testlocal_time_period)
+### streaming
+date_time_static_test(local_time testlocal_time_facet)
+date_time_static_test(local_time testlocal_time_input_facet)
+###
+date_time_static_test(local_time testclocks)
+
+
+set(DATE_TIME_COMPILE_FLAGS
+ "-DBOOST_DATE_TIME_STATIC_LINK -DBOOST_ALL_NO_LIB -DUSE_DATE_TIME_PRE_1_33_FACET_IO")
+
+# Serialization
+ # xml archive tests
+boost_test_run(testgreg_serialize_xml
+ "gregorian/testgreg_serialize.cpp"
+ DEPENDS boost_date_time boost_serialization STATIC
+ COMPILE_FLAGS "${DATE_TIME_COMPILE_FLAGS} -DDATE_TIME_XML_SERIALIZE")
+boost_test_run(testtime_serialize_xml_std_config
+ "posix_time/testtime_serialize.cpp"
+ DEPENDS boost_date_time boost_serialization STATIC
+ COMPILE_FLAGS "${DATE_TIME_COMPILE_FLAGS} -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG -DDATE_TIME_XML_SERIALIZE")
+boost_test_run(testtime_serialize_xml
+ "posix_time/testtime_serialize.cpp"
+ DEPENDS boost_date_time boost_serialization STATIC
+ COMPILE_FLAGS "${DATE_TIME_COMPILE_FLAGS} -DDATE_TIME_XML_SERIALIZE")
+
+ # text archive tests
+boost_test_run(testgreg_serialize
+ "gregorian/testgreg_serialize.cpp"
+ DEPENDS boost_date_time boost_serialization STATIC
+ COMPILE_FLAGS "${DATE_TIME_COMPILE_FLAGS}")
+boost_test_run(testgreg_serialize_dll
+ "gregorian/testgreg_serialize.cpp"
+ DEPENDS boost_date_time SHARED boost_serialization SHARED
+ COMPILE_FLAGS "${DATE_TIME_SHARED_COMPILE_FLAGS}")
+boost_test_run(testtime_serialize_std_config
+ "posix_time/testtime_serialize.cpp"
+ DEPENDS boost_date_time boost_serialization STATIC
+ COMPILE_FLAGS "${DATE_TIME_COMPILE_FLAGS} -DBOOST_DATE_TIME_POSIX_TIME_STD_CONFIG")
+boost_test_run(testtime_serialize
+ "posix_time/testtime_serialize.cpp"
+ DEPENDS boost_date_time boost_serialization STATIC
+ COMPILE_FLAGS "${DATE_TIME_COMPILE_FLAGS}")
+
+# Copyright (c) 2000-2005
+# CrystalClear Software, Inc.
+# Subject to the Boost Software License, Version 1.0.
+# (See accompanying file LICENSE-1.0 or
+# http://www.boost.org/LICENSE-1.0)

Added: branches/CMake-release/libs/disjoint_sets/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/disjoint_sets/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Disjoint_sets
+ TESTDIRS test
+)

Added: branches/CMake-release/libs/disjoint_sets/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/disjoint_sets/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1 @@
+boost_test_run(disjoint_set_test ../disjoint_set_test.cpp)

Added: branches/CMake-release/libs/dynamic_bitset/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/dynamic_bitset/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Dynamic_bitset
+ TESTDIRS test
+)

Added: branches/CMake-release/libs/dynamic_bitset/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/dynamic_bitset/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_test_run(dyn_bitset_unit_tests1 ../dyn_bitset_unit_tests1.cpp)
+boost_test_run(dyn_bitset_unit_tests2 ../dyn_bitset_unit_tests2.cpp)
+boost_test_run(dyn_bitset_unit_tests3 ../dyn_bitset_unit_tests3.cpp)
+boost_test_run(dyn_bitset_unit_tests4 ../dyn_bitset_unit_tests4.cpp)

Added: branches/CMake-release/libs/filesystem/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/filesystem/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,9 @@
+boost_library_project(
+ Filesystem
+ SRCDIRS src
+ TESTDIRS test
+ )
+
+
+
+

Added: branches/CMake-release/libs/filesystem/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/filesystem/src/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,7 @@
+boost_add_library(
+ boost_filesystem
+ operations.cpp path.cpp portability.cpp utf8_codecvt_facet.cpp
+ SHARED_COMPILE_FLAGS "-DBOOST_FILESYSTEM_DYN_LINK=1"
+ DEPENDS boost_system
+ )
+

Added: branches/CMake-release/libs/filesystem/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/filesystem/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,21 @@
+ADD_DEFINITIONS(-DBOOST_ALL_NO_LIB) # -DBOOST_FILESYSTEM_STATIC_LINK)
+
+SET(TESTS path_test operations_test
+ fstream_test convenience_test
+ large_file_support_test wide_test)
+
+FOREACH(test ${TESTS})
+ boost_test_run(${test}_static
+ ${test}.cpp
+ DEPENDS boost_filesystem STATIC
+ COMPILE_FLAGS -DBOOST_FILESYSTEM_STATIC_LINK)
+ boost_test_run(${test}_dynamic
+ ${test}.cpp
+ DEPENDS boost_filesystem SHARED
+ COMPILE_FLAGS -DBOOST_FILESYSTEM_DYN_LINK)
+ENDFOREACH(test ${TESTS})
+
+boost_test_compile(mbcopy ../example/mbcopy.cpp)
+boost_test_compile(mbpath ../example/mbpath.cpp)
+boost_test_compile(simple_ls ../example/simple_ls.cpp)
+

Added: branches/CMake-release/libs/foreach/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/foreach/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_library_project(
+ Foreach
+ TESTDIRS test
+)
+

Added: branches/CMake-release/libs/foreach/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/foreach/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,21 @@
+set(TESTS
+stl_byval
+stl_byref
+array_byval
+array_byref
+cstr_byval
+cstr_byref
+pair_byval
+pair_byref
+user_defined
+call_once
+rvalue_const
+rvalue_nonconst
+dependent_type)
+
+foreach(test ${TESTS})
+ boost_test_run(${test})
+endforeach(test ${TESTS})
+
+boost_test_compile(noncopyable)
+

Added: branches/CMake-release/libs/format/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/format/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_library_project(
+ Format
+ TESTDIRS test
+)
+

Added: branches/CMake-release/libs/format/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/format/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_test_run(format_test1 DEPENDS boost_test_exec_monitor)
+boost_test_run(format_test2 DEPENDS boost_test_exec_monitor)
+boost_test_run(format_test3 DEPENDS boost_test_exec_monitor)
+boost_test_run(format_test_wstring DEPENDS boost_test_exec_monitor)
+

Added: branches/CMake-release/libs/function/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/function/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1 @@
+boost_library_project(Function TESTDIRS test)

Added: branches/CMake-release/libs/function/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/function/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,20 @@
+boost_test_run(lib_function_test function_test.cpp)
+boost_test_run(function_n_test)
+boost_test_run(allocator_test)
+boost_test_run(stateless_test)
+boost_test_run(lambda_test)
+boost_test_compile_fail(function_test_fail1)
+boost_test_compile_fail(function_test_fail2)
+boost_test_compile(function_30)
+boost_test_run(function_arith_cxx98)
+boost_test_run(function_arith_portable)
+boost_test_run(sum_avg_cxx98)
+boost_test_run(sum_avg_portable)
+boost_test_run(mem_fun_cxx98)
+boost_test_run(mem_fun_portable)
+boost_test_run(std_bind_cxx98)
+boost_test_run(std_bind_portable)
+boost_test_run(function_ref_cxx98)
+boost_test_run(function_ref_portable)
+boost_test_run(contains_test)
+boost_test_run(contains2_test)

Added: branches/CMake-release/libs/functional/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/functional/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_library_project(
+ Functional
+ TESTDIRS test hash/test hash/examples
+)
+

Added: branches/CMake-release/libs/functional/hash/examples/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/functional/hash/examples/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_test_run(books)
+boost_test_run(point)
+boost_test_run(portable)
+
+

Added: branches/CMake-release/libs/functional/hash/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/functional/hash/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,44 @@
+#project hash-tests
+# : requirements
+# <toolset>gcc:<define>_GLIBCXX_DEBUG
+# ;
+if (GCC)
+ ADD_DEFINITIONS(-D_GLIBCXX_DEBUG)
+endif(GCC)
+
+# [ run .cpp : : : <test-info>always_show_run_output ]
+
+SET(tests
+hash_float_test
+hash_fwd_test_1
+hash_fwd_test_2
+hash_number_test
+hash_pointer_test
+hash_function_pointer_test
+hash_string_test
+hash_range_test
+hash_custom_test
+hash_global_namespace_test
+hash_friend_test
+hash_built_in_array_test
+hash_value_array_test
+hash_vector_test
+hash_list_test
+hash_deque_test
+hash_set_test
+hash_map_test
+container_fwd_test
+hash_no_ext_macro_1
+hash_no_ext_macro_2
+)
+
+boost_test_run(link_test link_test.cpp link_test_2.cpp)
+boost_test_run(link_ext_test link_ext_test.cpp link_no_ext_test.cpp)
+
+foreach(test ${tests})
+ boost_test_run(${test})
+endforeach(test ${tests})
+
+boost_test_compile_fail(hash_no_ext_fail_test)
+
+# build-project ../examples ;

Added: branches/CMake-release/libs/functional/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/functional/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1 @@
+boost_test_run(function_test ../function_test.cpp)

Added: branches/CMake-release/libs/graph/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/graph/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,6 @@
+boost_library_project(
+ Graph
+ SRCDIRS src
+ TESTDIRS test
+ )
+

Added: branches/CMake-release/libs/graph/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/graph/src/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,27 @@
+add_definitions(-DBOOST_GRAPH_NO_LIB=1)
+
+if (MSVC)
+ # Without these flags, MSVC 7.1 and 8.0 crash
+ add_definitions(-GR-)
+endif (MSVC)
+
+set(BOOST_GRAPH_OPTIONAL_SOURCES "")
+set(BOOST_GRAPH_OPTIONAL_LIBRARIES "")
+
+# Try to find the Expat library
+include(FindEXPAT)
+if (EXPAT_FOUND)
+ # We have Expat, so build the GraphML parser - TODO: Boost 1.34.x only
+# set(BOOST_GRAPH_OPTIONAL_SOURCES
+# ${BOOST_GRAPH_OPTIONAL_SOURCES} "graphml.cpp")
+ include_directories(${EXPAT_INCLUDE_DIRS})
+ set(BOOST_GRAPH_OPTIONAL_LIBRARIES
+ "${BOOST_GRAPH_OPTIONAL_LIBRARIES} ${EXPAT_LIBRARIES}")
+endif (EXPAT_FOUND)
+
+boost_add_library(
+ boost_graph
+ read_graphviz_spirit.cpp ${BOOST_GRAPH_OPTIONAL_SOURCES}
+ LINK_LIBS ${BOOST_GRAPH_OPTIONAL_LIBRARIES}
+ SHARED_COMPILE_FLAGS "-DBOOST_GRAPH_DYN_LINK=1"
+ )

Added: branches/CMake-release/libs/graph/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/graph/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,61 @@
+boost_test_run(transitive_closure_test)
+boost_test_compile(adj_list_cc)
+boost_test_run(adj_list_edge_list_set)
+boost_test_compile(adj_matrix_cc)
+boost_test_run(bfs)
+boost_test_compile(bfs_cc)
+boost_test_run(bellman-test)
+boost_test_run(betweenness_centrality_test RELEASE)
+boost_test_run(csr_graph_test)
+boost_test_run(dag_longest_paths)
+boost_test_run(dfs)
+boost_test_compile(dfs_cc)
+boost_test_compile(dijkstra_cc)
+boost_test_run(dijkstra_heap_performance ARGS 10000 RELEASE)
+boost_test_run(dominator_tree_test)
+boost_test_run(relaxed_heap_test ARGS 5000 15000)
+boost_test_compile(edge_list_cc)
+boost_test_compile(filtered_graph_cc)
+boost_test_run(graph)
+boost_test_compile(graph_concepts)
+boost_test_run(graphviz_test
+ DEPENDS boost_test_exec_monitor boost_graph STATIC)
+boost_test_run(gursoy_atun_layout_test)
+boost_test_run(layout_test)
+boost_test_run(serialize DEPENDS boost_serialization)
+boost_test_compile(reverse_graph_cc)
+boost_test_run(sequential_vertex_coloring)
+boost_test_run(subgraph)
+boost_test_run(isomorphism)
+boost_test_run(adjacency_matrix_test)
+boost_test_compile(vector_graph_cc)
+boost_test_compile(copy)
+boost_test_compile(property_iter)
+boost_test_run(bundled_properties)
+boost_test_run(floyd_warshall_test)
+boost_test_run(astar_search_test)
+boost_test_run(biconnected_components_test)
+boost_test_run(cuthill_mckee_ordering)
+boost_test_run(king_ordering)
+boost_test_run(matching_test)
+# boost_test_run(max_flow_test)
+# boost_test_run(kolmogorov_max_flow_test) TODO: Boost 1.34.x only
+
+# GraphML Tests - not for Boost 1.34.x
+#include(FindEXPAT)
+#if (EXPAT_FOUND)
+# include_directories(${EXPAT_INCLUDE_DIRS})
+# boost_test_run(graphml_test LIBRARIES boost_graph)
+#endif (EXPAT_FOUND)
+
+# Stanford GraphBase Tests
+if ($ENV{SDB})
+ include_directories("$ENV{SDB}")
+ boost_test_compile(stanford_graph_cc)
+endif ($ENV{SDB})
+
+# LEDA tests
+if ($ENV{LEDA})
+ include_directories("$ENV{LEDA}/incl")
+ boost_test_compile(leda_graph_cc)
+endif ($ENV{LEDA})

Added: branches/CMake-release/libs/integer/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/integer/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Integer
+ TESTDIRS test
+)

Added: branches/CMake-release/libs/integer/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/integer/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_test_run(cstdint_test ../cstdint_test.cpp)
+boost_test_run(integer_test ../integer_test.cpp)
+boost_test_run(integer_traits_test ../integer_traits_test.cpp
+ DEPENDS boost_test_exec_monitor)

Added: branches/CMake-release/libs/io/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/io/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,2 @@
+boost_library_project(IO
+ TESTDIRS test)

Added: branches/CMake-release/libs/io/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/io/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,3 @@
+boost_test_run(ios_state_unit_test DEPENDS boost_unit_test_framework)
+boost_test_run(ios_state_test DEPENDS boost_test_exec_monitor)
+

Added: branches/CMake-release/libs/iostreams/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/iostreams/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_library_project(
+ IOStreams
+ SRCDIRS src
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/iostreams/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/iostreams/src/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,32 @@
+set(BOOST_IOSTREAMS_EXTRA_SOURCES)
+set(BOOST_IOSTREAMS_LIBRARIES)
+
+# Find zlib. If it's available, include it in the iostreams build
+set(ZLIB_FIND_QUIETLY TRUE)
+include(FindZLIB)
+if (ZLIB_FOUND)
+ include_directories(${ZLIB_INCLUDE_DIR})
+ set(BOOST_IOSTREAMS_EXTRA_SOURCES
+ ${BOOST_IOSTREAMS_EXTRA_SOURCES} zlib.cpp)
+ set(BOOST_IOSTREAMS_LIBRARIES
+ ${BOOST_IOSTREAMS_LIBRARIES} ${ZLIB_LIBRARIES})
+endif(ZLIB_FOUND)
+
+# Find bzip2. If it's available, include it in the iostreams build
+set(BZip2_FIND_QUIETLY TRUE)
+include(FindBZip2)
+if (BZIP2_FOUND)
+ include_directories(${BZIP2_INCLUDE_DIR})
+ add_definitions(${BZIP2_DEFINITIONS})
+ set(BOOST_IOSTREAMS_EXTRA_SOURCES
+ ${BOOST_IOSTREAMS_EXTRA_SOURCES} bzip2.cpp)
+ set(BOOST_IOSTREAMS_LIBRARIES
+ ${BOOST_IOSTREAMS_LIBRARIES} ${BZIP2_LIBRARIES})
+
+ # NOTE: What to do about BZIP2_NEED_PREFIX?
+endif(BZIP2_FOUND)
+
+boost_add_library(boost_iostreams
+ file_descriptor.cpp mapped_file.cpp ${BOOST_IOSTREAMS_EXTRA_SOURCES}
+ LINK_LIBS "${BOOST_IOSTREAMS_LIBRARIES}"
+ SHARED_COMPILE_FLAGS "-DBOOST_IOSTREAMS_DYN_LINK=1")

Added: branches/CMake-release/libs/iostreams/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/iostreams/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,65 @@
+# Helper macro to create tests for the iostreams library
+macro(iostreams_test TESTNAME)
+ boost_test_run(${TESTNAME}
+ ${ARGN}
+ DEPENDS boost_unit_test_framework
+ COMPILE_FLAGS "-DBOOST_IOSTREAMS_NO_LIB")
+endmacro(iostreams_test)
+
+iostreams_test(array_test)
+iostreams_test(auto_close_test)
+iostreams_test(buffer_size_test)
+iostreams_test(code_converter_test
+ code_converter_test.cpp detail/utf8_codecvt_facet.cpp)
+iostreams_test(compose_test)
+iostreams_test(component_access_test)
+iostreams_test(copy_test)
+iostreams_test(counter_test)
+iostreams_test(direct_adapter_test)
+iostreams_test(example_test)
+iostreams_test(file_test)
+boost_test_run(file_descriptor_test
+ DEPENDS boost_unit_test_framework boost_iostreams
+ COMPILE_FLAGS "-DBOOST_IOSTREAMS_NO_LIB")
+iostreams_test(filtering_stream_test)
+iostreams_test(finite_state_filter_test)
+iostreams_test(flush_test)
+iostreams_test(invert_test)
+iostreams_test(line_filter_test)
+boost_test_run(mapped_file_test
+ DEPENDS boost_unit_test_framework boost_iostreams
+ COMPILE_FLAGS "-DBOOST_IOSTREAMS_NO_LIB")
+iostreams_test(newline_test)
+iostreams_test(null_test)
+iostreams_test(pipeline_test)
+boost_test_run(regex_filter_test
+ DEPENDS boost_unit_test_framework boost_regex
+ COMPILE_FLAGS "-DBOOST_IOSTREAMS_NO_LIB")
+iostreams_test(restrict_test)
+iostreams_test(seekable_file_test)
+iostreams_test(seekable_filter_test)
+iostreams_test(stdio_filter_test)
+iostreams_test(symmetric_filter_test)
+iostreams_test(tee_test)
+iostreams_test(wide_stream_test)
+
+# Find zlib. If it's available, test it
+set(ZLIB_FIND_QUIETLY TRUE)
+include(FindZLIB)
+if (ZLIB_FOUND)
+ boost_test_run(gzip_test
+ DEPENDS boost_unit_test_framework boost_iostreams
+ COMPILE_FLAGS "-DBOOST_IOSTREAMS_NO_LIB")
+ boost_test_run(zlib_test
+ DEPENDS boost_unit_test_framework boost_iostreams
+ COMPILE_FLAGS "-DBOOST_IOSTREAMS_NO_LIB")
+endif(ZLIB_FOUND)
+
+# Find BZip2. If it's available, test it
+set(BZip2_FIND_QUIETLY TRUE)
+include(FindBZip2)
+if (BZIP2_FOUND)
+ boost_test_run(bzip2_test
+ DEPENDS boost_unit_test_framework boost_iostreams
+ COMPILE_FLAGS "-DBOOST_IOSTREAMS_NO_LIB")
+endif(BZIP2_FOUND)

Added: branches/CMake-release/libs/iterator/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/iterator/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Iterator
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/iterator/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/iterator/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,31 @@
+# These first two tests will run last, and are expected to fail
+# for many less-capable compilers.
+
+boost_test_compile_fail(interoperable_fail)
+# test uses expected success, so that we catch unrelated
+# compilation problems.
+boost_test_run(is_convertible_fail)
+boost_test_run(zip_iterator_test)
+
+# These tests should work for just about everything.
+boost_test_compile(is_lvalue_iterator)
+boost_test_compile(is_readable_iterator)
+boost_test_compile(pointee)
+
+boost_test_run(unit_tests)
+boost_test_run(concept_tests)
+boost_test_run(iterator_adaptor_cc)
+boost_test_run(iterator_adaptor_test)
+boost_test_compile(iterator_archetype_cc)
+boost_test_compile_fail(iter_archetype_default_ctor)
+boost_test_compile_fail(lvalue_concept_fail)
+boost_test_run(transform_iterator_test)
+boost_test_run(indirect_iterator_test)
+boost_test_compile(indirect_iter_member_types)
+boost_test_run(filter_iterator_test)
+boost_test_run(iterator_facade)
+boost_test_run(reverse_iterator_test)
+boost_test_run(counting_iterator_test)
+boost_test_run(interoperable)
+boost_test_run(iterator_traits_test)
+boost_test_run(permutation_iterator_test)

Added: branches/CMake-release/libs/lambda/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/lambda/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Lambda
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/lambda/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/lambda/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,16 @@
+boost_test_run(algorithm_test DEPENDS boost_test_exec_monitor)
+boost_test_run(bind_tests_simple DEPENDS boost_test_exec_monitor)
+boost_test_run(bind_tests_advanced DEPENDS boost_test_exec_monitor)
+boost_test_run(bind_tests_simple_f_refs DEPENDS boost_test_exec_monitor)
+boost_test_run(bll_and_function DEPENDS boost_test_exec_monitor)
+boost_test_run(lambda_cast_test
+ cast_test.cpp DEPENDS boost_test_exec_monitor)
+boost_test_run(constructor_tests DEPENDS boost_test_exec_monitor)
+boost_test_run(control_structures DEPENDS boost_test_exec_monitor)
+boost_test_run(exception_test DEPENDS boost_test_exec_monitor)
+boost_test_run(extending_rt_traits DEPENDS boost_test_exec_monitor)
+boost_test_run(is_instance_of_test DEPENDS boost_test_exec_monitor)
+boost_test_run(member_pointer_test DEPENDS boost_test_exec_monitor)
+boost_test_run(operator_tests_simple DEPENDS boost_test_exec_monitor)
+boost_test_run(phoenix_control_structures DEPENDS boost_test_exec_monitor)
+boost_test_run(switch_construct DEPENDS boost_test_exec_monitor)

Added: branches/CMake-release/libs/logic/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/logic/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Logic
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/logic/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/logic/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,3 @@
+boost_test_run(tribool_test)
+boost_test_run(tribool_rename_test)
+boost_test_run(tribool_io_test)

Added: branches/CMake-release/libs/math/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/math/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Math
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/math/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/math/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,18 @@
+boost_test_run(common_factor_test DEPENDS boost_unit_test_framework)
+boost_test_run(octonion_test
+ ../octonion/octonion_test.cpp
+ DEPENDS boost_unit_test_framework)
+boost_test_run(quaternion_test
+ ../quaternion/quaternion_test.cpp
+ DEPENDS boost_unit_test_framework)
+boost_test_run(special_functions_test
+ ../special_functions/special_functions_test.cpp
+ DEPENDS boost_unit_test_framework)
+boost_test_run(quaternion_multi_incl_test
+ ../quaternion/quaternion_mult_incl_test.cpp
+ ../quaternion/quaternion_mi1.cpp
+ ../quaternion/quaternion_mi2.cpp
+ DEPENDS boost_unit_test_framework)
+boost_test_run(complex_test)
+boost_test_run(hypot_test)
+boost_test_run(log1p_expm1_test)

Added: branches/CMake-release/libs/mpl/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/mpl/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_library_project(
+ Metaprogramming
+ TESTDIRS test
+ )
+

Added: branches/CMake-release/libs/mpl/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/mpl/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,89 @@
+boost_test_compile(largest_int aux_/largest_int.cpp)
+boost_test_compile(msvc_is_class aux_/msvc_is_class.cpp)
+boost_test_compile(template_arity aux_/template_arity.cpp)
+
+boost_test_compile(advance)
+boost_test_compile(always)
+boost_test_compile(apply)
+boost_test_compile(apply_wrap)
+boost_test_compile(arithmetic)
+boost_test_compile(as_sequence)
+boost_test_compile(assert)
+boost_test_compile(at)
+boost_test_compile(back)
+boost_test_compile(bind)
+boost_test_compile(bitwise)
+boost_test_run(bool)
+boost_test_compile(comparison)
+boost_test_compile(contains)
+boost_test_compile(copy)
+boost_test_compile(copy_if)
+boost_test_compile(count)
+boost_test_compile(count_if)
+boost_test_compile(deque)
+boost_test_compile(distance)
+boost_test_compile(empty)
+boost_test_compile(equal)
+boost_test_compile(erase)
+boost_test_compile(erase_range)
+boost_test_compile(eval_if)
+boost_test_compile(filter_view)
+boost_test_compile(find)
+boost_test_compile(find_if)
+boost_test_compile(fold)
+boost_test_run(for_each)
+boost_test_compile(front)
+boost_test_compile(has_xxx)
+boost_test_compile(identity)
+boost_test_compile(if)
+boost_test_compile(index_of)
+boost_test_compile(inherit)
+boost_test_compile(insert)
+boost_test_compile(insert_range)
+boost_test_run(int)
+boost_test_run(integral_c)
+boost_test_compile(is_placeholder)
+boost_test_compile(is_sequence)
+boost_test_compile(iterator_tags)
+boost_test_compile(joint_view)
+boost_test_compile(lambda)
+boost_test_compile(lambda_args)
+boost_test_compile(list)
+boost_test_compile(list_c)
+boost_test_compile(logical)
+boost_test_compile(lower_bound)
+boost_test_compile(map)
+boost_test_compile(max_element)
+boost_test_compile(min_max)
+boost_test_compile(multiset)
+boost_test_compile(next)
+boost_test_compile(no_has_xxx)
+boost_test_compile(numeric_ops)
+boost_test_compile(pair_view)
+boost_test_compile(partition)
+boost_test_compile(pop_front)
+boost_test_compile(push_front)
+boost_test_compile(quote)
+boost_test_compile(range_c)
+boost_test_compile(remove)
+boost_test_compile(remove_if)
+boost_test_compile(replace)
+boost_test_compile(replace_if)
+boost_test_compile(reverse)
+boost_test_compile(same_as)
+boost_test_compile(set)
+boost_test_compile(set_c)
+boost_test_compile(single_view)
+boost_test_compile(size)
+boost_test_run(size_t)
+boost_test_compile(sizeof)
+boost_test_compile(sort)
+boost_test_compile(stable_partition)
+boost_test_compile(transform)
+boost_test_compile(transform_view)
+boost_test_compile(unique)
+boost_test_compile(unpack_args)
+boost_test_compile(upper_bound)
+boost_test_compile(vector)
+boost_test_compile(vector_c)
+boost_test_compile(zip_view)

Added: branches/CMake-release/libs/multi_array/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/multi_array/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ MultiArray
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/multi_array/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/multi_array/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,38 @@
+boost_test_compile_fail(fail_cbracket)
+boost_test_compile_fail(fail_cdata)
+boost_test_compile_fail(fail_citerator)
+boost_test_compile_fail(fail_cparen)
+boost_test_compile_fail(fail_criterator)
+boost_test_compile_fail(fail_csubarray)
+boost_test_compile_fail(fail_csubarray2)
+boost_test_compile_fail(fail_csubarray3)
+boost_test_compile_fail(fail_cview)
+boost_test_compile_fail(fail_cview2)
+boost_test_compile_fail(fail_cview3)
+boost_test_compile_fail(fail_ref_cbracket)
+boost_test_compile_fail(fail_ref_cdata)
+boost_test_compile_fail(fail_ref_citerator)
+boost_test_compile_fail(fail_ref_cparen)
+boost_test_compile_fail(fail_ref_criterator)
+boost_test_compile_fail(fail_ref_csubarray)
+boost_test_compile_fail(fail_ref_csubarray2)
+boost_test_compile_fail(fail_ref_csubarray3)
+boost_test_compile_fail(fail_ref_cview)
+boost_test_compile_fail(fail_ref_cview2)
+boost_test_compile_fail(fail_ref_cview3)
+
+boost_test_run(constructors DEPENDS boost_test_exec_monitor)
+boost_test_run(access DEPENDS boost_test_exec_monitor)
+boost_test_run(compare DEPENDS boost_test_exec_monitor)
+boost_test_run(iterators DEPENDS boost_test_exec_monitor)
+boost_test_run(slice DEPENDS boost_test_exec_monitor)
+boost_test_run(assign DEPENDS boost_test_exec_monitor)
+boost_test_run(assign_to_array DEPENDS boost_test_exec_monitor)
+boost_test_run(index_bases DEPENDS boost_test_exec_monitor)
+boost_test_run(storage_order DEPENDS boost_test_exec_monitor)
+boost_test_run(reshape DEPENDS boost_test_exec_monitor)
+boost_test_run(range1 DEPENDS boost_test_exec_monitor)
+boost_test_run(idxgen1 DEPENDS boost_test_exec_monitor)
+boost_test_run(stl_interaction DEPENDS boost_test_exec_monitor)
+boost_test_run(resize DEPENDS boost_test_exec_monitor)
+boost_test_compile(concept_checks)

Added: branches/CMake-release/libs/multi_index/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/multi_index/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ MultiIndex
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/multi_index/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/multi_index/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,24 @@
+boost_test_run(test_basic test_basic.cpp test_basic_main.cpp)
+boost_test_run(test_capacity test_capacity.cpp test_capacity_main.cpp)
+boost_test_run(test_comparison test_comparison.cpp test_comparison_main.cpp)
+boost_test_run(test_composite_key test_composite_key.cpp test_composite_key_main.cpp)
+boost_test_run(test_conv_iterators test_conv_iterators.cpp test_conv_iterators_main.cpp)
+boost_test_run(test_copy_assignment test_copy_assignment.cpp test_copy_assignment_main.cpp)
+boost_test_run(test_hash_ops test_hash_ops.cpp test_hash_ops_main.cpp)
+boost_test_run(test_iterators test_iterators.cpp test_iterators_main.cpp)
+boost_test_run(test_key_extractors test_key_extractors.cpp test_key_extractors_main.cpp)
+boost_test_run(test_list_ops test_list_ops.cpp test_list_ops_main.cpp)
+boost_test_run(test_modifiers test_modifiers.cpp test_modifiers_main.cpp)
+boost_test_run(test_mpl_ops test_mpl_ops.cpp test_mpl_ops_main.cpp)
+boost_test_run(test_observers test_observers.cpp test_observers_main.cpp)
+boost_test_run(test_projection test_projection.cpp test_projection_main.cpp)
+boost_test_run(test_range test_range.cpp test_range_main.cpp)
+boost_test_run(test_rearrange test_rearrange.cpp test_rearrange_main.cpp)
+boost_test_run(test_safe_mode test_safe_mode.cpp test_safe_mode_main.cpp)
+boost_test_run(test_serialization
+ test_serialization.cpp test_serialization1.cpp
+ test_serialization2.cpp test_serialization_main.cpp
+ DEPENDS boost_serialization)
+boost_test_run(test_set_ops test_set_ops.cpp test_set_ops_main.cpp)
+boost_test_run(test_special_set_ops test_special_set_ops.cpp test_special_set_ops_main.cpp)
+boost_test_run(test_update test_update.cpp test_update_main.cpp)

Added: branches/CMake-release/libs/numeric/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/numeric/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Numeric
+ TESTDIRS conversion/test interval/test ublas/test
+ )

Added: branches/CMake-release/libs/numeric/conversion/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/numeric/conversion/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,6 @@
+boost_test_run(bounds_test)
+boost_test_run(traits_test)
+boost_test_run(converter_test)
+boost_test_run(udt_support_test)
+boost_test_run(numeric_cast_test)
+boost_test_run(udt_example_0)

Added: branches/CMake-release/libs/numeric/interval/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/numeric/interval/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,21 @@
+#TODO: Deal with these on OSF
+# <toolset>hp_cxx,<os>OSF:<cflags>"-fprm d"
+ # <toolset>gcc,<os>OSF:<cflags>-mfp-rounding-mode=d
+
+boost_test_compile(integer)
+
+boost_test_run(add)
+boost_test_run(det)
+boost_test_run(fmod)
+boost_test_run(mul)
+boost_test_run(overflow)
+boost_test_run(pi)
+boost_test_run(pow)
+
+boost_test_run(cmp DEPENDS boost_test_exec_monitor)
+boost_test_run(cmp_exn DEPENDS boost_test_exec_monitor)
+boost_test_run(cmp_exp DEPENDS boost_test_exec_monitor)
+boost_test_run(cmp_lex DEPENDS boost_test_exec_monitor)
+boost_test_run(cmp_set DEPENDS boost_test_exec_monitor)
+boost_test_run(cmp_tribool DEPENDS boost_test_exec_monitor)
+boost_test_run(test_float DEPENDS boost_test_exec_monitor)

Added: branches/CMake-release/libs/numeric/ublas/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/numeric/ublas/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,57 @@
+# Define features to test:
+# Value types: USE_FLOAT USE_DOUBLE USE_STD_COMPLEX
+# Proxies: USE_RANGE USE_SLICE
+# Storage types: USE_BOUNDED_ARRAY USE_UNBOUNDED_ARRAY
+# Vector types: USE_STD_VECTOR USE_BOUNDED_VECTOR
+# Matrix types: USE_MATRIX USE_BOUNDED_MATRIX USE_VECTOR_OF_VECTOR
+# Adaptors: USE_ADAPTOR
+
+set(UBLAS_TESTSET_DEFINES
+ "-DUSE_DOUBLE -DUSE_STD_COMPLEX -DUSE_RANGE -DUSE_SLICE -DUSE_UNBOUNDED_ARRAY -DUSE_STD_VECTOR -DUSE_BOUNDED_VECTOR -DUSE_MATRIX")
+
+# Sparse storage: USE_MAP_ARRAY USE_STD_MAP
+# Sparse vectors: USE_MAPPED_VECTOR USE_COMPRESSED_VECTOR USE_COORDINATE_VECTOR
+# Sparse matrices: USE_MAPPED_MATRIX USE_COMPRESSED_MATRIX USE_COORDINATE_MATRIX USE_MAPPED_VECTOR_OF_MAPPED_VECTOR USE_GENERALIZED_VECTOR_OF_VECTOR
+
+set(UBLAS_TESTSET_SPARSE_DEFINES
+ "-DUSE_DOUBLE -DUSE_STD_COMPLEX -DUSE_UNBOUNDED_ARRAY -DUSE_MAP_ARRAY -DUSE_STD_MAP -DUSE_MAPPED_VECTOR -DUSE_COMPRESSED_VECTOR -DUSE_COORDINATE_VECTOR -DUSE_MAPPED_MATRIX -DUSE_COMPRESSED_MATRIX -DUSE_COORDINATE_MATRIX")
+
+# Definitions for uBLAS tests
+add_definitions(-DBOOST_UBLAS_NO_EXCEPTIONS)
+# TODO: <toolset>vacpp:<define>"BOOST_UBLAS_NO_ELEMENT_PROXIES"
+
+boost_test_run(test1
+ test1.cpp test11.cpp test12.cpp test13.cpp
+ COMPILE_FLAGS "${UBLAS_TESTSET_DEFINES}")
+
+boost_test_run(test2
+ test2.cpp test21.cpp test22.cpp test23.cpp
+ COMPILE_FLAGS "${UBLAS_TESTSET_DEFINES}")
+
+boost_test_run(test3
+ test3.cpp test31.cpp test32.cpp test33.cpp
+ COMPILE_FLAGS "${UBLAS_TESTSET_SPARSE_DEFINES}")
+
+boost_test_run(test4
+ test4.cpp test42.cpp test43.cpp
+ COMPILE_FLAGS "${UBLAS_TESTSET_DEFINES}")
+
+boost_test_run(test5
+ test5.cpp test52.cpp test53.cpp
+ COMPILE_FLAGS "${UBLAS_TESTSET_DEFINES}")
+
+boost_test_run(test6
+ test6.cpp test62.cpp test63.cpp
+ COMPILE_FLAGS "${UBLAS_TESTSET_DEFINES}")
+
+# Test commented out, just like in V1 and V2 Jamfiles
+# boost_test_run(test7
+# test7.cpp test71.cpp test72.cpp test73.cpp
+# COMPILE_FLAGS "-DBOOST_UBLAS_USE_INTERVAL ${UBLAS_TESTSET_DEFINES}")
+
+boost_test_run(placement_new)
+
+#TODO:
+# <toolset>intel-linux:<cxxflags>"-Xc"
+# <toolset>darwin:<cxxflags>"-fabi-version=0"
+boost_test_compile(concepts COMPILE_FLAGS "-DEXTERNAL")

Added: branches/CMake-release/libs/optional/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/optional/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Optional
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/optional/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/optional/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,13 @@
+boost_test_run(optional_test)
+boost_test_run(optional_test_tie)
+boost_test_run(optional_test_ref)
+boost_test_run(optional_test_inplace)
+boost_test_run(optional_test_io)
+boost_test_compile_fail(optional_test_fail1)
+boost_test_compile_fail(optional_test_fail3a)
+boost_test_compile_fail(optional_test_fail3b)
+boost_test_compile_fail(optional_test_ref_fail1)
+boost_test_compile_fail(optional_test_ref_fail3)
+boost_test_compile_fail(optional_test_ref_fail4)
+boost_test_compile_fail(optional_test_inplace_fail)
+boost_test_compile_fail(optional_test_inplace_fail2)

Added: branches/CMake-release/libs/parameter/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/parameter/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Parameter
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/parameter/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/parameter/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,22 @@
+boost_test_run(basics)
+boost_test_run(sfinae)
+boost_test_run(macros)
+boost_test_run(earwicker)
+boost_test_run(tutorial)
+boost_test_run(singular)
+boost_test_run(mpl)
+boost_test_run(preprocessor)
+boost_test_run(preprocessor_deduced)
+boost_test_run(efficiency COMPILE_FLAGS "${RELEASE_COMPILE_FLAGS}")
+boost_test_run(maybe)
+boost_test_run(deduced)
+boost_test_run(optional_deduced_sfinae)
+boost_test_run(deduced_dependent_predicate)
+boost_test_run(normalized_argument_types)
+boost_test_compile(ntp)
+boost_test_compile(unwrap_cv_reference)
+boost_test_compile_fail(duplicates)
+boost_test_compile_fail(deduced_unmatched_arg)
+boost_test_compile(compose)
+
+# TODO: [ bpl-test python_test ]

Added: branches/CMake-release/libs/pool/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/pool/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Pool
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/pool/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/pool/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1 @@
+boost_test_run(test_pool_alloc DEPENDS boost_test_exec_monitor)

Added: branches/CMake-release/libs/preprocessor/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/preprocessor/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Preprocessor
+ TESTDIRS test
+)

Added: branches/CMake-release/libs/preprocessor/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/preprocessor/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,14 @@
+boost_test_compile(arithmetic)
+boost_test_compile(array)
+boost_test_compile(comparison)
+boost_test_compile(control)
+boost_test_compile(debug)
+boost_test_compile(facilities)
+boost_test_compile(iteration)
+boost_test_compile(list)
+boost_test_compile(logical)
+boost_test_compile(repetition)
+boost_test_compile(selection)
+boost_test_compile(seq)
+boost_test_compile(slot)
+boost_test_compile(tuple)

Added: branches/CMake-release/libs/program_options/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/program_options/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_library_project(
+ Program_Options
+ SRCDIRS src
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/program_options/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/program_options/src/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_add_library(boost_program_options
+ cmdline.cpp config_file.cpp options_description.cpp parsers.cpp
+ variables_map.cpp value_semantic.cpp positional_options.cpp
+ utf8_codecvt_facet.cpp convert.cpp winmain.cpp
+ SHARED_COMPILE_FLAGS "-DBOOST_PROGRAM_OPTIONS_DYN_LINK=1")

Added: branches/CMake-release/libs/program_options/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/program_options/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,19 @@
+set(PROGRAM_OPTIONS_LIBRARIES
+ boost_program_options
+ boost_test_exec_monitor)
+
+macro(program_options_test_run TESTNAME)
+ boost_test_run(${TESTNAME}
+ DEPENDS boost_program_options boost_test_exec_monitor STATIC)
+ boost_test_run("${TESTNAME}_dll"
+ "${TESTNAME}.cpp"
+ DEPENDS boost_program_options boost_test_exec_monitor-static SHARED)
+endmacro(program_options_test_run)
+
+program_options_test_run(options_description_test)
+program_options_test_run(parsers_test)
+program_options_test_run(variable_map_test)
+program_options_test_run(cmdline_test)
+program_options_test_run(positional_options_test)
+program_options_test_run(unicode_test)
+program_options_test_run(winmain)

Added: branches/CMake-release/libs/property_map/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/property_map/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Property_Map
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/property_map/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/property_map/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,2 @@
+boost_test_compile(property_map_cc)
+boost_test_run(dynamic_properties_test)

Added: branches/CMake-release/libs/ptr_container/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/ptr_container/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Pointer_Containers
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/ptr_container/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/ptr_container/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,14 @@
+boost_test_run(ptr_vector DEPENDS boost_unit_test_framework)
+boost_test_run(ptr_list DEPENDS boost_unit_test_framework)
+boost_test_run(ptr_deque DEPENDS boost_unit_test_framework)
+boost_test_run(ptr_set DEPENDS boost_unit_test_framework)
+boost_test_run(ptr_map DEPENDS boost_unit_test_framework)
+boost_test_run(ptr_array DEPENDS boost_unit_test_framework)
+boost_test_run(tree_test DEPENDS boost_unit_test_framework)
+boost_test_run(incomplete_type_test DEPENDS boost_unit_test_framework)
+boost_test_run(view_example DEPENDS boost_unit_test_framework)
+boost_test_run(iterator_test DEPENDS boost_unit_test_framework)
+boost_test_run(tut1 DEPENDS boost_unit_test_framework)
+boost_test_run(indirect_fun DEPENDS boost_unit_test_framework)
+boost_test_run(serialization DEPENDS boost_unit_test_framework boost_serialization)
+boost_test_run(no_exceptions DEPENDS boost_unit_test_framework)

Added: branches/CMake-release/libs/python/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/python/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,66 @@
+include(FindPythonInterp)
+message(STATUS " found python executable ${PYTHON_EXECUTABLE}")
+include(FindPythonLibs)
+message(STATUS " found python includes ${PYTHON_INCLUDE_PATH}")
+message(STATUS " found python libs ${PYTHON_LIBRARIES}")
+
+if (PYTHON_LIBRARIES)
+ include_directories(${PYTHON_INCLUDE_PATH})
+
+ # Determine extra libraries we need to link against to build Python
+ # extension modules.
+ if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
+ set(PYTHON_LIBRARIES ${PYTHON_LIBRARIES} "dl")
+ if(CMAKE_COMPILER_IS_GNUCXX)
+ set(PYTHON_LIBRARIES ${PYTHON_LIBRARIES} "rt")
+ endif(CMAKE_COMPILER_IS_GNUCXX)
+ elseif(CMAKE_SYSTEM_NAME MATCHES ".*BSD")
+ set(PYTHON_LIBRARIES ${PYTHON_LIBRARIES} "pthread")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "DragonFly")
+ # DragonFly is a variant of FreeBSD
+ set(PYTHON_LIBRARIES ${PYTHON_LIBRARIES} "pthread")
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "OSF")
+ set(PYTHON_LIBRARIES ${PYTHON_LIBRARIES} "pthread" "dl")
+ if(CMAKE_COMPILER_IS_GNUCXX)
+ set(PYTHON_LIBRARIES ${PYTHON_LIBRARIES} "rt")
+ endif(CMAKE_COMPILER_IS_GNUCXX)
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "QNX")
+ # No options necessary for QNX
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ # No options necessary for Mac OS X
+ elseif(CMAKE_SYSTEM_NAME STREQUAL "HP-UX")
+ set(PYTHON_LIBRARIES ${PYTHON_LIBRARIES} "rt")
+ elseif(UNIX)
+ # Assume -pthread and -ldl on all other variants
+ set(PYTHON_LIBRARIES ${PYTHON_LIBRARIES} "pthread" "dl")
+ if(CMAKE_COMPILER_IS_GNUCXX)
+ set(PYTHON_LIBRARIES ${PYTHON_LIBRARIES} "util")
+ endif(CMAKE_COMPILER_IS_GNUCXX)
+ endif(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
+
+ # Macro for building Boost.Python extension modules
+ macro(boost_python_extension MODULE_NAME)
+ parse_arguments(BPL_EXT
+ ""
+ ""
+ ${ARGN})
+
+ # Create the library target itself
+ add_library(${MODULE_NAME} MODULE ${BPL_EXT_DEFAULT_ARGS} )
+
+ # Miscellaneous target properties
+ set_target_properties(${MODULE_NAME} PROPERTIES PREFIX "")
+
+ # Link against Boost.Python library
+ target_link_libraries(${MODULE_NAME} boost_python-shared)
+
+ # Link against Python libraries
+ target_link_libraries(${MODULE_NAME} ${PYTHON_LIBRARIES})
+ endmacro(boost_python_extension)
+
+ boost_library_project(
+ Python
+ SRCDIRS src
+ TESTDIRS test
+ )
+endif (PYTHON_LIBRARIES)

Added: branches/CMake-release/libs/python/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/python/src/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,62 @@
+if (PYTHON_DEBUG_LIBRARIES AND BUILD_BOOST_PYTHON)
+ # We have detected that there might be Python debug libraries
+ # available, but check for ourselves whether this is true by trying
+ # to compile/link a program against them.
+ set(CMAKE_REQUIRED_DEFINITIONS "-DBOOST_DEBUG_PYTHON -DPy_DEBUG")
+ get_directory_property(CMAKE_REQUIRED_INCLUDES INCLUDE_DIRECTORIES)
+ set(CMAKE_REQUIRED_LIBRARIES ${PYTHON_DEBUG_LIBRARIES})
+ set(CHECK_PYDEBUG_SOURCE
+ "#include <boost/python/object.hpp>")
+ check_cxx_source_compiles(
+ "#include <boost/python/object.hpp>
+ void check(PyObject *obj) { Py_INCREF(obj); } int main() { }"
+ PYDEBUG_CAN_BUILD)
+
+ # Setup an option to enable/disable building variants with Python
+ # debugging. If we were able to link against the debug libraries,
+ # default to ON; otherwise, default to OFF.
+ option(BUILD_PYTHON_DEBUG
+ "Build an additional Boost.Python library with Python debugging enabled"
+ ${PYDEBUG_CAN_BUILD})
+endif (PYTHON_DEBUG_LIBRARIES AND BUILD_BOOST_PYTHON)
+
+# Always build the non-debug variants of the boost_python library
+set(BUILD_PYTHON_NODEBUG ON)
+
+boost_add_library(boost_python
+ numeric.cpp
+ list.cpp
+ long.cpp
+ dict.cpp
+ tuple.cpp
+ str.cpp
+ slice.cpp
+ converter/from_python.cpp
+ converter/registry.cpp
+ converter/type_id.cpp
+ object/enum.cpp
+ object/class.cpp
+ object/function.cpp
+ object/inheritance.cpp
+ object/life_support.cpp
+ object/pickle_support.cpp
+ errors.cpp
+ module.cpp
+ converter/builtin_converters.cpp
+ converter/arg_to_python_base.cpp
+ object/iterator.cpp
+ object/stl_iterator.cpp
+ object_protocol.cpp
+ object_operators.cpp
+ wrapper.cpp
+ import.cpp
+ exec.cpp
+ STATIC_COMPILE_FLAGS "-DBOOST_PYTHON_SOURCE -DBOOST_PYTHON_STATIC_LIB"
+ SHARED_COMPILE_FLAGS "-DBOOST_PYTHON_SOURCE"
+ PYTHON_NODEBUG_LINK_LIBS "${PYTHON_LIBRARIES}"
+
+ # Support for Python debugging
+ EXTRA_VARIANTS PYTHON_NODEBUG:PYTHON_DEBUG
+ PYTHON_DEBUG_COMPILE_FLAGS "-DBOOST_DEBUG_PYTHON -DPy_DEBUG"
+ PYTHON_DEBUG_LINK_LIBS "${PYTHON_DEBUG_LIBRARIES}"
+ )

Added: branches/CMake-release/libs/python/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/python/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,194 @@
+macro(bpl_test TESTNAME)
+ parse_arguments(BPL_TEST
+ "ARGS"
+ ""
+ ${ARGN})
+
+ # Determine the Python and C++ source files for this test
+ if (BPL_TEST_DEFAULT_ARGS)
+ # First argument is the Python source we will run, the rest are
+ # either extra Python sources we're dependent on or C++ files from
+ # which we will build extension modules.
+ car(BPL_TEST_PYSOURCE ${BPL_TEST_DEFAULT_ARGS})
+ cdr(BPL_TEST_DEFAULT_ARGS ${BPL_TEST_DEFAULT_ARGS})
+
+ get_filename_component(BPL_TEST_PYBASE ${BPL_TEST_PYSOURCE} NAME_WE)
+ foreach(SRC ${BPL_TEST_DEFAULT_ARGS})
+ get_filename_component(BPL_SRC_EXT ${SRC} EXT)
+ if (BPL_SRC_EXT STREQUAL ".cpp")
+ # Build a Python extension module from this source file
+ get_filename_component(BPL_SRC_NAME ${SRC} NAME_WE)
+ if(BPL_TEST_PYBASE STREQUAL "${BPL_SRC_NAME}")
+ boost_python_extension(${BPL_SRC_NAME}_ext ${SRC})
+ else(BPL_TEST_PYBASE STREQUAL "${BPL_SRC_NAME}")
+ boost_python_extension(${BPL_SRC_NAME} ${SRC})
+ endif(BPL_TEST_PYBASE STREQUAL "${BPL_SRC_NAME}")
+ endif (BPL_SRC_EXT STREQUAL ".cpp")
+ endforeach(SRC ${BPL_TEST_DEFAULT_ARGS})
+ else (BPL_TEST_DEFAULT_ARGS)
+ set(BPL_TEST_PYSOURCE "${TESTNAME}.py")
+
+ # Build a Python extension module from this source file
+ boost_python_extension(${TESTNAME}_ext "${TESTNAME}.cpp")
+ endif(BPL_TEST_DEFAULT_ARGS)
+
+ # We'll need the full patch to run the Python test
+ set(BPL_TEST_PYSOURCE ${CMAKE_CURRENT_SOURCE_DIR}/${BPL_TEST_PYSOURCE})
+
+ # Run the test itself
+ file(TO_NATIVE_PATH "${LIBRARY_OUTPUT_PATH}" PYTHONPATH)
+ if(WIN32 AND NOT UNIX)
+ string(REPLACE "\\" "\\\\" PYTHONPATH "${PYTHONPATH}")
+ endif(WIN32 AND NOT UNIX)
+ add_test("${PROJECT_NAME}::${TESTNAME}"
+ ${PYTHON_EXECUTABLE}
+ "${CMAKE_CURRENT_SOURCE_DIR}/pyrun.py"
+ "${PYTHONPATH}"
+ ${BPL_TEST_PYSOURCE} ${BPL_TEST_ARGS})
+endmacro(bpl_test)
+
+macro(py_run TESTNAME)
+ boost_test_run(${TESTNAME}
+ ${TESTNAME}.cpp
+ DEPENDS boost_python STATIC
+ LINK_LIBS ${PYTHON_LIBRARIES})
+endmacro(py_run)
+
+boost_test_run(exec
+ DEPENDS boost_python STATIC
+ ARGS "${CMAKE_CURRENT_SOURCE_DIR}/exec.py"
+ LINK_LIBS ${PYTHON_LIBRARIES})
+boost_test_run(exec-dynamic
+ exec.cpp
+ ARGS "${CMAKE_CURRENT_SOURCE_DIR}/exec.py"
+ DEPENDS boost_python SHARED
+ LINK_LIBS ${PYTHON_LIBRARIES})
+
+bpl_test(crossmod_exception
+ crossmod_exception.py crossmod_exception_a.cpp crossmod_exception_b.cpp)
+
+bpl_test(injected)
+bpl_test(properties)
+bpl_test(return_arg)
+bpl_test(staticmethod)
+bpl_test(shared_ptr)
+bpl_test(andreas_beyer)
+bpl_test(polymorphism)
+bpl_test(polymorphism2)
+
+bpl_test(wrapper_held_type)
+bpl_test(polymorphism2_auto_ptr)
+
+bpl_test(auto_ptr)
+
+bpl_test(minimal)
+bpl_test(args)
+bpl_test(raw_ctor)
+bpl_test(numpy numpy.py printer.py numeric_tests.py numarray_tests.py numpy.cpp)
+bpl_test(enum)
+bpl_test(exception_translator)
+bpl_test(pearu1 test_cltree.py cltree.cpp)
+bpl_test(try newtest.py m1.cpp m2.cpp)
+bpl_test(const_argument)
+bpl_test(keywords keywords_test.py keywords.cpp)
+
+boost_python_extension(builtin_converters_ext test_builtin_converters.cpp)
+bpl_test(builtin_converters test_builtin_converters.py builtin_converters_ext)
+
+bpl_test(test_pointer_adoption)
+bpl_test(operators)
+bpl_test(callbacks)
+bpl_test(defaults)
+
+bpl_test(object)
+bpl_test(list)
+bpl_test(long)
+bpl_test(dict)
+bpl_test(tuple)
+bpl_test(str)
+bpl_test(slice)
+
+bpl_test(virtual_functions)
+bpl_test(back_reference)
+bpl_test(implicit)
+bpl_test(data_members)
+
+bpl_test(ben_scott1)
+
+bpl_test(bienstman1)
+bpl_test(bienstman2)
+bpl_test(bienstman3)
+
+bpl_test(multi_arg_constructor)
+# TODO: A bug in the Win32 intel compilers causes compilation of one
+# of our tests to take forever when debug symbols are
+# enabled. This rule turns them off when added to the requirements
+# section
+# <toolset>intel-win:<debug-symbols>off
+
+bpl_test(iterator iterator.py iterator.cpp input_iterator.cpp)
+
+bpl_test(stl_iterator stl_iterator.py stl_iterator.cpp)
+
+bpl_test(extract)
+
+bpl_test (crossmod_opaque
+ crossmod_opaque.py crossmod_opaque_a.cpp crossmod_opaque_b.cpp)
+
+bpl_test(opaque)
+bpl_test(voidptr)
+
+bpl_test(pickle1)
+bpl_test(pickle2)
+bpl_test(pickle3)
+bpl_test(pickle4)
+
+bpl_test(nested)
+
+bpl_test(docstring)
+
+bpl_test(vector_indexing_suite)
+
+bpl_test(pointer_vector)
+# TODO: Turn off this test on HP CXX, as the test hangs when executing.
+# Whenever the cause for the failure of the polymorphism test is found
+# and fixed, this should be retested.
+# <toolset>hp_cxx:<build>no
+
+boost_python_extension(map_indexing_suite_ext
+ map_indexing_suite.cpp int_map_indexing_suite.cpp)
+
+bpl_test(map_indexing_suite
+ map_indexing_suite.py map_indexing_suite_ext)
+
+
+# --- unit tests of library components ---
+
+boost_test_compile(indirect_traits_test)
+boost_test_run(destroy_test)
+py_run(pointer_type_id_test)
+py_run(bases)
+boost_test_run(if_else)
+py_run(pointee)
+boost_test_run(result)
+
+boost_test_compile(string_literal)
+boost_test_compile(borrowed)
+boost_test_compile(object_manager)
+boost_test_compile(copy_ctor_mutates_rhs)
+
+py_run(upcast)
+
+boost_test_compile(select_holder)
+
+boost_test_run(select_from_python_test
+ select_from_python_test.cpp ../src/converter/type_id.cpp
+ COMPILE_FLAGS "-DBOOST_PYTHON_STATIC_LIB"
+ LINK_LIBS ${PYTHON_LIBRARIES})
+
+boost_test_compile(select_arg_to_python_test)
+
+boost_test_compile_fail(raw_pyobject_fail1)
+boost_test_compile_fail(raw_pyobject_fail2)
+boost_test_compile_fail(as_to_python_function)
+boost_test_compile_fail(object_fail1)

Added: branches/CMake-release/libs/random/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/random/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Random
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/random/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/random/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,7 @@
+boost_test_run(random_test ../random_test.cpp)
+boost_test_run(random_demo ../random_demo.cpp)
+# TODO: These tests were commented out in the Jamfile.v2:
+# [ run libs/random/nondet_random_speed.cpp ]
+# [ run libs/random/random_device.cpp ]
+# [ run libs/random/random_speed.cpp ]
+# [ run libs/random/statistic_tests.cpp ]

Added: branches/CMake-release/libs/range/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/range/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Range
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/range/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/range/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,11 @@
+boost_test_run(array DEPENDS boost_unit_test_framework)
+boost_test_run(iterator_pair DEPENDS boost_unit_test_framework)
+boost_test_run(std_container DEPENDS boost_unit_test_framework)
+boost_test_run(string DEPENDS boost_unit_test_framework)
+boost_test_run(iterator_range DEPENDS boost_unit_test_framework)
+boost_test_run(sub_range DEPENDS boost_unit_test_framework)
+boost_test_run(partial_workaround DEPENDS boost_unit_test_framework)
+boost_test_run(algorithm_example DEPENDS boost_unit_test_framework)
+boost_test_run(reversible_range DEPENDS boost_unit_test_framework)
+boost_test_run(const_ranges DEPENDS boost_unit_test_framework)
+boost_test_run(extension_mechanism DEPENDS boost_unit_test_framework)

Added: branches/CMake-release/libs/rational/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/rational/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Rational
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/rational/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/rational/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_test_run(rational_example ../rational_example.cpp)
+boost_test_run(rational_test
+ ../rational_test.cpp
+ DEPENDS boost_unit_test_framework
+ )

Added: branches/CMake-release/libs/regex/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/regex/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_library_project(
+ Regex
+ SRCDIRS src
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/regex/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/regex/src/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,34 @@
+# Look for the ICU library. If we find it, we'll compile in support for ICU
+include(FindICU)
+set(BOOST_REGEX_LIBRARIES)
+if (ICU_FOUND AND ICU_I18N_FOUND)
+ add_definitions(-DBOOST_HAS_ICU=1)
+ include_directories(${ICU_INCLUDE_DIRS})
+ set(BOOST_REGEX_LIBRARIES ${ICU_LIBRARIES} ${ICU_I18N_LIBRARIES})
+endif (ICU_FOUND AND ICU_I18N_FOUND)
+
+boost_add_library(boost_regex
+ c_regex_traits.cpp
+ cpp_regex_traits.cpp
+ cregex.cpp
+ fileiter.cpp
+ icu.cpp
+ instances.cpp
+ posix_api.cpp
+ regex.cpp
+ regex_debug.cpp
+ regex_raw_buffer.cpp
+ regex_traits_defaults.cpp
+ static_mutex.cpp
+ w32_regex_traits.cpp
+ wc_regex_traits.cpp
+ wide_posix_api.cpp
+ winstances.cpp
+ usinstances.cpp
+ LINK_LIBS ${BOOST_REGEX_LIBRARIES}
+ SHARED_COMPILE_FLAGS -DBOOST_REGEX_DYN_LINK=1)
+
+
+
+
+

Added: branches/CMake-release/libs/regex/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/regex/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,88 @@
+# TODO: Default to multi-threaded?
+macro(regex_test TESTNAME)
+ parse_arguments(REGEX_TEST "" "" ${ARGN})
+
+ if (REGEX_TEST_DEFAULT_ARGS)
+ set(REGEX_TEST_SOURCES ${REGEX_TEST_DEFAULT_ARGS})
+ else (REGEX_TEST_DEFAULT_ARGS)
+ set(REGEX_TEST_SOURCES "${TESTNAME}.cpp")
+ endif (REGEX_TEST_DEFAULT_ARGS)
+
+ boost_test_run(${TESTNAME} ${REGEX_TEST_SOURCES}
+ COMPILE_FLAGS "-DBOOST_REGEX_DYN_LINK=1"
+ DEPENDS boost_regex SHARED)
+endmacro(regex_test)
+
+set(R_SOURCES
+ regress/basic_tests.cpp
+ regress/main.cpp
+ regress/test_alt.cpp
+ regress/test_anchors.cpp
+ regress/test_asserts.cpp
+ regress/test_backrefs.cpp
+ regress/test_deprecated.cpp
+ regress/test_emacs.cpp
+ regress/test_escapes.cpp
+ regress/test_grep.cpp
+ regress/test_locale.cpp
+ regress/test_mfc.cpp
+ regress/test_non_greedy_repeats.cpp
+ regress/test_perl_ex.cpp
+ regress/test_replace.cpp
+ regress/test_sets.cpp
+ regress/test_simple_repeats.cpp
+ regress/test_tricky_cases.cpp
+ regress/test_icu.cpp
+ regress/test_unicode.cpp
+ regress/test_overloads.cpp
+ regress/test_operators.cpp
+ )
+
+boost_test_run(regex_regress ${R_SOURCES} DEPENDS boost_regex STATIC)
+boost_test_run(regex_regress_dll ${R_SOURCES}
+ COMPILE_FLAGS "-DBOOST_REGEX_DYN_LINK=1"
+ DEPENDS boost_regex SHARED)
+boost_test_run(regex_regress_threaded ${R_SOURCES}
+ COMPILE_FLAGS "-DTEST_THREADS -DBOOST_REGEX_DYN_LINK=1"
+ MULTI_THREADED SHARED
+ DEPENDS boost_regex boost_thread)
+
+regex_test(posix_api_check c_compiler_checks/posix_api_check.c)
+boost_test_compile(wide_posix_api_check_c c_compiler_checks/wide_posix_api_check.c)
+regex_test(posix_api_check_cpp c_compiler_checks/wide_posix_api_check.cpp)
+regex_test(bad_expression_test pathology/bad_expression_test.cpp)
+regex_test(recursion_test pathology/recursion_test.cpp)
+regex_test(unicode_iterator_test unicode/unicode_iterator_test.cpp)
+
+boost_test_run(static_mutex_test static_mutex/static_mutex_test.cpp
+ COMPILE_FLAGS "-DBOOST_REGEX_DYN_LINK=1"
+ MULTI_THREADED SHARED
+ DEPENDS boost_regex boost_thread)
+
+regex_test(object_cache_test object_cache/object_cache_test.cpp)
+boost_test_run(regex_config_info config_info/regex_config_info.cpp
+ DEPENDS boost_regex STATIC)
+
+boost_test_run(regex_dll_config_info config_info/regex_config_info.cpp
+ COMPILE_FLAGS "-DBOOST_REGEX_DYN_LINK=1"
+ DEPENDS boost_regex SHARED)
+
+regex_test(test_collate_info collate_info/collate_info.cpp)
+
+boost_test_compile(concept_check concepts/concept_check.cpp)
+boost_test_compile(ice_concept_check concepts/icu_concept_check.cpp)
+
+# TODO: Deal with this
+ # [ run
+ # sources
+# captures/captures_test.cpp
+ # captures//boost_regex_extra
+ #: # additional args
+ #: # test-files
+ #: # requirements
+ # <threading>multi
+ # <define>BOOST_REGEX_MATCH_EXTRA=1
+ # <define>BOOST_REGEX_NO_LIB=1
+# : # test name
+ # captures_test
+# ]

Added: branches/CMake-release/libs/serialization/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/serialization/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_library_project(
+ Serialization
+ SRCDIRS src
+ TESTDIRS test
+)

Added: branches/CMake-release/libs/serialization/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/serialization/src/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,56 @@
+
+set(SOURCES
+ basic_archive.cpp
+ basic_iarchive.cpp
+ basic_oarchive.cpp
+ basic_iserializer.cpp
+ basic_oserializer.cpp
+ basic_pointer_iserializer.cpp
+ basic_pointer_oserializer.cpp
+ basic_serializer_map.cpp
+ basic_text_iprimitive.cpp
+ basic_text_oprimitive.cpp
+ basic_xml_archive.cpp
+ binary_iarchive.cpp
+ binary_oarchive.cpp
+ extended_type_info.cpp
+ extended_type_info_no_rtti.cpp
+ extended_type_info_typeid.cpp
+ polymorphic_iarchive.cpp
+ polymorphic_oarchive.cpp
+ stl_port.cpp
+ text_iarchive.cpp
+ text_oarchive.cpp
+ void_cast.cpp
+ xml_grammar.cpp
+ xml_iarchive.cpp
+ xml_oarchive.cpp
+ )
+
+set(WSOURCES
+ codecvt_null.cpp
+ utf8_codecvt_facet.cpp
+ basic_text_wiprimitive.cpp
+ basic_text_woprimitive.cpp
+ binary_wiarchive.cpp
+ binary_woarchive.cpp
+ text_wiarchive.cpp
+ text_woarchive.cpp
+ xml_wgrammar.cpp
+ xml_wiarchive.cpp
+ xml_woarchive.cpp
+ )
+
+boost_add_library(boost_serialization
+ ${SOURCES}
+ SHARED_COMPILE_FLAGS -DBOOST_SERIALIZATION_DYN_LINK=1
+)
+
+option(BUILD_BOOST_WSERIALIZATION "Build wide-char boost serialization libs" ON)
+if (BUILD_BOOST_WSERIALIZATION)
+ boost_add_library(boost_wserialization
+ ${WSOURCES}
+ SHARED_COMPILE_FLAGS "-DBOOST_SERIALIZATION_DYN_LINK=1 -DBOOST_WSERIALIZATION_DYN_LINK=1"
+ DEPENDS boost_serialization
+ )
+endif(BUILD_BOOST_WSERIALIZATION)

Added: branches/CMake-release/libs/serialization/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/serialization/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,144 @@
+# The set of archives that we will use for testing the Serialization
+# library
+set(BOOST_ARCHIVE_LIST
+ "text_archive"
+ "text_warchive"
+ "binary_archive"
+ "xml_archive"
+ "xml_warchive"
+ )
+
+# The serialization_test macro declares a set of tests of the
+# serialization library. For each invocation of serialization_test,
+# this macro will build separate static and dynamic tests for each
+# archive type listed in BOOST_ARCHIVE_LIST.
+macro(serialization_test testname)
+ parse_arguments(BSL_TEST "" "NO_LIBS;POLYMORPHIC" ${ARGN})
+
+ if(NOT BSL_TEST_DEFAULT_ARGS)
+ set(BSL_TEST_SOURCES "${testname}.cpp")
+ else(NOT BSL_TEST_DEFAULT_ARGS)
+ set(BSL_TEST_SOURCES "${BSL_TEST_DEFAULT_ARGS}")
+ endif(NOT BSL_TEST_DEFAULT_ARGS)
+
+ if (BSL_TEST_POLYMORPHIC)
+ set(BSL_TEST_POLY "polymorphic_")
+ elseif(BSL_TEST_POLYMORPHIC)
+ set(BSL_TEST_POLY "")
+ endif(BSL_TEST_POLYMORPHIC)
+
+ foreach(ARCHIVE ${BOOST_ARCHIVE_LIST})
+ set(BSL_TEST_LIBRARIES)
+ if(NOT BSL_NO_LIBS)
+ set(BSL_TEST_LIBRARIES "boost_serialization")
+ if(ARCHIVE MATCHES ".*warchive")
+ set(BSL_TEST_LIBRARIES "boost_wserialization" ${BSL_TEST_LIBRARIES})
+ endif(ARCHIVE MATCHES ".*warchive")
+ endif(NOT BSL_NO_LIBS)
+
+ # Tests linking against the static serialization library
+ boost_test_run("${testname}_${ARCHIVE}"
+ ${BSL_TEST_SOURCES}
+ STATIC
+ DEPENDS boost_test_exec_monitor-static ${BSL_TEST_LIBRARIES}
+ COMPILE_FLAGS "-DBOOST_ARCHIVE_TEST=${BSL_TEST_POLY}${ARCHIVE}.hpp -DBOOST_LIB_DIAGNOSTIC=1")
+
+ # Tests linking against the shared serialization library
+ boost_test_run("${testname}_${ARCHIVE}_dll"
+ ${BSL_TEST_SOURCES}
+ SHARED
+ DEPENDS boost_test_exec_monitor-static ${BSL_TEST_LIBRARIES}
+ COMPILE_FLAGS "-DBOOST_ARCHIVE_TEST=${BSL_TEST_POLY}${ARCHIVE}.hpp -DBOOST_LIB_DIAGNOSTIC=1 -DBOOST_ALL_DYN_LINK=1")
+ endforeach(ARCHIVE ${BOOST_ARCHIVE_LIST})
+endmacro(serialization_test)
+
+serialization_test(test_array)
+serialization_test(test_binary)
+serialization_test(test_contained_class)
+serialization_test(test_cyclic_ptrs)
+serialization_test(test_delete_pointer)
+serialization_test(test_deque)
+serialization_test(test_derived)
+serialization_test(test_derived_class)
+serialization_test(test_derived_class_ptr)
+serialization_test(test_diamond)
+serialization_test(test_exported)
+serialization_test(test_class_info_save)
+serialization_test(test_class_info_load)
+serialization_test(test_object)
+serialization_test(test_primitive)
+serialization_test(test_list)
+serialization_test(test_list_ptrs)
+serialization_test(test_map)
+serialization_test(test_mi)
+serialization_test(test_multiple_ptrs)
+serialization_test(test_no_rtti)
+serialization_test(test_non_intrusive)
+serialization_test(test_non_default_ctor)
+serialization_test(test_non_default_ctor2)
+serialization_test(test_null_ptr)
+serialization_test(test_nvp)
+serialization_test(test_recursion)
+serialization_test(test_registered)
+serialization_test(test_set)
+serialization_test(test_simple_class)
+serialization_test(test_simple_class_ptr)
+serialization_test(test_split)
+serialization_test(test_tracking)
+serialization_test(test_unregistered)
+serialization_test(test_variant)
+serialization_test(test_vector)
+serialization_test(test_optional)
+serialization_test(test_shared_ptr)
+serialization_test(test_shared_ptr_132)
+serialization_test(test_polymorphic POLYMORPHIC
+ test_polymorphic.cpp test_polymorphic_A.cpp)
+serialization_test(test_iterators NO_LIBS)
+serialization_test(test_iterators_base64 NO_LIBS)
+serialization_test(test_inclusion NO_LIBS)
+serialization_test(test_private_ctor)
+serialization_test(test_reset_object_address)
+serialization_test(test_smart_cast NO_LIBS)
+serialization_test(test_static_warning NO_LIBS)
+serialization_test(test_utf8_codecvt
+ test_utf8_codecvt.cpp ../src/utf8_codecvt_facet.cpp NO_LIBS)
+serialization_test(test_void_cast)
+serialization_test(test_mult_archive_types)
+serialization_test(test_codecvt_null
+ test_codecvt_null.cpp ../src/codecvt_null.cpp NO_LIBS)
+
+# demos
+serialization_test(test_demo)
+serialization_test(test_demo_auto_ptr)
+serialization_test(test_demo_exception)
+serialization_test(test_demo_fast_archive)
+serialization_test(test_demo_pimpl
+ ../example/demo_pimpl.cpp ../example/demo_pimpl_A.cpp)
+serialization_test(test_demo_polymorphic
+ ../example/demo_polymorphic.cpp ../example/demo_polymorphic_A.cpp)
+serialization_test(test_demo_portable_archive)
+serialization_test(test_demo_shared_ptr)
+serialization_test(test_demo_xml)
+serialization_test(test_demo_xml_save)
+serialization_test(test_demo_xml_load)
+
+# should fail compilation
+boost_test_compile_fail(test_not_serializable) # FIXME std:locale-support ]
+boost_test_compile_fail(test_traits_fail) # FIXME std:locale-support ]
+boost_test_compile_fail(test_const_save_fail1) # FIXME std:locale-support ]
+boost_test_compile_fail(test_const_save_fail2) # FIXME std:locale-support ]
+boost_test_compile_fail(test_const_save_fail3) # FIXME std:locale-support ]
+# note - library unable to detect there errors for now
+#boost_test_compile_fail(test_const_save_fail1_nvp)
+#boost_test_compile_fail(test_const_save_fail2_nvp)
+#boost_test_compile_fail(test_const_save_fail3_nvp)
+boost_test_compile_fail(test_const_load_fail1) # FIXME std:locale-support ]
+boost_test_compile_fail(test_const_load_fail2) # FIXME std:locale-support ]
+boost_test_compile_fail(test_const_load_fail3) # FIXME std:locale-support ]
+boost_test_compile_fail(test_const_load_fail1_nvp) # FIXME std:locale-support ]
+boost_test_compile_fail(test_const_load_fail2_nvp) # FIXME std:locale-support ]
+boost_test_compile_fail(test_const_load_fail3_nvp) # FIXME std:locale-support ]
+
+# should compile
+boost_test_compile(test_traits_pass) # FIXME std:locale-support ]
+boost_test_compile(test_const_pass) # FIXME std:locale-support ]

Added: branches/CMake-release/libs/signals/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/signals/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_library_project(
+ Signals
+ SRCDIRS src
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/signals/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/signals/src/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,7 @@
+add_definitions(-DBOOST_SIGNALS_NO_LIB=1)
+
+boost_add_library(
+ boost_signals
+ trackable.cpp connection.cpp named_slot_map.cpp signal_base.cpp slot.cpp
+ SHARED_COMPILE_FLAGS "-DBOOST_SIGNALS_DYN_LINK=1"
+ )

Added: branches/CMake-release/libs/signals/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/signals/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,6 @@
+boost_test_run(dead_slot_test DEPENDS boost_signals)
+boost_test_run(deletion_test DEPENDS boost_signals)
+boost_test_run(ordering_test DEPENDS boost_signals)
+boost_test_run(signal_n_test DEPENDS boost_signals)
+boost_test_run(signal_test DEPENDS boost_signals)
+boost_test_run(trackable_test DEPENDS boost_signals)

Added: branches/CMake-release/libs/smart_ptr/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/smart_ptr/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_library_project(
+ Smart_pointer
+ TESTDIRS test
+ )
+

Added: branches/CMake-release/libs/smart_ptr/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/smart_ptr/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,15 @@
+boost_test_run(smart_ptr_test)
+boost_test_run(shared_ptr_basic_test)
+boost_test_run(shared_ptr_test)
+boost_test_run(weak_ptr_test)
+boost_test_run(shared_from_this_test)
+boost_test_run(get_deleter_test)
+boost_test_run(intrusive_ptr_test)
+boost_test_run(atomic_count_test)
+boost_test_run(lw_mutex_test)
+boost_test_compile_fail(shared_ptr_assign_fail)
+boost_test_compile_fail(shared_ptr_delete_fail)
+boost_test_run(shared_ptr_alloc2_test)
+boost_test_run(pointer_cast_test)
+boost_test_compile(pointer_to_other_test)
+boost_test_run(auto_ptr_rv_test)

Added: branches/CMake-release/libs/spirit/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/spirit/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Spirit
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/spirit/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/spirit/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,123 @@
+macro(spirit_run TESTNAME)
+ parse_arguments(SPIRIT_RUN "COMPILE_FLAGS" "" ${ARGN})
+
+ if (SPIRIT_RUN_DEFAULT_ARGS)
+ set(SPIRIT_RUN_SOURCES ${SPIRIT_RUN_DEFAULT_ARGS})
+ else (SPIRIT_RUN_DEFAULT_ARGS)
+ set(SPIRIT_RUN_SOURCES "${TESTNAME}.cpp")
+ endif (SPIRIT_RUN_DEFAULT_ARGS)
+
+ boost_test_run(${TESTNAME}
+ ${SPIRIT_RUN_SOURCES}
+ COMPILE_FLAGS "${SPIRIT_RUN_COMPILE_FLAGS}"
+ )
+ boost_test_run(${TESTNAME}_debug
+ ${SPIRIT_RUN_SOURCES}
+ COMPILE_FLAGS "-DBOOST_SPIRIT_DEBUG=1 ${SPIRIT_RUN_COMPILE_FLAGS}"
+ )
+endmacro(spirit_run)
+
+if(MSVC)
+ # For Visual C++, turn on optimizations
+ set(OPT_FLAGS "${CMAKE_CXX_FLAGS_RELEASE}")
+else(MSVC)
+ set(OPT_FLAGS "")
+endif(MSVC)
+
+# spirit.core.kernel
+spirit_run(match_tests)
+
+# spirit.core.scanner
+spirit_run(scanner_tests)
+spirit_run(scanner_value_type_tests)
+
+# spirit.core.primitive
+spirit_run(primitives_tests)
+spirit_run(char_strings_test)
+boost_test_compile_fail(char_strings_test_fail)
+spirit_run(numerics_tests COMPILE_FLAGS "${OPT_FLAGS}")
+
+# spirit.core.composite
+spirit_run(epsilon_tests)
+spirit_run(negated_eps_p_test)
+spirit_run(operators_tests)
+spirit_run(directives_tests)
+spirit_run(shortest_alternative_tests)
+
+# spirit.core.non_terminal
+spirit_run(rule_tests)
+spirit_run(owi_st_tests)
+spirit_run(grammar_tests COMPILE_FLAGS "${OPT_FLAGS}")
+spirit_run(grammar_multi_instance_tst COMPILE_FLAGS "${OPT_FLAGS}")
+spirit_run(subrule_tests)
+# TODO: [ run owi_mt_tests.cpp : : : $(multi-threading) ]
+# TODO: [ run grammar_mt_tests.cpp : : : $(multi-threading) ]
+spirit_run(parser_context_test)
+
+# spirit.meta
+spirit_run(fundamental_tests)
+spirit_run(parser_traits_tests)
+spirit_run(traverse_tests)
+
+# spirit.attribute
+spirit_run(closure_tests COMPILE_FLAGS "${OPT_FLAGS}")
+# [ run bug_000008.cpp : : : $(multi-threading) ]
+spirit_run(parametric_tests)
+
+# spirit.error_handling
+spirit_run(exception_tests)
+
+# spirit.tree
+spirit_run(ast_calc_tests)
+spirit_run(group_match_bug)
+spirit_run(repeat_ast_tests)
+boost_test_compile(mix_and_match_trees)
+
+# temporarily removed from the test suite. tree_tests are not finished, yet.
+# spirit_run(tree_tests)
+
+# spirit.dynamic
+boost_test_compile(if_p_as_parser_tests)
+boost_test_compile(while_p_as_parser_tests)
+boost_test_compile(for_p_as_parser_tests)
+spirit_run(if_tests)
+spirit_run(if_p_int_as_condition_test)
+spirit_run(for_tests)
+spirit_run(while_tests)
+spirit_run(lazy_tests)
+spirit_run(switch_tests_eps_default)
+spirit_run(switch_tests_general_def)
+spirit_run(switch_tests_wo_default)
+spirit_run(switch_tests_single)
+spirit_run(switch_problem)
+spirit_run(select_p_with_rule)
+
+# spirit.utility.parsers
+spirit_run(chset_tests)
+spirit_run(confix_tests)
+spirit_run(loops_tests)
+spirit_run(symbols_tests)
+spirit_run(symbols_add_null)
+spirit_run(symbols_find_null)
+spirit_run(escape_char_parser_tests COMPILE_FLAGS "${OPT_FLAGS}")
+spirit_run(distinct_tests)
+spirit_run(grammar_def_test)
+
+# spirit.utility.support
+# This test doesn't actually use multiple threads
+# spirit_run(scoped_lock_tests : : : $(multi-threading) ]
+
+# spirit.iterator
+spirit_run(fixed_size_queue_tests)
+boost_test_compile_fail(fixed_size_queue_fail_tests)
+spirit_run(file_iterator_tests)
+spirit_run(multi_pass_tests COMPILE_FLAGS "${OPT_FLAGS}")
+spirit_run(sf_bug_720917 COMPILE_FLAGS "${OPT_FLAGS}")
+spirit_run(position_iterator_tests COMPILE_FLAGS "${OPT_FLAGS}")
+boost_test_compile(multi_pass_compile_tests)
+
+# spirit.small_bug_fixes
+spirit_run(bug_fixes)
+
+add_subdirectory(actor)
+add_subdirectory(typeof_support)

Added: branches/CMake-release/libs/spirit/test/actor/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/spirit/test/actor/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,14 @@
+# spirit.utility.actors
+spirit_run(action_tests
+ action_tests.cpp
+ assign_test.cpp
+ assign_key_test.cpp
+ clear_test.cpp
+ decrement_test.cpp
+ erase_at_test.cpp
+ increment_test.cpp
+ insert_key_test.cpp
+ insert_at_test.cpp
+ push_back_test.cpp
+ push_front_test.cpp
+ swap_test.cpp)

Added: branches/CMake-release/libs/spirit/test/typeof_support/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/spirit/test/typeof_support/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,12 @@
+# spirit.typeof-support
+boost_test_compile(typeof_actor)
+boost_test_compile(typeof_attribute)
+boost_test_compile(typeof_core)
+boost_test_compile(typeof_debug)
+boost_test_compile(typeof_dynamic)
+boost_test_compile(typeof_error_handling)
+boost_test_compile(typeof_iterator)
+boost_test_compile(typeof_symbols)
+boost_test_compile(typeof_tree)
+boost_test_compile(typeof_utility)
+

Added: branches/CMake-release/libs/statechart/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/statechart/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Statechart
+ TESTDIRS test example
+ )

Added: branches/CMake-release/libs/statechart/example/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/statechart/example/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,25 @@
+macro(statechart_example TESTNAME)
+ set(SOURCES)
+ foreach(ARG ${ARGN})
+ set(SOURCES ${SOURCES} "${TESTNAME}/${ARG}.cpp")
+ endforeach(ARG ${ARGN})
+
+ if (NOT)
+ set(SOURCES "${TESTNAME}/${TESTNAME}.cpp")
+ endif (NOT)
+
+ boost_test_link("${TESTNAME}Example"
+ ${SOURCES}
+ COMPILE_FLAGS "-DBOOST_DISABLE_THREADS"
+ )
+endmacro(statechart_example)
+
+statechart_example(BitMachine)
+#statechart_example(Camera
+# : Camera : Camera Configuring Main Shooting)
+#statechart_example(Handcrafted : Handcrafted : Handcrafted)
+#statechart_example(Keyboard : Keyboard : Keyboard :)
+#statechart_example(Performance : Performance : Performance)
+#statechart_example(PingPong : PingPong : PingPong)
+#statechart_example(StopWatch : StopWatch : StopWatch)
+#statechart_example(StopWatch2 : StopWatch : StopWatch2) ;

Added: branches/CMake-release/libs/statechart/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/statechart/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,81 @@
+macro(statechart_compile_fail TESTNAME)
+ boost_test_compile_fail("${TESTNAME}Normal"
+ ${TESTNAME}.cpp
+ )
+ boost_test_compile_fail("${TESTNAME}Native"
+ ${TESTNAME}.cpp
+ COMPILE_FLAGS "-DBOOST_STATECHART_USE_NATIVE_RTTI"
+ )
+ boost_test_compile_fail("${TESTNAME}Relaxed"
+ ${TESTNAME}.cpp
+ COMPILE_FLAGS "-DBOOST_STATECHART_RELAX_TRANSITION_CONTEXT"
+ )
+ boost_test_compile_fail("${TESTNAME}Both"
+ ${TESTNAME}.cpp
+ COMPILE_FLAGS "-DBOOST_STATECHART_USE_NATIVE_RTTI -DBOOST_STATECHART_RELAX_TRANSITION_CONTEXT"
+ )
+endmacro(statechart_compile_fail)
+
+macro(statechart_run TESTNAME)
+ boost_test_run("${TESTNAME}Normal"
+ ${TESTNAME}.cpp
+ COMPILE_FLAGS "-DBOOST_DISABLE_THREADS"
+ DEPENDS boost_test_exec_monitor
+ )
+ boost_test_run("${TESTNAME}Native"
+ ${TESTNAME}.cpp
+ COMPILE_FLAGS "-DBOOST_DISABLE_THREADS -DBOOST_STATECHART_USE_NATIVE_RTTI"
+ DEPENDS boost_test_exec_monitor
+ )
+ boost_test_run("${TESTNAME}Relaxed"
+ ${TESTNAME}.cpp
+ COMPILE_FLAGS "-DBOOST_DISABLE_THREADS -DBOOST_STATECHART_RELAX_TRANSITION_CONTEXT"
+ DEPENDS boost_test_exec_monitor
+ )
+ boost_test_run("${TESTNAME}Both"
+ ${TESTNAME}.cpp
+ COMPILE_FLAGS "-DBOOST_DISABLE_THREADS -DBOOST_STATECHART_USE_NATIVE_RTTI -DBOOST_STATECHART_RELAX_TRANSITION_CONTEXT"
+ DEPENDS boost_test_exec_monitor
+ )
+endmacro(statechart_run)
+
+
+statechart_compile_fail(InvalidChartTest1)
+statechart_compile_fail(InvalidChartTest2)
+statechart_compile_fail(InvalidChartTest3)
+statechart_run(TransitionTest)
+statechart_compile_fail(InvalidTransitionTest1)
+statechart_compile_fail(InvalidTransitionTest2)
+statechart_run(InStateReactionTest)
+statechart_run(TerminationTest)
+statechart_run(DeferralTest)
+statechart_run(CustomReactionTest)
+statechart_compile_fail(InvalidResultAssignTest)
+statechart_compile_fail(InvalidResultDefCtorTest)
+statechart_run(InvalidResultCopyTest)
+statechart_run(UnconsumedResultTest)
+statechart_run(HistoryTest)
+statechart_compile_fail(InconsistentHistoryTest1)
+statechart_compile_fail(InconsistentHistoryTest2)
+statechart_compile_fail(InconsistentHistoryTest3)
+statechart_compile_fail(InconsistentHistoryTest4)
+statechart_compile_fail(InconsistentHistoryTest5)
+statechart_compile_fail(InconsistentHistoryTest6)
+statechart_compile_fail(InconsistentHistoryTest7)
+statechart_compile_fail(InconsistentHistoryTest8)
+statechart_compile_fail(UnsuppDeepHistoryTest)
+statechart_run(StateCastTest)
+statechart_run(TypeInfoTest)
+statechart_run(StateIterationTest)
+statechart_run(FifoSchedulerTest)
+# TODO: We need to create some libraries (just for testing!?), then link
+# and run tests against them. Ick.
+#statechart-st-lib-run LibTestNormal
+# : TuTestMain : TuTest : <link>static $(normal))
+#statechart-st-lib-run LibTestNative
+# : TuTestMain : TuTest : <link>static $(native))
+#statechart-st-lib-run DllTestNormal
+# : TuTestMain : TuTest : <link>shared $(normal))
+#statechart-st-lib-run DllTestNative
+# : TuTestMain : TuTest : <link>shared $(native))
+

Added: branches/CMake-release/libs/static_assert/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/static_assert/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Static_assert
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/static_assert/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/static_assert/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,13 @@
+boost_test_run(static_assert_test ../static_assert_test.cpp)
+boost_test_run(static_assert_example_2 ../static_assert_example_2.cpp)
+boost_test_run(static_assert_example_3 ../static_assert_example_3.cpp)
+boost_test_compile_fail(static_assert_test_fail_1 ../static_assert_test_fail_1.cpp)
+boost_test_compile_fail(static_assert_test_fail_2 ../static_assert_test_fail_2.cpp)
+boost_test_compile_fail(static_assert_test_fail_3 ../static_assert_test_fail_3.cpp)
+boost_test_compile_fail(static_assert_test_fail_4 ../static_assert_test_fail_4.cpp)
+boost_test_compile_fail(static_assert_test_fail_5 ../static_assert_test_fail_5.cpp)
+boost_test_compile_fail(static_assert_test_fail_6 ../static_assert_test_fail_6.cpp)
+boost_test_compile_fail(static_assert_test_fail_7 ../static_assert_test_fail_7.cpp)
+boost_test_compile_fail(static_assert_test_fail_8 ../static_assert_test_fail_8.cpp)
+boost_test_compile_fail(static_assert_test_fail_9 ../static_assert_test_fail_9.cpp)
+boost_test_compile_fail(static_assert_test_fail_10 ../static_assert_test_fail_10.cpp)

Added: branches/CMake-release/libs/system/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/system/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ System
+ SRCDIRS src
+ )
\ No newline at end of file

Added: branches/CMake-release/libs/system/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/system/src/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,7 @@
+boost_add_library(
+ boost_system
+ error_code.cpp
+ SHARED_COMPILE_FLAGS "-DBOOST_SYSTEM_DYN_LINK=1"
+ STATIC_COMPILE_FLAGS "-DBOOST_SYSTEM_STATIC_LINK=1"
+ )
+

Added: branches/CMake-release/libs/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_library_project(
+ Test
+ SRCDIRS src
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/test/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/test/src/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,64 @@
+# Test library configuration
+add_definitions(-DBOOST_TEST_NO_AUTO_LINK=1)
+
+# Compiler-specific configuration
+set(BOOST_SHARED_COMPILE_FLAGS "")
+if(MSVC)
+ add_definitions(/EHac)
+ set(BOOST_SHARED_COMPILE_FLAGS "${BOOST_SHARED_COMPILE_FLAGS} -wd4275")
+endif(MSVC)
+
+if (BORLAND)
+ add_definitions(-w-8080)
+endif(BORLAND)
+
+boost_add_library(boost_prg_exec_monitor
+ execution_monitor.cpp cpp_main.cpp debug.cpp
+ STATIC_TAG
+ SHARED_COMPILE_FLAGS -DBOOST_TEST_DYN_LINK=1 ${BOOST_SHARED_COMPILE_FLAGS})
+
+boost_add_library(boost_test_exec_monitor
+ NO_SHARED
+ compiler_log_formatter.cpp
+ debug.cpp
+ execution_monitor.cpp
+ framework.cpp
+ plain_report_formatter.cpp
+ progress_monitor.cpp
+ results_collector.cpp
+ results_reporter.cpp
+ test_main.cpp
+ test_tools.cpp
+ unit_test_log.cpp
+ unit_test_main.cpp
+ unit_test_monitor.cpp
+ unit_test_parameters.cpp
+ unit_test_suite.cpp
+ xml_log_formatter.cpp
+ xml_report_formatter.cpp
+ )
+
+boost_add_library(boost_unit_test_framework
+ compiler_log_formatter.cpp
+ debug.cpp
+ exception_safety.cpp
+ execution_monitor.cpp
+ framework.cpp
+ interaction_based.cpp
+ logged_expectations.cpp
+ plain_report_formatter.cpp
+ progress_monitor.cpp
+ results_collector.cpp
+ results_reporter.cpp
+ test_tools.cpp
+ unit_test_log.cpp
+ unit_test_main.cpp
+ unit_test_monitor.cpp
+ unit_test_parameters.cpp
+ unit_test_suite.cpp
+ xml_log_formatter.cpp
+ xml_report_formatter.cpp
+ STATIC_TAG
+ SHARED_COMPILE_FLAGS -DBOOST_TEST_DYN_LINK=1 ${BOOST_SHARED_COMPILE_FLAGS}
+ )
+

Added: branches/CMake-release/libs/test/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/test/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,43 @@
+add_definitions(-DBOOST_TEST_NO_AUTO_LINK=1)
+# shared needs:
+add_definitions(-DBOOST_TEST_DYN_LINK=1)
+
+if(BORLAND)
+ add_definitions(-w-8080)
+endif(BORLAND)
+
+# Basic tests
+boost_test_run(class_properties_test DEPENDS boost_unit_test_framework)
+boost_test_run(basic_cstring_test DEPENDS boost_unit_test_framework)
+
+# Program execution monitor tests
+boost_test_run_fail(prg_exec_fail1 DEPENDS boost_prg_exec_monitor)
+boost_test_run_fail(prg_exec_fail2 DEPENDS boost_prg_exec_monitor)
+boost_test_run_fail(prg_exec_fail3 DEPENDS boost_prg_exec_monitor)
+boost_test_run_fail(prg_exec_fail4 DEPENDS boost_prg_exec_monitor)
+
+# Unit test framework tests
+# NOTE: skipped errors_handling_test until I figure out what BBv2 is doing
+boost_test_run(online_test)
+boost_test_run_fail(minimal_test)
+boost_test_run(foreach_test)
+boost_test_run(output_test_stream_test DEPENDS boost_unit_test_framework SHARED)
+
+# NOTE: skipped result_report_test until I figure out what BBv2 is doing
+
+boost_test_run(parameterized_test_test DEPENDS boost_unit_test_framework SHARED)
+boost_test_run(test_fp_comparisons DEPENDS boost_unit_test_framework SHARED)
+
+# NOTE: skipped test_tools_test until I figure out what BBv2 is doing
+
+boost_test_run(test_case_template_test DEPENDS boost_unit_test_framework SHARED)
+
+boost_test_run(custom_exception_test DEPENDS boost_unit_test_framework)
+
+boost_test_run(fixed_mapping_test DEPENDS boost_unit_test_framework SHARED)
+
+# NOTE: skipped ifstream_line_iterator_test until I figure out what BBv2 is doing
+
+boost_test_run(algorithms_test DEPENDS boost_unit_test_framework)
+boost_test_run(token_iterator_test DEPENDS boost_unit_test_framework SHARED)
+boost_test_run(boost_check_equal_str DEPENDS boost_unit_test_framework SHARED)

Added: branches/CMake-release/libs/thread/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/thread/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_library_project(
+ Thread
+ SRCDIRS src
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/thread/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/thread/src/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,15 @@
+if (WIN32)
+ set(THREAD_SOURCES win32/thread.cpp win32/exceptions.cpp win32/tss_dll.cpp
+ win32/tss_pe.cpp)
+else (WIN32)
+ set(THREAD_SOURCES pthread/thread.cpp pthread/exceptions.cpp pthread/once.cpp)
+endif (WIN32)
+
+boost_add_library(
+ boost_thread
+ ${THREAD_SOURCES}
+ SHARED_COMPILE_FLAGS "-DBOOST_THREAD_BUILD_DLL=1"
+ STATIC_COMPILE_FLAGS "-DBOOST_THREAD_BUILD_LIB=1"
+ NO_SINGLE_THREADED
+ )
+

Added: branches/CMake-release/libs/thread/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/thread/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,8 @@
+boost_test_run(test_thread MULTI_THREADED DEPENDS boost_thread boost_unit_test_framework)
+boost_test_run(test_mutex MULTI_THREADED DEPENDS boost_thread boost_unit_test_framework)
+boost_test_run(test_condition MULTI_THREADED DEPENDS boost_thread boost_unit_test_framework)
+boost_test_run(test_tss MULTI_THREADED DEPENDS boost_thread boost_unit_test_framework)
+boost_test_run(test_once MULTI_THREADED DEPENDS boost_thread boost_unit_test_framework)
+boost_test_run(test_xtime MULTI_THREADED DEPENDS boost_thread boost_unit_test_framework)
+boost_test_run(test_barrier MULTI_THREADED DEPENDS boost_thread boost_unit_test_framework)
+#boost_test_run(test_read_write_mutex DEPENDS boost_thread-static boost_unit_test_framework)

Added: branches/CMake-release/libs/timer/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/timer/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Timer
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/timer/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/timer/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1 @@
+boost_test_compile(timer_test ../timer_test.cpp)

Added: branches/CMake-release/libs/tokenizer/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/tokenizer/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Tokenizer
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/tokenizer/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/tokenizer/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,7 @@
+boost_test_run(examples ../examples.cpp
+ DEPENDS boost_test_exec_monitor)
+boost_test_run(simple_example_1 ../simple_example_1.cpp)
+boost_test_run(simple_example_2 ../simple_example_2.cpp)
+boost_test_run(simple_example_3 ../simple_example_3.cpp)
+boost_test_run(simple_example_4 ../simple_example_4.cpp)
+boost_test_run(simple_example_5 ../simple_example_5.cpp)

Added: branches/CMake-release/libs/tr1/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/tr1/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ tr1
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/tr1/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/tr1/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,54 @@
+include_directories(${Boost_SOURCE_DIR}/boost/tr1/tr1)
+
+if (BORLAND)
+ # Borland's broken include mechanism needs these extra headers:
+ include_directories(${Boost_SOURCE_DIR}/boost/tr1/tr1/bcc32)
+endif (BORLAND)
+
+macro(boost_glob_test_compile path glob_par compile_flags)
+ list_contains(WITH_STD "WITH_STD" ${ARGN})
+ file(GLOB file_list ${path}/${glob_par})
+ foreach (current_file ${file_list})
+ get_filename_component(file_name ${current_file} NAME_WE)
+ boost_test_compile(${file_name} ${path}/${file_name}.cpp
+ COMPILE_FLAGS "${compile_flags}")
+ if (WITH_STD)
+ boost_test_compile(${file_name}_std ${path}/${file_name}.cpp
+ COMPILE_FLAGS "${compile_flags} -DTEST_STD_HEADERS=1")
+ endif (WITH_STD)
+ endforeach (current_file)
+endmacro(boost_glob_test_compile)
+
+macro(boost_glob_test_compile_fail patch glob_par compile_flags)
+ file(GLOB file_list ${glob_par})
+ foreach (current_file ${file_list})
+ get_filename_component(file_name ${current_file} NAME_WE)
+ boost_test_compile_fail(${file_name} ${path}/${file_name}.cpp COMPILE_FLAGS "${compile_flags}")
+ endforeach (current_file)
+endmacro(boost_glob_test_compile_fail)
+
+macro(boost_glob_test_run path glob_par compile_flags)
+ list_contains(WITH_STD "WITH_STD" ${ARGN})
+ file(GLOB file_list ${path}/${glob_par})
+ foreach (current_file ${file_list})
+ get_filename_component(file_name ${current_file} NAME_WE)
+ boost_test_run(${file_name} ${path}/${file_name}.cpp COMPILE_FLAGS "${compile_flags}")
+ if (WITH_STD)
+ boost_test_run(${file_name}_std ${path}/${file_name}.cpp
+ COMPILE_FLAGS "${compile_flags} -DTEST_STD_HEADERS=1")
+ endif (WITH_STD)
+ endforeach (current_file)
+endmacro(boost_glob_test_run)
+
+
+boost_glob_test_compile(. test*.cpp "" WITH_STD)
+
+boost_glob_test_run(. run*.cpp "" WITH_STD)
+
+boost_glob_test_compile_fail(config tr1_has_tr1*fail.cpp "")
+
+boost_glob_test_compile(config tr1_has_tr1*pass.cpp "")
+
+boost_glob_test_run(type_traits *.cpp "-DTEST_STD=1")
+
+boost_glob_test_compile(std_headers *.cpp "-DTEST_STD=1")

Added: branches/CMake-release/libs/tuple/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/tuple/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Tuple
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/tuple/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/tuple/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,2 @@
+boost_test_run(tuple_test_bench DEPENDS boost_test_exec_monitor)
+boost_test_run(io_test DEPENDS boost_test_exec_monitor)

Added: branches/CMake-release/libs/type_traits/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/type_traits/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Type_traits
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/type_traits/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/type_traits/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,7 @@
+file(GLOB TEST_FILES "*_test.cpp")
+foreach(TEST_FILE ${TEST_FILES})
+ get_filename_component(TEST_NAME ${TEST_FILE} NAME_WE)
+ boost_test_run(${TEST_NAME})
+endforeach(TEST_FILE ${TEST_FILES})
+
+boost_test_run(udt_specialisations)

Added: branches/CMake-release/libs/typeof/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/typeof/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Typeof
+ TESTDIRS test
+ )

Added: branches/CMake-release/libs/typeof/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/typeof/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,21 @@
+file(GLOB TEST_FILES "*.cpp")
+foreach(TEST_FILE ${TEST_FILES})
+ if (TEST_FILE MATCHES "odr.*cpp")
+ # Skip ODR tests; we'll handle them separately
+ else (TEST_FILE MATCHES "odr.*cpp")
+ get_filename_component(TEST_NAME ${TEST_FILE} NAME_WE)
+ boost_test_compile("${TEST_NAME}_native"
+ "${TEST_NAME}.cpp" COMPILE_FLAGS "-DBOOST_TYPEOF_NATIVE")
+ boost_test_compile("${TEST_NAME}_emulation"
+ "${TEST_NAME}.cpp" COMPILE_FLAGS "-DBOOST_TYPEOF_EMULATION")
+ endif (TEST_FILE MATCHES "odr.*cpp")
+endforeach(TEST_FILE ${TEST_FILES})
+
+boost_test_run(odr_native
+ odr1.cpp odr2.cpp COMPILE_FLAGS "-DBOOST_TYPEOF_NATIVE")
+boost_test_run(odr_emulation
+ odr1.cpp odr2.cpp COMPILE_FLAGS "-DBOOST_TYPEOF_EMULATION")
+boost_test_run(odr_no_uns
+ odr_no_uns1.cpp odr_no_uns2.cpp
+ COMPILE_FLAGS "-DBOOST_TYPEOF_EMULATION")
+

Added: branches/CMake-release/libs/utility/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/utility/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+boost_library_project(
+ Utility
+ TESTDIRS test
+)
+

Added: branches/CMake-release/libs/utility/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/utility/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,36 @@
+boost_test_run(addressof_test ../addressof_test.cpp)
+boost_test_run(assert_test ../assert_test.cpp)
+boost_test_run(base_from_member_test ../base_from_member_test.cpp)
+boost_test_run(binary_search_test ../binary_search_test.cpp)
+boost_test_run(call_traits_test ../call_traits_test.cpp ARGS -u)
+boost_test_compile_fail(checked_delete_test ../checked_delete_test.cpp)
+boost_test_run(compressed_pair_test
+ ../compressed_pair_test
+ DEPENDS boost_test_exec_monitor)
+boost_test_run(current_function_test ../current_function_test.cpp)
+boost_test_run(iterators_test
+ ../iterators_test.cpp
+ DEPENDS boost_test_exec_monitor)
+boost_test_run(next_prior_test DEPENDS boost_test_exec_monitor)
+boost_test_compile_fail(noncopyable_test ../noncopyable_test.cpp)
+boost_test_run(numeric_traits_test ../numeric_traits_test.cpp)
+if (${CMAKE_SYSTEM} MATCHES "FreeBSD-.*")
+boost_test_compile_fail("operators_test_compilerbug")
+elseif(${CMAKE_SYSTEM} MATCHES "FreeBSD-.*")
+boost_test_run(operators_test
+ ../operators_test.cpp
+ DEPENDS boost_test_exec_monitor)
+endif(${CMAKE_SYSTEM} MATCHES "FreeBSD-.*")
+boost_test_compile(ref_ct_test ../ref_ct_test.cpp)
+boost_test_run(ref_test
+ ../ref_test.cpp
+ DEPENDS boost_test_exec_monitor)
+boost_test_compile(result_of_test)
+boost_test_run(shared_iterator_test ../shared_iterator_test.cpp)
+boost_test_run(value_init_test ../value_init_test.cpp)
+boost_test_compile_fail(value_init_test_fail1
+ ../value_init_test_fail1.cpp)
+boost_test_compile_fail(value_init_test_fail2
+ ../value_init_test_fail2.cpp)
+boost_test_compile_fail(value_init_test_fail3
+ ../value_init_test_fail3.cpp)

Added: branches/CMake-release/libs/variant/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/variant/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Variant
+ TESTDIRS test
+)

Added: branches/CMake-release/libs/variant/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/variant/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,7 @@
+boost_test_run(test1 test1.cpp class_a.cpp)
+boost_test_run(test4 test4.cpp class_a.cpp)
+set(tests test2 test3 test5 test6 test7 test8 recursive_variant_test variant_reference_test variant_comparison_test variant_visit_test)
+
+foreach(test ${tests})
+ boost_test_run(${test})
+endforeach(test ${tests})

Added: branches/CMake-release/libs/wave/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/wave/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,9 @@
+boost_library_project(
+ Wave
+ SRCDIRS src
+ TESTDIRS test
+ )
+
+
+
+

Added: branches/CMake-release/libs/wave/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/wave/src/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,16 @@
+boost_add_library(
+ boost_wave
+ instantiate_cpp_exprgrammar.cpp
+ instantiate_cpp_grammar.cpp
+ instantiate_cpp_literalgrs.cpp
+ instantiate_defined_grammar.cpp
+ instantiate_predef_macros.cpp
+ instantiate_re2c_lexer.cpp
+ instantiate_re2c_lexer_str.cpp
+ token_ids.cpp
+ wave_config_constant.cpp
+ cpplexer/re2clex/aq.cpp
+ cpplexer/re2clex/cpp_re.cpp
+ DEPENDS boost_filesystem
+ SHARED_COMPILE_FLAGS "-DBOOST_ALL_DYN_LINK=1"
+)

Added: branches/CMake-release/libs/wave/test/CMakeLists.txt
==============================================================================

Added: branches/CMake-release/libs/xpressive/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/xpressive/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,4 @@
+boost_library_project(
+ Xpressive
+ TESTDIRS test
+)

Added: branches/CMake-release/libs/xpressive/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/libs/xpressive/test/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,69 @@
+# : requirements
+# <toolset>intel:<debug-symbols>off
+# <toolset>msvc,<stdlib>stlport:<define>_STLP_EXPOSE_GLOBALS_IMPLEMENTATION
+
+# [ linkp multiple_defs1.cpp multiple_defs2.cpp : : multiple_defs ]
+
+# TODO: Fix these
+# boost_test_fail("multipledefs")
+# boost_test_fail("msvc-stlport")
+
+if (NOT ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
+ FILE(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/libs/date_time/data")
+ execute_process(COMMAND cmake -E copy "${CMAKE_SOURCE_DIR}/libs/xpressive/test/regress.txt" "${CMAKE_CURRENT_BINARY_DIR}")
+endif (NOT ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
+
+
+SET(runtests
+ regress
+ c_traits
+ test1
+ test2
+ test3
+ test4
+ test5
+ test6
+ test7
+ test8
+ test9
+ test10
+ test11
+ test1u
+ test2u
+ test3u
+ test4u
+ test5u
+ test6u
+ test7u
+ test8u
+ test9u
+ test10u
+ test11u
+ misc1
+ misc2
+ test_cycles
+ test_non_char
+ test_static
+ test_dynamic)
+
+foreach(runtest ${runtests})
+ boost_test_run(${runtest})
+endforeach(runtest ${runtests})
+
+set(compiletests
+ test_basic_regex
+ test_match_results
+ test_regex_algorithms
+ test_regex_compiler
+ test_regex_constants
+ test_regex_error
+ test_regex_iterator
+ test_regex_primitives
+ test_regex_token_iterator
+ test_regex_traits
+ test_sub_match
+ )
+
+foreach(compiletest ${compiletests})
+ boost_test_compile(${compiletest})
+endforeach(compiletest ${compiletests})

Added: branches/CMake-release/tools/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/tools/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,2 @@
+add_subdirectory(quickbook)
+add_subdirectory(wave)
\ No newline at end of file

Added: branches/CMake-release/tools/build/CMake/BoostConfig.cmake
==============================================================================
--- (empty file)
+++ branches/CMake-release/tools/build/CMake/BoostConfig.cmake 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,148 @@
+##########################################################################
+# Boost Configuration Support #
+##########################################################################
+# Copyright (C) 2007 Douglas Gregor <doug.gregor_at_[hidden]> #
+# 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 #
+##########################################################################
+# This module defines several variables that provide information about #
+# the target compiler and platform. #
+# #
+# Variables defined: #
+# #
+# BOOST_TOOLSET: #
+# The Boost toolset name, used by the library version mechanism to #
+# encode the compiler and version into the name of the #
+# library. This toolset name will correspond with Boost.Build #
+# version 2's toolset name, including version number. #
+# #
+# MULTI_THREADED_COMPILE_FLAGS: #
+# Compilation flags when building multi-threaded programs. #
+# #
+# MULTI_THREADED_LINK_FLAGS: #
+# Linker flags when building multi-threaded programs. #
+##########################################################################
+include(CheckCXXSourceCompiles)
+
+# Toolset detection.
+if (NOT BOOST_TOOLSET)
+ if (MSVC60)
+ set(BOOST_TOOLSET "vc6")
+ elseif(MSVC70)
+ set(BOOST_TOOLSET "vc7")
+ elseif(MSVC71)
+ set(BOOST_TOOLSET "vc71")
+ elseif(MSVC80)
+ set(BOOST_TOOLSET "vc80")
+ elseif(MSVC)
+ elseif(BORLAND)
+ set(BOOST_TOOLSET "bcb")
+ elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
+ # Execute GCC with the -dumpversion option, to give us a version string
+ execute_process(
+ COMMAND ${CMAKE_CXX_COMPILER} "-dumpversion"
+ OUTPUT_VARIABLE GCC_VERSION_STRING)
+
+ # Match only the major and minor versions of the version string
+ string(REGEX MATCH "[0-9]+.[0-9]+" GCC_MAJOR_MINOR_VERSION_STRING
+ "${GCC_VERSION_STRING}")
+
+ # Strip out the period between the major and minor versions
+ string(REGEX REPLACE "\\." "" BOOST_VERSIONING_GCC_VERSION
+ "${GCC_MAJOR_MINOR_VERSION_STRING}")
+
+ # Set the GCC versioning toolset
+ set(BOOST_TOOLSET "gcc${BOOST_VERSIONING_GCC_VERSION}")
+ endif(MSVC60)
+endif (NOT BOOST_TOOLSET)
+
+# Multi-threading support
+if(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
+ set(MULTI_THREADED_COMPILE_FLAGS "-pthreads")
+ set(MULTI_THREADED_LINK_LIBS rt)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "BeOS")
+ # No threading options necessary for BeOS
+elseif(CMAKE_SYSTEM_NAME MATCHES ".*BSD")
+ set(MULTI_THREADED_COMPILE_FLAGS "-pthread")
+ set(MULTI_THREADED_LINK_LIBS pthread)
+elseif(CMAKE_SYSTEM_NAME STREQUAL "DragonFly")
+ # DragonFly is FreeBSD bariant
+ set(MULTI_THREADED_COMPILE_FLAGS "-pthread")
+elseif(CMAKE_SYSTEM_NAME STREQUAL "IRIX")
+ # TODO: GCC on Irix doesn't support multi-threading?
+elseif(CMAKE_SYSTEM_NAME STREQUAL "HP-UX")
+ # TODO: gcc on HP-UX does not support multi-threading?
+elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ # No threading options necessary for Mac OS X
+elseif(UNIX)
+ # Assume -pthread and -lrt on all other variants
+ set(MULTI_THREADED_COMPILE_FLAGS "-pthread -D_REENTRANT")
+ set(MULTI_THREADED_LINK_FLAGS "")
+ set(MULTI_THREADED_LINK_LIBS pthread rt)
+endif(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
+
+# Setup DEBUG_COMPILE_FLAGS, RELEASE_COMPILE_FLAGS, DEBUG_LINK_FLAGS and
+# and RELEASE_LINK_FLAGS based on the CMake equivalents
+if(CMAKE_CXX_FLAGS_DEBUG)
+ if(MSVC)
+ # Eliminate the /MDd flag; we'll add it back when we need it
+ string(REPLACE "/MDd" "" CMAKE_CXX_FLAGS_DEBUG
+ "${CMAKE_CXX_FLAGS_DEBUG}")
+ endif(MSVC)
+ set(DEBUG_COMPILE_FLAGS "${CMAKE_CXX_FLAGS_DEBUG}" CACHE STRING "Compilation flags for debug libraries")
+endif(CMAKE_CXX_FLAGS_DEBUG)
+if(CMAKE_CXX_FLAGS_RELEASE)
+ if(MSVC)
+ # Eliminate the /MD flag; we'll add it back when we need it
+ string(REPLACE "/MD" "" CMAKE_CXX_FLAGS_RELEASE
+ "${CMAKE_CXX_FLAGS_RELEASE}")
+ endif(MSVC)
+ set(RELEASE_COMPILE_FLAGS "${CMAKE_CXX_FLAGS_RELEASE}" CACHE STRING "Compilation flags for release libraries")
+endif(CMAKE_CXX_FLAGS_RELEASE)
+if(CMAKE_SHARED_LINKER_FLAGS_DEBUG)
+ set(DEBUG_LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS_DEBUG}" CACHE STRING "Linker flags for debug libraries")
+endif(CMAKE_SHARED_LINKER_FLAGS_DEBUG)
+if(CMAKE_SHARED_LINKER_FLAGS_RELEASE)
+ set(RELEASE_LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}" CACHE STRING "Link flags for release libraries")
+endif(CMAKE_SHARED_LINKER_FLAGS_RELEASE)
+
+# Set DEBUG_EXE_LINK_FLAGS, RELEASE_EXE_LINK_FLAGS
+if (CMAKE_EXE_LINKER_FLAGS_DEBUG)
+ set(DEBUG_EXE_LINK_FLAGS "${CMAKE_EXE_LINKER_FLAGS_DEBUG}")
+endif (CMAKE_EXE_LINKER_FLAGS_DEBUG)
+if (CMAKE_EXE_LINKER_FLAGS_RELEASE)
+ set(RELEASE_EXE_LINK_FLAGS "${CMAKE_EXE_LINKER_FLAGS_RELEASE}")
+endif (CMAKE_EXE_LINKER_FLAGS_RELEASE)
+
+# Tweak the configuration and build types appropriately.
+if(CMAKE_CONFIGURATION_TYPES)
+ # Limit CMAKE_CONFIGURATION_TYPES to Debug and Release
+ set(CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "Semicolon-separate list of supported configuration types" FORCE)
+else(CMAKE_CONFIGURATION_TYPES)
+ # Build in release mode by default
+ if (NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are Release or Debug" FORCE)
+ endif (NOT CMAKE_BUILD_TYPE)
+endif(CMAKE_CONFIGURATION_TYPES)
+
+# Clear out the built-in C++ compiler and link flags for each of the
+# configurations.
+set(CMAKE_CXX_FLAGS_DEBUG "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_EXE_LINKER_FLAGS_DEBUG "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_CXX_FLAGS_RELEASE "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_EXE_LINKER_FLAGS_RELEASE "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_CXX_FLAGS_MINSIZEREL "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "Unused by Boost")
+set(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "" CACHE INTERNAL "Unused by Boost")

Added: branches/CMake-release/tools/build/CMake/BoostCore.cmake
==============================================================================
--- (empty file)
+++ branches/CMake-release/tools/build/CMake/BoostCore.cmake 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,986 @@
+##########################################################################
+# Core Functionality for Boost #
+##########################################################################
+# Copyright (C) 2007 Douglas Gregor <doug.gregor_at_[hidden]> #
+# 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 #
+##########################################################################
+# Important developer macros in this file: #
+# #
+# boost_library_project: Defines a Boost library project (e.g., #
+# Boost.Python). #
+# #
+# boost_add_library: Builds library binaries for Boost libraries #
+# with compiled sources (e.g., boost_filesystem). #
+# #
+# boost_add_executable: Builds executables. #
+##########################################################################
+
+# Defines a Boost library project (e.g., for Boost.Python). Use as:
+#
+# boost_library_project(libname
+# [SRCDIRS srcdir1 srcdir2 ...]
+# [TESTDIRS testdir1 testdir2 ...])
+#
+# where libname is the name of the library (e.g., Python, or
+# Filesystem), srcdir1, srcdir2, etc, are subdirectories containing
+# library sources (for Boost libraries that build actual library
+# binaries), and testdir1, testdir2, etc, are subdirectories
+# containing regression tests.
+#
+# For libraries that build actual library binaries, this macro adds a
+# option BUILD_BOOST_LIBNAME (which defaults to ON). When the option
+# is ON, this macro will include the source subdirectories, and
+# therefore, will build and install the library binary.
+#
+# For libraries that have regression tests, and when testing is
+# enabled globally by the BUILD_TESTING option, this macro also
+# defines the TEST_BOOST_LIBNAME option (defaults to ON). When ON, the
+# generated makefiles/project files will contain regression tests for
+# this library.
+#
+# Example:
+# boost_library_project(
+# Thread
+# SRCDIRS src
+# TESTDIRS test
+# )
+macro(boost_library_project LIBNAME)
+ parse_arguments(THIS_PROJECT
+ "SRCDIRS;TESTDIRS"
+ ""
+ ${ARGN}
+ )
+
+ string(TOUPPER "BUILD_BOOST_${LIBNAME}" BOOST_BUILD_LIB_OPTION)
+ if (THIS_PROJECT_SRCDIRS)
+ # This Boost library has source directories, so provide an option
+ # BUILD_BOOST_LIBNAME that allows one to turn on/off building of
+ # the library.
+ option(${BOOST_BUILD_LIB_OPTION}
+ "Build Boost.${LIBNAME} (prefer make targets, not this, to build individual libs)"
+ ON)
+ else (THIS_PROJECT_SRCDIRS)
+ # This Boost library has no source directories, and therefore does
+ # not require building. Always enable it (but don't make it an
+ # option in the cache).
+ set(${BOOST_BUILD_LIB_OPTION} ON)
+ endif (THIS_PROJECT_SRCDIRS)
+
+ if(${BOOST_BUILD_LIB_OPTION})
+ string(TOLOWER "${LIBNAME}" libname)
+ project(${libname})
+
+ if(NOT EXISTS ${CMAKE_BINARY_DIR}/bin/tests)
+ file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin/tests)
+ endif(NOT EXISTS ${CMAKE_BINARY_DIR}/bin/tests)
+ if(NOT EXISTS ${CMAKE_BINARY_DIR}/bin/tests/${PROJECT_NAME})
+ file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/bin/tests/${PROJECT_NAME})
+ endif(NOT EXISTS ${CMAKE_BINARY_DIR}/bin/tests/${PROJECT_NAME})
+
+ # Include each of the source directories
+ foreach(SUBDIR ${THIS_PROJECT_SRCDIRS})
+ add_subdirectory(${SUBDIR})
+ endforeach(SUBDIR ${THIS_PROJECT_SRCDIRS})
+
+ if(BUILD_TESTING AND THIS_PROJECT_TESTDIRS)
+ # Testing is enabled globally and this project has some
+ # tests. So, add a testing option.
+ string(TOUPPER "TEST_BOOST_${LIBNAME}" BOOST_TEST_LIB_OPTION)
+ option(${BOOST_TEST_LIB_OPTION}
+ "Enable testing of Boost.${LIBNAME}"
+ ON)
+
+ # Only include the test directories when testing is enabled for
+ # this project.
+ if(${BOOST_TEST_LIB_OPTION})
+ foreach(SUBDIR ${THIS_PROJECT_TESTDIRS})
+ add_subdirectory(${SUBDIR})
+ endforeach(SUBDIR ${THIS_PROJECT_TESTDIRS})
+ endif(${BOOST_TEST_LIB_OPTION})
+ endif(BUILD_TESTING AND THIS_PROJECT_TESTDIRS)
+ endif(${BOOST_BUILD_LIB_OPTION})
+endmacro(boost_library_project)
+
+# This macro is an internal utility macro that builds the name of a
+# particular variant of a library
+#
+# boost_library_variant_target_name(feature1 feature2 ...)
+#
+# where feature1, feature2, etc. are the names of features to be
+# included in this variant, e.g., MULTI_THREADED, DEBUG.
+#
+# This macro sets two macros:
+#
+# VARIANT_TARGET_NAME: The suffix that should be appended to the
+# name of the library target to name this variant of the
+# library. For example, this might be "-mt-static" for a static,
+# multi-threaded variant. It should be used to name the CMake
+# library target, e.g., boost_signals-mt-static.
+#
+# VARIANT_VERSIONED_NAME: The suffix that will be added to the name
+# of the generated library, containing information about the
+# particular version of the library and the toolset used to build
+# this library. For example, this might be "-gcc41-mt-1_34" for the
+# multi-threaded, release variant of the library in Boost 1.34.0 as
+# compiled with GCC 4.1.
+macro(boost_library_variant_target_name)
+ set(VARIANT_TARGET_NAME "")
+
+ # The versioned name starts with the full Boost toolset
+ set(VARIANT_VERSIONED_NAME "-${BOOST_TOOLSET}")
+
+ # Add -mt for multi-threaded libraries
+ list_contains(VARIANT_IS_MT MULTI_THREADED ${ARGN})
+ if (VARIANT_IS_MT)
+ set(VARIANT_TARGET_NAME "${VARIANT_TARGET_NAME}-mt")
+
+ # If we're creating versioned names, tack on "-mt"
+ set(VARIANT_VERSIONED_NAME "${VARIANT_VERSIONED_NAME}-mt")
+ endif (VARIANT_IS_MT)
+
+ # Add -static for static libraries, -shared for shared libraries
+ list_contains(VARIANT_IS_STATIC STATIC ${ARGN})
+ if (VARIANT_IS_STATIC)
+ set(VARIANT_TARGET_NAME "${VARIANT_TARGET_NAME}-static")
+ else (VARIANT_IS_STATIC)
+ set(VARIANT_TARGET_NAME "${VARIANT_TARGET_NAME}-shared")
+ endif (VARIANT_IS_STATIC)
+
+ # Compute the ABI tag, which depends on various kinds of options
+ set(VARIANT_ABI_TAG "")
+
+ # Linking statically to the runtime library
+ list_contains(VARIANT_IS_STATIC_RUNTIME STATIC_RUNTIME ${ARGN})
+ if (VARIANT_IS_STATIC_RUNTIME)
+ set(VARIANT_TARGET_NAME "${VARIANT_TARGET_NAME}-staticrt")
+ set(VARIANT_ABI_TAG "${VARIANT_ABI_TAG}s")
+ endif (VARIANT_IS_STATIC_RUNTIME)
+
+ # Using the debug version of the runtime library.
+ # With Visual C++, this comes automatically with debug
+ if (MSVC)
+ list_contains(VARIANT_IS_DEBUG DEBUG ${ARGN})
+ if (VARIANT_IS_DEBUG)
+ set(VARIANT_ABI_TAG "${VARIANT_ABI_TAG}g")
+ endif (VARIANT_IS_DEBUG)
+ endif (MSVC)
+
+ # Add -pydebug for debug builds of Python
+ list_contains(VARIANT_IS_PYDEBUG PYTHON_DEBUG ${ARGN})
+ if (VARIANT_IS_PYDEBUG)
+ set(VARIANT_TARGET_NAME "${VARIANT_TARGET_NAME}-pydebug")
+ set(VARIANT_ABI_TAG "${VARIANT_ABI_TAG}y")
+ endif (VARIANT_IS_PYDEBUG)
+
+ # TODO: STLport rather than default library
+ # TODO: STLport's deprecated iostreams
+
+ # Add -debug for debug libraries
+ list_contains(VARIANT_IS_DEBUG DEBUG ${ARGN})
+ if (VARIANT_IS_DEBUG)
+ # Only add the actual "-debug" if we're also building release libraries
+ if (BUILD_RELEASE)
+ set(VARIANT_TARGET_NAME "${VARIANT_TARGET_NAME}-debug")
+ endif (BUILD_RELEASE)
+ set(VARIANT_ABI_TAG "${VARIANT_ABI_TAG}d")
+ endif (VARIANT_IS_DEBUG)
+
+ # If there is an ABI tag, append it to the versioned name
+ if (VARIANT_ABI_TAG)
+ set(VARIANT_VERSIONED_NAME "${VARIANT_VERSIONED_NAME}-${VARIANT_ABI_TAG}")
+ endif (VARIANT_ABI_TAG)
+
+ # Append the Boost version number to the versioned name
+ if(BOOST_VERSION_SUBMINOR GREATER 0)
+ set(VARIANT_VERSIONED_NAME
+ "${VARIANT_VERSIONED_NAME}-${BOOST_VERSION_MAJOR}_${BOOST_VERSION_MINOR}_${BOOST_VERSION_SUBMINOR}")
+ else(BOOST_VERSION_SUBMINOR GREATER 0)
+ set(VARIANT_VERSIONED_NAME
+ "${VARIANT_VERSIONED_NAME}-${BOOST_VERSION_MAJOR}_${BOOST_VERSION_MINOR}")
+ endif(BOOST_VERSION_SUBMINOR GREATER 0)
+endmacro(boost_library_variant_target_name)
+
+# This macro is an internal utility macro that updates compilation and
+# linking flags based on interactions among the features in a variant.
+#
+# boost_feature_interactions(prefix
+# feature1 feature2 ...)
+#
+# where "prefix" is the prefix of the compilation and linking flags
+# that will be updated (e.g., ${prefix}_COMPILE_FLAGS). feature1,
+# feature2, etc. are the names of the features used in this particular
+# variant. If the features in this variant conflict, set
+# ${prefix}_OKAY to FALSE.
+macro(boost_feature_interactions PREFIX)
+ # Don't build or link against a shared library and a static run-time
+ list_contains(IS_SHARED SHARED ${ARGN})
+ list_contains(IS_STATIC_RUNTIME STATIC_RUNTIME ${ARGN})
+ if (IS_SHARED AND IS_STATIC_RUNTIME)
+ set(${PREFIX}_OKAY FALSE)
+ endif (IS_SHARED AND IS_STATIC_RUNTIME)
+
+ # With Visual C++, the dynamic runtime is multi-threaded only
+ if (MSVC)
+ list_contains(IS_DYNAMIC_RUNTIME DYNAMIC_RUNTIME ${ARGN})
+ list_contains(IS_SINGLE_THREADED SINGLE_THREADED ${ARGN})
+ if (IS_DYNAMIC_RUNTIME AND IS_SINGLE_THREADED)
+ set(${PREFIX}_OKAY FALSE)
+ endif (IS_DYNAMIC_RUNTIME AND IS_SINGLE_THREADED)
+ endif (MSVC)
+
+ # Visual C++-specific runtime library flags
+ if(MSVC)
+ list_contains(IS_STATIC_RUNTIME STATIC_RUNTIME ${ARGN})
+ list_contains(IS_DEBUG DEBUG ${ARGN})
+ if(IS_DEBUG)
+ if(IS_STATIC_RUNTIME)
+ set(${PREFIX}_COMPILE_FLAGS "/MTd ${${PREFIX}_COMPILE_FLAGS}")
+ else(IS_STATIC_RUNTIME)
+ set(${PREFIX}_COMPILE_FLAGS "/MDd ${${PREFIX}_COMPILE_FLAGS}")
+ endif(IS_STATIC_RUNTIME)
+ else(IS_DEBUG)
+ if(IS_STATIC_RUNTIME)
+ set(${PREFIX}_COMPILE_FLAGS "/MT ${${PREFIX}_COMPILE_FLAGS}")
+ else(IS_STATIC_RUNTIME)
+ set(${PREFIX}_COMPILE_FLAGS "/MD ${${PREFIX}_COMPILE_FLAGS}")
+ endif(IS_STATIC_RUNTIME)
+ endif(IS_DEBUG)
+ endif(MSVC)
+endmacro(boost_feature_interactions)
+
+# This macro is an internal utility macro that builds a particular
+# variant of a boost library.
+#
+# boost_library_variant(libname
+# feature1 feature2 ...)
+#
+# where libname is the name of the Boost library (e.g.,
+# "boost_filesystem") and feature1, feature2, ... are the features
+# that will be used in this variant.
+#
+# This macro will define a new library target based on libname and the
+# specific variant name (see boost_library_variant_target_name), which
+# depends on the utility target libname. The compilation and linking
+# flags for this library are defined by THIS_LIB_COMPILE_FLAGS,
+# THIS_LIB_LINK_FLAGS, THIS_LIB_LINK_LIBS, and all of the compile and
+# linking flags implied by the features provided.
+#
+# If any of the features listed conflict with this library, no new
+# targets will be built. For example, if the library provides the
+# option NOT_MULTI_THREADED, and one of the features provided is
+# MULTI_THREADED, this macro will essentially be a no-op.
+macro(boost_library_variant LIBNAME)
+ set(THIS_VARIANT_COMPILE_FLAGS "${THIS_LIB_COMPILE_FLAGS}")
+ set(THIS_VARIANT_LINK_FLAGS "${THIS_LIB_LINK_FLAGS}")
+ set(THIS_VARIANT_LINK_LIBS ${THIS_LIB_LINK_LIBS})
+
+ # Determine if it is okay to build this variant
+ set(THIS_VARIANT_OKAY TRUE)
+ foreach(ARG ${ARGN})
+ # If the library itself stated that we cannot build this variant,
+ # don't. For example, we're trying to build a shared library
+ # variant, but the user specified NO_SHARED in the requirements of
+ # the library.
+ if (THIS_LIB_NO_${ARG})
+ set(THIS_VARIANT_OKAY FALSE)
+ endif (THIS_LIB_NO_${ARG})
+
+ # If the user specified that we should not build any variants of
+ # this kind, don't. For example, if the BUILD_SHARED option is
+ # off, don't build shared libraries.
+ if(NOT BUILD_${ARG})
+ set(THIS_VARIANT_OKAY FALSE)
+ endif(NOT BUILD_${ARG})
+
+ # Accumulate compile and link flags
+ set(THIS_VARIANT_COMPILE_FLAGS "${THIS_VARIANT_COMPILE_FLAGS} ${THIS_LIB_${ARG}_COMPILE_FLAGS} ${${ARG}_COMPILE_FLAGS}")
+ set(THIS_VARIANT_LINK_FLAGS "${THIS_VARIANT_LINK_FLAGS} ${THIS_LIB_${ARG}_LINK_FLAGS} ${${ARG}_LINK_FLAGS}")
+ set(THIS_VARIANT_LINK_LIBS ${THIS_VARIANT_LINK_LIBS} ${THIS_LIB_${ARG}_LINK_LIBS} ${${ARG}_LINK_LIBS})
+ endforeach(ARG ${ARGN})
+
+ # Handle feature interactions
+ boost_feature_interactions("THIS_VARIANT" ${ARGN})
+
+ if (THIS_VARIANT_OKAY)
+ # Determine the suffix for this library target
+ boost_library_variant_target_name(${ARGN})
+ set(VARIANT_LIBNAME "${LIBNAME}${VARIANT_TARGET_NAME}")
+
+ # We handle static vs. dynamic libraries differently
+ list_contains(THIS_LIB_IS_STATIC "STATIC" ${ARGN})
+ if (THIS_LIB_IS_STATIC)
+ # If the STATIC_TAG flag was set, we append "-s" to the name of
+ # the library. This is an unfortunate hack, needed only for the
+ # test library.
+ if (THIS_LIB_STATIC_TAG)
+ set(THIS_LIB_STATIC_TAG "-s")
+ else(THIS_LIB_STATIC_TAG)
+ set(THIS_LIB_STATIC_TAG "")
+ endif(THIS_LIB_STATIC_TAG)
+
+ # On Windows, we need static and shared libraries to have
+ # different names, so we follow the Boost.Build version 2 style
+ # and prepend "lib" to the name.
+ if(WIN32 AND NOT CYGWIN)
+ set(LIBPREFIX "lib")
+ else(WIN32 AND NOT CYGWIN)
+ set(LIBPREFIX "")
+ endif(WIN32 AND NOT CYGWIN)
+
+ # Add the library itself
+ add_library(${VARIANT_LIBNAME} STATIC ${THIS_LIB_SOURCES})
+
+ # Set properties on this library
+ set_target_properties(${VARIANT_LIBNAME}
+ PROPERTIES
+ OUTPUT_NAME "${LIBPREFIX}${LIBNAME}${VARIANT_VERSIONED_NAME}${THIS_LIB_STATIC_TAG}"
+ CLEAN_DIRECT_OUTPUT 1
+ COMPILE_FLAGS "${THIS_VARIANT_COMPILE_FLAGS}"
+ LINK_FLAGS "${THIS_VARIANT_LINK_FLAGS}"
+ )
+ elseif (THIS_LIB_MODULE)
+ # Add a module
+ add_library(${VARIANT_LIBNAME} MODULE ${THIS_LIB_SOURCES})
+
+ # Set properties on this library
+ set_target_properties(${VARIANT_LIBNAME}
+ PROPERTIES
+ OUTPUT_NAME "${LIBNAME}${VARIANT_VERSIONED_NAME}"
+ CLEAN_DIRECT_OUTPUT 1
+ COMPILE_FLAGS "${THIS_VARIANT_COMPILE_FLAGS}"
+ LINK_FLAGS "${THIS_VARIANT_LINK_FLAGS}"
+ SOVERSION "${BOOST_VERSION}"
+ )
+ else (THIS_LIB_IS_STATIC)
+ # Add a module
+ add_library(${VARIANT_LIBNAME} SHARED ${THIS_LIB_SOURCES})
+
+ # Set properties on this library
+ set_target_properties(${VARIANT_LIBNAME}
+ PROPERTIES
+ OUTPUT_NAME "${LIBNAME}${VARIANT_VERSIONED_NAME}"
+ CLEAN_DIRECT_OUTPUT 1
+ COMPILE_FLAGS "${THIS_VARIANT_COMPILE_FLAGS}"
+ LINK_FLAGS "${THIS_VARIANT_LINK_FLAGS}"
+ SOVERSION "${BOOST_VERSION}"
+ )
+ endif (THIS_LIB_IS_STATIC)
+
+ # The basic LIBNAME target depends on each of the variants
+ add_dependencies(${LIBNAME} ${VARIANT_LIBNAME})
+
+ # Link against whatever libraries this library depends on
+ target_link_libraries(${VARIANT_LIBNAME} ${THIS_VARIANT_LINK_LIBS})
+ foreach(dependency ${THIS_LIB_DEPENDS})
+ target_link_libraries(${VARIANT_LIBNAME} "${dependency}${VARIANT_TARGET_NAME}")
+ endforeach(dependency "${THIS_LIB_DEPENDS}")
+
+ # Installation of this library variant
+ install(TARGETS ${VARIANT_LIBNAME} DESTINATION lib)
+ endif (THIS_VARIANT_OKAY)
+endmacro(boost_library_variant)
+
+# Updates the set of default build variants to account for variations
+# in the given feature.
+#
+# boost_add_default_variant(feature-val1 feature-val2 ...)
+#
+# Each new feature creates a new set of build variants using that
+# feature. For example, writing:
+#
+# boost_add_default_variant(SINGLE_THREADED MULTI_THREADED)
+#
+# will create single- and multi-threaded variants of every default
+# library variant already defined, doubling the number of variants
+# that will be built. See the top-level CMakeLists.txt for the set of
+# default variants.
+#
+# Variables affected:
+#
+# BOOST_DEFAULT_VARIANTS:
+# This variable describes all of the variants that will be built
+# by default, and will be updated with each invocation of
+# boost_add_default_variant. The variable itself is a list, where
+# each element in the list contains a colon-separated string
+# naming a specific set of features for that variant, e.g.,
+# STATIC:DEBUG:SINGLE_THREADED.
+#
+# BOOST_FEATURES:
+# This variable describes all of the feature sets that we know about,
+# and will be extended each time ither boost_add_default_variant or
+# boost_add_extra_variant is invoked. This macro will contain a list
+# of feature sets, each containing the values for a given feature
+# separated by colons, e.g., "DEBUG:RELEASE".
+#
+# BOOST_ADD_ARG_NAMES:
+# This variable describes all of the feature-specific arguments
+# that can be used for the boost_add_library macro, separated by
+# semicolons. For example, given the use of
+# boost_add_default_variant above, this variable will contain (at
+# least)
+#
+# SINGLE_THREADED_COMPILE_FLAGS;SINGLE_THREADED_LINK_FLAGS;
+# MULTI_THREADED_COMPILE_FLAGS;MULTI_THREADED_LINK_FLAGS
+#
+# When this variable is used in boost_add_library, it turns these
+# names into feature-specific options. For example,
+# MULTI_THREADED_COMPILE_FLAGS provides extra compile flags to be
+# used only for multi-threaded variants of the library.
+#
+# BOOST_ADDLIB_OPTION_NAMES:
+# Like BOOST_ADD_ARG_NAMES, this variable describes
+# feature-specific options to boost_library that can be used to
+# turn off building of the library when the variant would require
+# certain features. For example, the NO_SINGLE_THREADED option
+# turns off building of single-threaded variants for a library.
+#
+# BOOST_ADDEXE_OPTION_NAMES:
+# Like BOOST_ADDLIB_OPTION_NAMES, execept that that variable
+# describes options to boost_add_executable that can be used to
+# describe which features are needed to build the executable.
+# For example, the MULTI_THREADED option requires that the
+# executable be built against multi-threaded libraries and with
+# multi-threaded options.
+macro(boost_add_default_variant)
+ # Update BOOST_DEFAULT_VARIANTS
+ if (BOOST_DEFAULT_VARIANTS)
+ set(BOOST_DEFAULT_VARIANTS_ORIG ${BOOST_DEFAULT_VARIANTS})
+ set(BOOST_DEFAULT_VARIANTS)
+ foreach(VARIANT ${BOOST_DEFAULT_VARIANTS_ORIG})
+ foreach(FEATURE ${ARGN})
+ list(APPEND BOOST_DEFAULT_VARIANTS "${VARIANT}:${FEATURE}")
+ endforeach(FEATURE ${ARGN})
+ endforeach(VARIANT ${BOOST_DEFAULT_VARIANTS_ORIG})
+ set(BOOST_DEFAULT_VARIANTS_ORIG)
+ else (BOOST_DEFAULT_VARIANTS)
+ set(BOOST_DEFAULT_VARIANTS ${ARGN})
+ endif (BOOST_DEFAULT_VARIANTS)
+
+ # Set Feature flag options used by the boost_library macro and the
+ # BOOST_FEATURES variable
+ set(BOOST_DEFVAR_FEATURES)
+ foreach(FEATURE ${ARGN})
+ set(BOOST_ADD_ARG_NAMES
+ "${BOOST_ADD_ARG_NAMES};${FEATURE}_COMPILE_FLAGS;${FEATURE}_LINK_FLAGS;${FEATURE}_LINK_LIBS")
+ set(BOOST_ADDLIB_OPTION_NAMES "${BOOST_ADDLIB_OPTION_NAMES};NO_${FEATURE}")
+ set(BOOST_ADDEXE_OPTION_NAMES "${BOOST_ADDEXE_OPTION_NAMES};${FEATURE}")
+ if (BOOST_DEFVAR_FEATURES)
+ set(BOOST_DEFVAR_FEATURES "${BOOST_DEFVAR_FEATURES}:${FEATURE}")
+ else (BOOST_DEFVAR_FEATURES)
+ set(BOOST_DEFVAR_FEATURES "${FEATURE}")
+ endif (BOOST_DEFVAR_FEATURES)
+ endforeach(FEATURE ${ARGN})
+ list(APPEND BOOST_FEATURES ${BOOST_DEFVAR_FEATURES})
+endmacro(boost_add_default_variant)
+
+# Updates the set of "extra" build variants, which may be used to
+# generate extra, library-specific variants of libraries.
+#
+# boost_add_extra_variant(feature-val1 feature-val2 ...)
+#
+# Each extra viarant makes it possible for libraries to define extra
+# variants. For example, writing:
+#
+# boost_add_extra_variant(PYTHON_NODEBUG PYTHON_DEBUG)
+#
+# creates a PYTHON_NODEBUG/PYTHON_DEBUG feature pair as an extra
+# variant, used by the Boost.Python library, which generates separate
+# variants of the Boost.Python library: one variant uses the Python
+# debug libraries, the other does not.
+#
+# The difference between boost_add_default_variant and
+# boost_add_extra_variant is that adding a new default variant
+# introduces additional variants to *all* Boost libraries, unless
+# those variants are explicitly excluded by the library. Adding a new
+# extra variant, on the other hand, allows librarie to specifically
+# request extra variants using that feature.
+#
+# Variables affected:
+#
+# BOOST_FEATURES:
+# See boost_add_default_variant.
+#
+# BOOST_ADD_ARG_NAMES:
+# See boost_add_default_variant.
+#
+# BOOST_ADDLIB_OPTION_NAMES:
+# See boost_add_default_variant.
+#
+# BOOST_ADDEXE_OPTION_NAMES:
+# See boost_add_default_variant.
+macro(boost_add_extra_variant)
+ set(BOOST_EXTVAR_FEATURES)
+ foreach(FEATURE ${ARGN})
+ set(BOOST_ADD_ARG_NAMES
+ "${BOOST_ADD_ARG_NAMES};${FEATURE}_COMPILE_FLAGS;${FEATURE}_LINK_FLAGS;${FEATURE}_LINK_LIBS")
+ set(BOOST_ADDLIB_OPTION_NAMES "${BOOST_ADDLIB_OPTION_NAMES};NO_${FEATURE}")
+ set(BOOST_ADDEXE_OPTION_NAMES "${BOOST_ADDEXE_OPTION_NAMES};${FEATURE}")
+ if (BOOST_EXTVAR_FEATURES)
+ set(BOOST_EXTVAR_FEATURES "${BOOST_EXTVAR_FEATURES}:${FEATURE}")
+ else (BOOST_EXTVAR_FEATURES)
+ set(BOOST_EXTVAR_FEATURES "${FEATURE}")
+ endif (BOOST_EXTVAR_FEATURES)
+ endforeach(FEATURE ${ARGN})
+ list(APPEND BOOST_FEATURES ${BOOST_EXTVAR_FEATURES})
+endmacro(boost_add_extra_variant)
+
+# Creates a new Boost library target that generates a compiled library
+# (.a, .lib, .dll, .so, etc) from source files. This routine will
+# actually build several different variants of the same library, with
+# different compilation options, as determined by the set of "default"
+# library variants.
+#
+# boost_add_library(libname
+# source1 source2 ...
+# [COMPILE_FLAGS compileflags]
+# [feature_COMPILE_FLAGS compileflags]
+# [LINK_FLAGS linkflags]
+# [feature_LINK_FLAGS linkflags]
+# [LINK_LIBS linklibs]
+# [feature_LINK_LIBS linklibs]
+# [DEPENDS libdepend1 libdepend2 ...]
+# [STATIC_TAG]
+# [MODULE]
+# [NOT_feature]
+# [EXTRA_VARIANTS variant1 variant2 ...])
+#
+# where libname is the name of Boost library binary (e.g.,
+# "boost_regex") and source1, source2, etc. are the source files used
+# to build the library, e.g., cregex.cpp.
+#
+# This macro has a variety of options that affect its behavior. In
+# several cases, we use the placeholder "feature" in the option name
+# to indicate that there are actually several different kinds of
+# options, each referring to a different build feature, e.g., shared
+# libraries, multi-threaded, debug build, etc. For a complete listing
+# of these features, please refer to the CMakeLists.txt file in the
+# root of the Boost distribution, which defines the set of features
+# that will be used to build Boost libraries by default.
+#
+# The options that affect this macro's behavior are:
+#
+# COMPILE_FLAGS: Provides additional compilation flags that will be
+# used when building all variants of the library. For example, one
+# might want to add "-DBOOST_SIGNALS_NO_LIB=1" through this option
+# (which turns off auto-linking for the Signals library while
+# building it).
+#
+# feature_COMPILE_FLAGS: Provides additional compilation flags that
+# will be used only when building variants of the library that
+# include the given feature. For example,
+# MULTI_THREADED_COMPILE_FLAGS are additional flags that will be
+# used when building a multi-threaded variant, while
+# SHARED_COMPILE_FLAGS will be used when building a shared library
+# (as opposed to a static library).
+#
+# LINK_FLAGS: Provides additional flags that will be passed to the
+# linker when linking each variant of the library. This option
+# should not be used to link in additional libraries; see LINK_LIBS
+# and DEPENDS.
+#
+# feature_LINK_FLAGS: Provides additional flags that will be passed
+# to the linker when building variants of the library that contain a
+# specific feature, e.g., MULTI_THREADED_LINK_FLAGS. This option
+# should not be used to link in additional libraries; see
+# feature_LINK_LIBS.
+#
+# LINK_LIBS: Provides additional libraries against which each of the
+# library variants will be linked. For example, one might provide
+# "expat" as options to LINK_LIBS, to state that each of the library
+# variants will link against the expat library binary. Use LINK_LIBS
+# for libraries external to Boost; for Boost libraries, use DEPENDS.
+#
+# feature_LINK_LIBS: Provides additional libraries for specific
+# variants of the library to link against. For example,
+# MULTI_THREADED_LINK_LIBS provides extra libraries to link into
+# multi-threaded variants of the library.
+#
+# DEPENDS: States that this Boost library depends on and links
+# against another Boost library. The arguments to DEPENDS should be
+# the unversioned name of the Boost library, such as
+# "boost_filesystem". Like LINK_LIBS, this option states that all
+# variants of the library being built will link against the stated
+# libraries. Unlike LINK_LIBS, however, DEPENDS takes particular
+# library variants into account, always linking the variant of one
+# Boost library against the same variant of the other Boost
+# library. For example, if the boost_mpi_python library DEPENDS on
+# boost_python, multi-threaded variants of boost_mpi_python will
+# link against multi-threaded variants of boost_python.
+#
+# STATIC_TAG: States that the name of static library variants on
+# Unix need to be named differently from shared library
+# variants. This particular option should only be used in rare cases
+# where the static and shared library variants are incompatible,
+# such that linking against the shared library rather than the
+# static library will cause features. When this option is provided,
+# static libraries on Unix variants will have "-s" appended to their
+# names. Note: we hope that this is a temporary solution. At
+# present, it is only used by the Test library.
+#
+# MODULE: This option states that, when building a shared library,
+# the shared library should be built as a module rather than a
+# normal shared library. Modules have special meaning an behavior on
+# some platforms, such as Mac OS X.
+#
+# NOT_feature: States that library variants containing a particular
+# feature should not be built. For example, passing
+# NOT_SINGLE_THREADED suppresses generation of single-threaded
+# variants of this library.
+#
+# EXTRA_VARIANTS: Specifies that extra variants of this library
+# should be built, based on the features listed. Each "variant" is a
+# colon-separated list of features. For example, passing
+# EXTRA_VARIANTS "PYTHON_NODEBUG:PYTHON_DEBUG"
+# will result in the creation of an extra set of library variants,
+# some with the PYTHON_NODEBUG feature and some with the
+# PYTHON_DEBUG feature.
+#
+# Example:
+# boost_add_library(
+# boost_thread
+# barrier.cpp condition.cpp exceptions.cpp mutex.cpp once.cpp
+# recursive_mutex.cpp thread.cpp tss_hooks.cpp tss_dll.cpp tss_pe.cpp
+# tss.cpp xtime.cpp
+# SHARED_COMPILE_FLAGS "-DBOOST_THREAD_BUILD_DLL=1"
+# STATIC_COMPILE_FLAGS "-DBOOST_THREAD_BUILD_LIB=1"
+# NO_SINGLE_THREADED
+# )
+macro(boost_add_library LIBNAME)
+ parse_arguments(THIS_LIB
+ "DEPENDS;COMPILE_FLAGS;LINK_FLAGS;LINK_LIBS;EXTRA_VARIANTS;${BOOST_ADD_ARG_NAMES}"
+ "STATIC_TAG;MODULE;${BOOST_ADDLIB_OPTION_NAMES}"
+ ${ARGN}
+ )
+ set(THIS_LIB_SOURCES ${THIS_LIB_DEFAULT_ARGS})
+
+ # A top-level target that refers to all of the variants of the
+ # library, collectively.
+ add_custom_target(${LIBNAME})
+
+ if (THIS_LIB_EXTRA_VARIANTS)
+ # Build the set of variants that we will generate for this library
+ set(THIS_LIB_VARIANTS)
+ foreach(VARIANT ${BOOST_DEFAULT_VARIANTS})
+ foreach(EXTRA_VARIANT ${THIS_LIB_EXTRA_VARIANTS})
+ string(REPLACE ":" ";" FEATURES "${EXTRA_VARIANT}")
+ separate_arguments(FEATURES)
+ foreach(FEATURE ${FEATURES})
+ list(APPEND THIS_LIB_VARIANTS "${VARIANT}:${FEATURE}")
+ endforeach(FEATURE ${FEATURES})
+ endforeach(EXTRA_VARIANT ${THIS_LIB_EXTRA_VARIANTS})
+ endforeach(VARIANT ${BOOST_DEFAULT_VARIANTS})
+ else (THIS_LIB_EXTRA_VARIANTS)
+ set(THIS_LIB_VARIANTS ${BOOST_DEFAULT_VARIANTS})
+ endif (THIS_LIB_EXTRA_VARIANTS)
+
+ # Build each of the library variants
+ foreach(VARIANT_STR ${THIS_LIB_VARIANTS})
+ string(REPLACE ":" ";" VARIANT ${VARIANT_STR})
+ separate_arguments(VARIANT)
+ boost_library_variant(${LIBNAME} ${VARIANT})
+ endforeach(VARIANT_STR ${THIS_LIB_VARIANTS})
+endmacro(boost_add_library)
+
+# Creates a new executable from source files.
+#
+# boost_add_executable(exename
+# source1 source2 ...
+# [COMPILE_FLAGS compileflags]
+# [feature_COMPILE_FLAGS compileflags]
+# [LINK_FLAGS linkflags]
+# [feature_LINK_FLAGS linkflags]
+# [LINK_LIBS linklibs]
+# [feature_LINK_LIBS linklibs]
+# [DEPENDS libdepend1 libdepend2 ...]
+# [feature]
+# [NO_INSTALL])
+#
+# where exename is the name of the executable (e.g., "wave"). source1,
+# source2, etc. are the source files used to build the executable, e.g.,
+# cpp.cpp. If no source files are provided, "exename.cpp" will be
+# used.
+#
+# This macro has a variety of options that affect its behavior. In
+# several cases, we use the placeholder "feature" in the option name
+# to indicate that there are actually several different kinds of
+# options, each referring to a different build feature, e.g., shared
+# libraries, multi-threaded, debug build, etc. For a complete listing
+# of these features, please refer to the CMakeLists.txt file in the
+# root of the Boost distribution, which defines the set of features
+# that will be used to build Boost libraries by default.
+#
+# The options that affect this macro's behavior are:
+#
+# COMPILE_FLAGS: Provides additional compilation flags that will be
+# used when building the executable.
+#
+# feature_COMPILE_FLAGS: Provides additional compilation flags that
+# will be used only when building the executable with the given
+# feature (e.g., SHARED_COMPILE_FLAGS when we're linking against
+# shared libraries). Note that the set of features used to build the
+# executable depends both on the arguments given to
+# boost_add_executable (see the "feature" argument description,
+# below) and on the user's choice of variants to build.
+#
+# LINK_FLAGS: Provides additional flags that will be passed to the
+# linker when linking the executable. This option should not be used
+# to link in additional libraries; see LINK_LIBS and DEPENDS.
+#
+# feature_LINK_FLAGS: Provides additional flags that will be passed
+# to the linker when linking the executable with the given feature
+# (e.g., MULTI_THREADED_LINK_FLAGS when we're linking a
+# multi-threaded executable).
+#
+# LINK_LIBS: Provides additional libraries against which the
+# executable will be linked. For example, one might provide "expat"
+# as options to LINK_LIBS, to state that the executable will link
+# against the expat library binary. Use LINK_LIBS for libraries
+# external to Boost; for Boost libraries, use DEPENDS.
+#
+# feature_LINK_LIBS: Provides additional libraries to link against
+# when linking an executable built with the given feature.
+#
+# DEPENDS: States that this executable depends on and links against
+# a Boostlibrary. The arguments to DEPENDS should be the unversioned
+# name of the Boost library, such as "boost_filesystem". Like
+# LINK_LIBS, this option states that the executable will link
+# against the stated libraries. Unlike LINK_LIBS, however, DEPENDS
+# takes particular library variants into account, always linking to
+# the appropriate variant of a Boost library. For example, if the
+# MULTI_THREADED feature was requested in the call to
+# boost_add_executable, DEPENDS will ensure that we only link
+# against multi-threaded libraries.
+#
+# feature: States that the executable should always be built using a
+# given feature, e.g., SHARED linking (against its libraries) or
+# MULTI_THREADED (for multi-threaded builds). If that feature has
+# been turned off by the user, the executable will not build.
+#
+# NO_INSTALL: Don't install this executable with the rest of Boost.
+#
+# OUTPUT_NAME: If you want the executable to be generated somewhere
+# other than the binary directory, pass the path (including
+# directory and file name) via the OUTPUT_NAME parameter.
+#
+# Example:
+# boost_add_executable(wave cpp.cpp
+# DEPENDS boost_wave boost_program_options boost_filesystem
+# boost_serialization
+# )
+macro(boost_add_executable EXENAME)
+ # Note: ARGS is here to support the use of boost_add_executable in
+ # the testing code.
+ parse_arguments(THIS_EXE
+ "DEPENDS;COMPILE_FLAGS;LINK_FLAGS;LINK_LIBS;OUTPUT_NAME;ARGS;${BOOST_ADD_ARG_NAMES}"
+ "NO_INSTALL;${BOOST_ADDEXE_OPTION_NAMES}"
+ ${ARGN}
+ )
+
+ # Determine the list of sources
+ if (THIS_EXE_DEFAULT_ARGS)
+ set(THIS_EXE_SOURCES ${THIS_EXE_DEFAULT_ARGS})
+ else (THIS_EXE_DEFAULT_ARGS)
+ set(THIS_EXE_SOURCES ${EXENAME}.cpp)
+ endif (THIS_EXE_DEFAULT_ARGS)
+
+ # Whether we can build both debug and release versions of this
+ # executable within an IDE (based on the selected configuration
+ # type).
+ set(THIS_EXE_DEBUG_AND_RELEASE FALSE)
+
+ # Compute the variant that will be used to build this executable,
+ # taking into account both the requested features passed to
+ # boost_add_executable and what options the user has set.
+ set(THIS_EXE_OKAY TRUE)
+ set(THIS_EXE_VARIANT)
+
+ foreach(FEATURESET_STR ${BOOST_FEATURES})
+ string(REPLACE ":" ";" FEATURESET ${FEATURESET_STR})
+ separate_arguments(FEATURESET)
+ set(THIS_EXE_REQUESTED_FROM_SET FALSE)
+ foreach (FEATURE ${FEATURESET})
+ if (THIS_EXE_${FEATURE})
+ # Make this feature part of the variant
+ list(APPEND THIS_EXE_VARIANT ${FEATURE})
+ set(THIS_EXE_REQUESTED_FROM_SET TRUE)
+
+ # The caller has requested this particular feature be used
+ # when building the executable. If we can't satisfy that
+ # request (because the user has turned off the build variants
+ # with that feature), then we won't build this executable.
+ if (NOT BUILD_${FEATURE})
+ set(THIS_EXE_OKAY FALSE)
+ endif (NOT BUILD_${FEATURE})
+ endif (THIS_EXE_${FEATURE})
+ endforeach (FEATURE ${FEATURESET})
+
+ if (NOT THIS_EXE_REQUESTED_FROM_SET)
+ # The caller did not specify which feature value to use from
+ # this set, so find the first feature value that actually works.
+ set(THIS_EXE_FOUND_FEATURE FALSE)
+
+ # If this feature set decides between Release and Debug, we
+ # either query CMAKE_BUILD_TYPE to determine which to use (for
+ # makefile targets) or handle both variants separately (for IDE
+ # targets).
+ if (FEATURESET_STR STREQUAL "RELEASE:DEBUG")
+ if (CMAKE_CONFIGURATION_TYPES)
+ # IDE target: can we build both debug and release?
+ if (BUILD_DEBUG AND BUILD_RELEASE)
+ # Remember that we're capable of building both configurations
+ set(THIS_EXE_DEBUG_AND_RELEASE TRUE)
+
+ # Don't add RELEASE or DEBUG to the variant (yet)
+ set(THIS_EXE_FOUND_FEATURE TRUE)
+ endif (BUILD_DEBUG AND BUILD_RELEASE)
+ else (CMAKE_CONFIGURATION_TYPES)
+ # Makefile target: CMAKE_BUILD_TYPE tells us which variant to build
+ if (CMAKE_BUILD_TYPE STREQUAL "Release")
+ # Okay, build the release variant
+ list(APPEND THIS_EXE_VARIANT RELEASE)
+ set(THIS_EXE_FOUND_FEATURE TRUE)
+ elseif (CMAKE_BUILD_TYPE STREQUAL "Debug")
+ # Okay, build the debug variant
+ list(APPEND THIS_EXE_VARIANT DEBUG)
+ set(THIS_EXE_FOUND_FEATURE TRUE)
+ endif (CMAKE_BUILD_TYPE STREQUAL "Release")
+ endif (CMAKE_CONFIGURATION_TYPES)
+ endif (FEATURESET_STR STREQUAL "RELEASE:DEBUG")
+
+ # Search through all of the features in the set to find one that works
+ foreach (FEATURE ${FEATURESET})
+ # We only care about the first feature value we find...
+ if (NOT THIS_EXE_FOUND_FEATURE)
+ # Are we allowed to build this feature?
+ if (BUILD_${FEATURE})
+ # Found it: we're done
+ list(APPEND THIS_EXE_VARIANT ${FEATURE})
+ set(THIS_EXE_FOUND_FEATURE TRUE)
+ endif (BUILD_${FEATURE})
+ endif (NOT THIS_EXE_FOUND_FEATURE)
+ endforeach (FEATURE ${FEATURESET})
+
+ if (NOT THIS_EXE_FOUND_FEATURE)
+ # All of the features in this set were turned off.
+ # Just don't build anything.
+ set(THIS_EXE_OKAY FALSE)
+ endif (NOT THIS_EXE_FOUND_FEATURE)
+ endif (NOT THIS_EXE_REQUESTED_FROM_SET)
+ endforeach(FEATURESET_STR ${BOOST_FEATURES})
+
+ # Propagate flags from each of the features
+ if (THIS_EXE_OKAY)
+ foreach (FEATURE ${THIS_EXE_VARIANT})
+ # Add all of the flags for this feature
+ set(THIS_EXE_COMPILE_FLAGS
+ "${THIS_EXE_COMPILE_FLAGS} ${THIS_EXE_${FEATURE}_COMPILE_FLAGS} ${${FEATURE}_COMPILE_FLAGS}")
+ set(THIS_EXE_LINK_FLAGS
+ "${THIS_EXE_LINK_FLAGS} ${THIS_EXE_${FEATURE}_LINK_FLAGS} ${${FEATURE}_LINK_FLAGS} ${${FEATURE}_EXE_LINK_FLAGS}")
+ set(THIS_EXE_LINK_LIBS
+ ${THIS_EXE_LINK_LIBS} ${THIS_EXE_${FEATURE}_LINK_LIBS} ${${FEATURE}_LINK_LIBS})
+ endforeach (FEATURE ${THIS_EXE_VARIANT})
+
+ # Handle feature interactions
+ boost_feature_interactions("THIS_EXE" ${THIS_EXE_VARIANT})
+ endif (THIS_EXE_OKAY)
+
+ if (THIS_EXE_OKAY)
+ # Compute the name of the variant targets that we'll be linking
+ # against. We'll use this to link against the appropriate
+ # dependencies. For IDE targets where we can build both debug and
+ # release configurations, create DEBUG_ and RELEASE_ versions of
+ # the macros.
+ if (THIS_EXE_DEBUG_AND_RELEASE)
+ boost_library_variant_target_name(RELEASE ${THIS_EXE_VARIANT})
+ set(RELEASE_VARIANT_TARGET_NAME "${VARIANT_TARGET_NAME}")
+ boost_library_variant_target_name(DEBUG ${THIS_EXE_VARIANT})
+ set(DEBUG_VARIANT_TARGET_NAME "${VARIANT_TARGET_NAME}")
+ else (THIS_EXE_DEBUG_AND_RELEASE)
+ boost_library_variant_target_name(${THIS_EXE_VARIANT})
+ endif (THIS_EXE_DEBUG_AND_RELEASE)
+
+ # Compute the actual set of library dependencies, based on the
+ # variant name we computed above. The RELEASE and DEBUG versions
+ # only apply when THIS_EXE_DEBUG_AND_RELEASE.
+ set(THIS_EXE_ACTUAL_DEPENDS)
+ set(THIS_EXE_RELEASE_ACTUAL_DEPENDS)
+ set(THIS_EXE_DEBUG_ACTUAL_DEPENDS)
+ foreach(LIB ${THIS_EXE_DEPENDS})
+ if (LIB MATCHES ".*-.*")
+ # The user tried to state exactly which variant to use. Just
+ # propagate the dependency and hope that s/he was
+ # right. Eventually, this should at least warn, because it is
+ # not the "proper" way to do things
+ list(APPEND THIS_EXE_ACTUAL_DEPENDS ${LIB})
+ list(APPEND THIS_EXE_RELEASE_ACTUAL_DEPENDS ${LIB})
+ list(APPEND THIS_EXE_DEBUG_ACTUAL_DEPENDS ${LIB})
+ else (LIB MATCHES ".*-.*")
+ # The user has given the name of just the library target,
+ # e.g., "boost_filesystem". We add on the appropriate variant
+ # name(s).
+ list(APPEND THIS_EXE_ACTUAL_DEPENDS "${LIB}${VARIANT_TARGET_NAME}")
+ list(APPEND THIS_EXE_RELEASE_ACTUAL_DEPENDS "${LIB}${RELEASE_VARIANT_TARGET_NAME}")
+ list(APPEND THIS_EXE_DEBUG_ACTUAL_DEPENDS "${LIB}${DEBUG_VARIANT_TARGET_NAME}")
+ endif (LIB MATCHES ".*-.*")
+ endforeach(LIB ${THIS_EXE_DEPENDS})
+
+ # Build the executable
+ add_executable(${EXENAME} ${THIS_EXE_SOURCES})
+
+ # Set the various compilation and linking flags
+ set_target_properties(${EXENAME}
+ PROPERTIES
+ COMPILE_FLAGS "${THIS_EXE_COMPILE_FLAGS}"
+ LINK_FLAGS "${THIS_EXE_LINK_FLAGS}"
+ )
+
+ # For IDE generators where we can build both debug and release
+ # configurations, pass the configurations along separately.
+ if (THIS_EXE_DEBUG_AND_RELEASE)
+ set_target_properties(${EXENAME}
+ PROPERTIES
+ COMPILE_FLAGS_DEBUG "${DEBUG_COMPILE_FLAGS} ${THIS_EXE_COMPILE_FLAGS}"
+ COMPILE_FLAGS_RELEASE "${RELEASE_COMPILE_FLAGS} ${THIS_EXE_COMPILE_FLAGS}"
+ LINK_FLAGS_DEBUG "${DEBUG_LINK_FLAGS} ${DEBUG_EXE_LINK_FLAGS} ${THIS_EXE_LINK_FLAGS}"
+ LINK_FLAGS_RELEASE "${RELEASE_LINK_FLAGS} ${RELEASE_EXE_LINK_FLAGS} ${THIS_EXE_LINK_FLAGS}"
+ )
+ endif (THIS_EXE_DEBUG_AND_RELEASE)
+
+ # If the user gave an output name, use it.
+ if (THIS_EXE_OUTPUT_NAME)
+ set_target_properties(${EXENAME}
+ PROPERTIES
+ OUTPUT_NAME "${THIS_EXE_OUTPUT_NAME}"
+ )
+ endif (THIS_EXE_OUTPUT_NAME)
+
+ # Link against the various libraries
+ if (THIS_EXE_DEBUG_AND_RELEASE)
+ # Configuration-agnostic libraries
+ target_link_libraries(${EXENAME} ${THIS_EXE_LINK_LIBS})
+
+ # Link against libraries for "release" configuration
+ foreach(LIB ${THIS_EXE_RELEASE_ACTUAL_DEPENDS} ${THIS_EXE_RELEASE_LINK_LIBS})
+ target_link_libraries(${EXENAME} optimized ${LIB})
+ endforeach(LIB ${THIS_EXE_RELEASE_ACTUAL_DEPENDS} ${THIS_EXE_RELEASE_LINK_LIBS})
+
+ # Link against libraries for "debug" configuration
+ foreach(LIB ${THIS_EXE_DEBUG_ACTUAL_DEPENDS} ${THIS_EXE_DEBUG_LINK_LIBS})
+ target_link_libraries(${EXENAME} debug ${LIB})
+ endforeach(LIB ${THIS_EXE_DEBUG_ACTUAL_DEPENDS} ${THIS_EXE_DEBUG_LINK_LIBS})
+ else (THIS_EXE_DEBUG_AND_RELEASE)
+ target_link_libraries(${EXENAME}
+ ${THIS_EXE_ACTUAL_DEPENDS}
+ ${THIS_EXE_LINK_LIBS})
+ endif (THIS_EXE_DEBUG_AND_RELEASE)
+
+ # Install the executable, if not suppressed
+ if (NOT THIS_EXE_NO_INSTALL)
+ install(TARGETS ${EXENAME} DESTINATION bin)
+ endif (NOT THIS_EXE_NO_INSTALL)
+ endif (THIS_EXE_OKAY)
+endmacro(boost_add_executable)
\ No newline at end of file

Added: branches/CMake-release/tools/build/CMake/BoostTesting.cmake
==============================================================================
--- (empty file)
+++ branches/CMake-release/tools/build/CMake/BoostTesting.cmake 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,342 @@
+##########################################################################
+# Regression Testing Support for Boost #
+##########################################################################
+# Copyright (C) 2007 Douglas Gregor <doug.gregor_at_[hidden]> #
+# 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 #
+##########################################################################
+# This file provides a set of CMake macros that support regression
+# testing for Boost libraries. For each of the test macros below, the
+# first argument, testname, states the name of the test that will be
+# created. If no other arguments are provided, the source file
+# testname.cpp will be used as the source file; otherwise, source
+# files should be listed immediately after the name of the test.
+#
+# The macros for creating regression tests are:
+# boost_test_run: Builds an executable and runs it as a test. The test
+# succeeds if it builds and returns 0 when executed.
+#
+# boost_test_run_fail: Builds an executable and runs it as a test. The
+# test succeeds if it builds but returns a non-zero
+# exit code when executed.
+#
+# boost_test_compile: Tests that the given source file compiles without
+# any errors.
+#
+# boost_test_compile_fail: Tests that the given source file produces
+# errors when compiled.
+
+# User-controlled option that can be used to enable/disable regression
+# testing. By default, we disable testing, because most users won't
+# want or need to perform regression testing on Boost. The Boost build
+# is significantly faster when we aren't also building regression
+# tests.
+option(BUILD_TESTING "Enable testing" OFF)
+include(CTest)
+
+# This macro is an internal utility macro that helps parse the
+# arguments passed to the Boost testing commands. It will generally
+# not be used by Boost developers.
+#
+# boost_test_parse_args(testname
+# [source1 source2 ...]
+# [ARGS arg1 arg2... ]
+# [COMPILE_FLAGS compileflags]
+# [LINK_FLAGS linkflags]
+# [LINK_LIBS linklibs]
+# [DEPENDS libdepend1 libdepend2 ...])
+#
+# testname is the name of the test. The remaining arguments passed to
+# this macro will be parsed and categorized for the developer-level
+# test macros to use.
+#
+# Variables affected:
+#
+# BOOST_TEST_OKAY: Will be set to TRUE if it is okay to build and
+# run this test.
+#
+# BOOST_TEST_SOURCES: Will be populated with the set of source files
+# that should be used to compile this test. If the user has provided
+# source files, BOOST_TEST_SOURCES will contain those; otherwise,
+# BOOST_TEST_SOURCES will only contain "testname.cpp".
+#
+# BOOST_TEST_arg: Will be populated with the arguments provided for
+# the arguemnt "arg", where "arg" can be any of the extra arguments
+# specified above.
+macro(boost_test_parse_args testname)
+ set(BOOST_TEST_OKAY TRUE)
+ set(BOOST_TEST_COMPILE_FLAGS "")
+ parse_arguments(BOOST_TEST
+ "LINK_LIBS;LINK_FLAGS;DEPENDS;COMPILE_FLAGS;ARGS"
+ ""
+ ${ARGN}
+ )
+
+ # Check each of the dependencies to see if we can still build this
+ # test.
+ foreach(ARG ${BOOST_TEST_DEPENDS})
+ get_target_property(DEPEND_TYPE ${ARG} TYPE)
+ get_target_property(DEPEND_LOCATION ${ARG} LOCATION)
+ # If building static libraries is turned off, don't try to build
+ # the test
+ if (NOT BUILD_STATIC AND ${DEPEND_TYPE} STREQUAL "STATIC_LIBRARY")
+ set(BOOST_TEST_OKAY FALSE)
+ endif (NOT BUILD_STATIC AND ${DEPEND_TYPE} STREQUAL "STATIC_LIBRARY")
+
+ # If building shared libraries is turned off, don't try to build
+ # the test
+ if (NOT BUILD_SHARED AND ${DEPEND_TYPE} STREQUAL "SHARED_LIBRARY")
+ set(BOOST_TEST_OKAY FALSE)
+ endif (NOT BUILD_SHARED AND ${DEPEND_TYPE} STREQUAL "SHARED_LIBRARY")
+ endforeach(ARG ${BOOST_TEST_DEPENDS})
+
+ # Setup the SOURCES variables. If no sources are specified, use the
+ # name of the test.cpp
+ if (BOOST_TEST_DEFAULT_ARGS)
+ set(BOOST_TEST_SOURCES ${BOOST_TEST_DEFAULT_ARGS})
+ else (BOOST_TEST_DEFAULT_ARGS)
+ set(BOOST_TEST_SOURCES "${testname}.cpp")
+ endif (BOOST_TEST_DEFAULT_ARGS)
+
+ # If testing is turned off, this test is not okay
+ if (NOT BUILD_TESTING)
+ set(BOOST_TEST_OKAY FALSE)
+ endif(NOT BUILD_TESTING)
+endmacro(boost_test_parse_args)
+
+# This macro creates a Boost regression test that will be executed. If
+# the test can be built, executed, and exits with a return code of
+# zero, it will be considered to have passed.
+#
+# boost_test_run(testname
+# [source1 source2 ...]
+# [ARGS arg1 arg2... ]
+# [COMPILE_FLAGS compileflags]
+# [LINK_FLAGS linkflags]
+# [LINK_LIBS linklibs]
+# [DEPENDS libdepend1 libdepend2 ...])
+#
+# testname is the name of the test. source1, source2, etc. are the
+# source files that will be built and linked into the test
+# executable. If no source files are provided, the file "testname.cpp"
+# will be used instead.
+#
+# There are several optional arguments to control how the regression
+# test is built and executed:
+#
+# ARGS: Provides additional arguments that will be passed to the
+# test executable when it is run.
+#
+# COMPILE_FLAGS: Provides additional compilation flags that will be
+# used when building this test. For example, one might want to add
+# "-DBOOST_SIGNALS_ASSERT=1" to turn on assertions within the library.
+#
+# LINK_FLAGS: Provides additional flags that will be passed to the
+# linker when linking the test excecutable. This option should not
+# be used to link in additional libraries; see LINK_LIBS and
+# DEPENDS.
+#
+# LINK_LIBS: Provides additional libraries against which the test
+# executable will be linked. For example, one might provide "expat"
+# as options to LINK_LIBS, to state that this executable should be
+# linked against the external "expat" library. Use LINK_LIBS for
+# libraries external to Boost; for Boost libraries, use DEPENDS.
+#
+# DEPENDS: States that this test executable depends on and links
+# against another Boost library. The argument to DEPENDS should be
+# the name of a particular variant of a Boost library, e.g.,
+# boost_signals-static.
+#
+# Example:
+# boost_test_run(signal_test DEPENDS boost_signals-static)
+#
+# TODO:
+# - Improve handling of DEPENDS, so that we can specify just the
+# library's abstract target (e.g., "boost_signals"), and possibly
+# some features required for building the test (e.g.,
+# MULTI_THREADED, STATIC). The test macros should then pick the
+# best library variant available to meet those features and the
+# current build variant (Debug or Release).
+macro(boost_test_run testname)
+ if (BUILD_TESTING)
+ boost_add_executable(${testname} ${ARGN}
+ OUTPUT_NAME tests/${PROJECT_NAME}/${testname}
+ NO_INSTALL)
+ if (THIS_EXE_OKAY)
+ add_test("${PROJECT_NAME}::${testname}"
+ ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/tests/${PROJECT_NAME}/${testname}
+ ${THIS_EXE_ARGS})
+ endif (THIS_EXE_OKAY)
+ endif(BUILD_TESTING)
+endmacro(boost_test_run)
+
+# This macro creates a Boost regression test that will be executed. If
+# the test can be built, executed, and exits with a return code that
+# is not zero, it will be considered to have passed.
+#
+# boost_test_run_fail(testname
+# [source1 source2 ...]
+# [ARGS arg1 arg2... ]
+# [COMPILE_FLAGS compileflags]
+# [LINK_FLAGS linkflags]
+# [LINK_LIBS linklibs]
+# [DEPENDS libdepend1 libdepend2 ...])
+#
+# testname is the name of the test. source1, source2, etc. are the
+# source files that will be built and linked into the test
+# executable. If no source files are provided, the file "testname.cpp"
+# will be used instead.
+#
+# There are several optional arguments to control how the regression
+# test is built and executed:
+#
+# ARGS: Provides additional arguments that will be passed to the
+# test executable when it is run.
+#
+# COMPILE_FLAGS: Provides additional compilation flags that will be
+# used when building this test. For example, one might want to add
+# "-DBOOST_SIGNALS_ASSERT=1" to turn on assertions within the library.
+#
+# LINK_FLAGS: Provides additional flags that will be passed to the
+# linker when linking the test excecutable. This option should not
+# be used to link in additional libraries; see LINK_LIBS and
+# DEPENDS.
+#
+# LINK_LIBS: Provides additional libraries against which the test
+# executable will be linked. For example, one might provide "expat"
+# as options to LINK_LIBS, to state that this executable should be
+# linked against the external "expat" library. Use LINK_LIBS for
+# libraries external to Boost; for Boost libraries, use DEPENDS.
+#
+# DEPENDS: States that this test executable depends on and links
+# against another Boost library. The argument to DEPENDS should be
+# the name of a particular variant of a Boost library, e.g.,
+# boost_signals-static.
+#
+# Example:
+# boost_test_run_fail(prg_exec_fail1 DEPENDS boost_prg_exec_monitor-static)
+#
+# TODO:
+# - Improve handling of DEPENDS, so that we can specify just the
+# library's abstract target (e.g., "boost_signals"), and possibly
+# some features required for building the test (e.g.,
+# MULTI_THREADED, STATIC). The test macros should then pick the
+# best library variant available to meet those features and the
+# current build variant (Debug or Release).
+macro(boost_test_run_fail testname)
+ if (BUILD_TESTING)
+ boost_add_executable(${testname} ${ARGN}
+ OUTPUT_NAME tests/${PROJECT_NAME}/${testname}
+ NO_INSTALL)
+ if (THIS_EXE_OKAY)
+ add_test("${PROJECT_NAME}::${testname}"
+ ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/tests/${PROJECT_NAME}/${testname}
+ ${THIS_EXE_ARGS})
+ set_tests_properties("${PROJECT_NAME}::${testname}"
+ PROPERTIES WILL_FAIL TRUE)
+ endif (THIS_EXE_OKAY)
+ endif(BUILD_TESTING)
+endmacro(boost_test_run_fail)
+
+# Under construction...
+
+macro(boost_test_link testname)
+ boost_test_parse_args(${testname} ${ARGN})
+ if(BOOST_TEST_OKAY)
+ add_test("${PROJECT_NAME}::${testname}"
+ ${CMAKE_CTEST_COMMAND}
+ --build-and-test
+ "${Boost_SOURCE_DIR}/tools/build/CMake/LinkTest"
+ "${Boost_BINARY_DIR}/tools/build/CMake/LinkTest"
+ --build-generator "${CMAKE_GENERATOR}"
+ --build-makeprogram "${MAKEPROGRAM}"
+ --build-project LinkTest
+ --build-options -DSOURCE=${CMAKE_CURRENT_SOURCE_DIR}/${BOOST_TEST_SOURCES} -DINCLUDES=${Boost_SOURCE_DIR} -DCOMPILE_FLAGS="${BOOST_TEST_COMPILE_FLAGS}")
+ endif(BOOST_TEST_OKAY)
+endmacro(boost_test_link)
+
+# This macro creates a Boost regression test that will be compiled,
+# but not linked or executed. If the test can be compiled with no
+# failures, the test passes.
+#
+# boost_test_compile(testname
+# [source1]
+# [COMPILE_FLAGS compileflags])
+#
+# testname is the name of the test. source1 is the name of the source
+# file that will be built. If no source file is provided, the file
+# "testname.cpp" will be used instead.
+#
+# The COMPILE_FLAGS argument provides additional arguments that will
+# be passed to the compiler when building this test.
+
+# Example:
+# boost_test_compile(advance)
+macro(boost_test_compile testname)
+ boost_test_parse_args(${testname} ${ARGN})
+
+ # Determine the include directories to pass along to the underlying
+ # project.
+ get_directory_property(BOOST_TEST_INCLUDE_DIRS INCLUDE_DIRECTORIES)
+ set(BOOST_TEST_INCLUDES "")
+ foreach(DIR ${BOOST_TEST_INCLUDE_DIRS})
+ set(BOOST_TEST_INCLUDES "${BOOST_TEST_INCLUDES}:${DIR}")
+ endforeach(DIR ${BOOST_TEST_INCLUDE_DIRS})
+
+ if(BOOST_TEST_OKAY)
+ add_test("${PROJECT_NAME}::${testname}"
+ ${CMAKE_CTEST_COMMAND}
+ --build-and-test
+ "${Boost_SOURCE_DIR}/tools/build/CMake/CompileTest"
+ "${Boost_BINARY_DIR}/tools/build/CMake/CompileTest"
+ --build-generator "${CMAKE_GENERATOR}"
+ --build-makeprogram "${MAKEPROGRAM}"
+ --build-project CompileTest
+ --build-options -DSOURCE=${CMAKE_CURRENT_SOURCE_DIR}/${BOOST_TEST_SOURCES} -DINCLUDES=${BOOST_TEST_INCLUDES} -DCOMPILE_FLAGS=${BOOST_TEST_COMPILE_FLAGS})
+ endif(BOOST_TEST_OKAY)
+endmacro(boost_test_compile)
+
+# This macro creates a Boost regression test that will be compiled,
+# but compilation should fail. It is used to test, e.g., that certain
+# disallowed syntax does in fact cause a compilation failure.
+#
+# boost_test_compile_fail(testname
+# [source1]
+# [COMPILE_FLAGS compileflags])
+#
+# testname is the name of the test. source1 is the name of the source
+# file that will be built. If no source file is provided, the file
+# "testname.cpp" will be used instead.
+#
+# The COMPILE_FLAGS argument provides additional arguments that will
+# be passed to the compiler when building this test.
+
+# Example:
+# boost_test_compile_fail(function_test_fail1)
+macro(boost_test_compile_fail testname)
+ boost_test_parse_args(${testname} ${ARGN})
+
+ # Determine the include directories to pass along to the underlying
+ # project.
+ get_directory_property(BOOST_TEST_INCLUDE_DIRS INCLUDE_DIRECTORIES)
+ set(BOOST_TEST_INCLUDES "")
+ foreach(DIR ${BOOST_TEST_INCLUDE_DIRS})
+ set(BOOST_TEST_INCLUDES "${BOOST_TEST_INCLUDES}:${DIR}")
+ endforeach(DIR ${BOOST_TEST_INCLUDE_DIRS})
+
+ if(BOOST_TEST_OKAY)
+ add_test("${PROJECT_NAME}::${testname}"
+ ${CMAKE_CTEST_COMMAND}
+ --build-and-test
+ "${Boost_SOURCE_DIR}/tools/build/CMake/CompileTest"
+ "${Boost_BINARY_DIR}/tools/build/CMake/CompileTest"
+ --build-generator "${CMAKE_GENERATOR}"
+ --build-makeprogram "${MAKEPROGRAM}"
+ --build-project CompileTest
+ --build-options -DSOURCE=${CMAKE_CURRENT_SOURCE_DIR}/${BOOST_TEST_SOURCES} -DINCLUDES=${BOOST_TEST_INCLUDES} -DCOMPILE_FLAGS=${BOOST_TEST_COMPILE_FLAGS})
+ set_tests_properties("${PROJECT_NAME}::${testname}" PROPERTIES WILL_FAIL ON)
+ endif(BOOST_TEST_OKAY)
+endmacro(boost_test_compile_fail)

Added: branches/CMake-release/tools/build/CMake/BoostUtils.cmake
==============================================================================
--- (empty file)
+++ branches/CMake-release/tools/build/CMake/BoostUtils.cmake 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,104 @@
+##########################################################################
+# Boost Utilities #
+##########################################################################
+# Copyright (C) 2007 Douglas Gregor <doug.gregor_at_[hidden]> #
+# 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 #
+##########################################################################
+# Macros in this module: #
+# #
+# list_contains: Determine whether a string value is in a list. #
+# #
+# car: Return the first element in a list #
+# #
+# cdr: Return all but the first element in a list #
+# #
+# parse_arguments: Parse keyword arguments for use in other macros. #
+##########################################################################
+
+# This utility macro determines whether a particular string value
+# occurs within a list of strings:
+#
+# list_contains(result string_to_find arg1 arg2 arg3 ... argn)
+#
+# This macro sets the variable named by result equal to TRUE if
+# string_to_find is found anywhere in the following arguments.
+macro(list_contains var value)
+ set(${var})
+ foreach (value2 ${ARGN})
+ if (${value} STREQUAL ${value2})
+ set(${var} TRUE)
+ endif (${value} STREQUAL ${value2})
+ endforeach (value2)
+endmacro(list_contains)
+
+# This utility macro extracts the first argument from the list of
+# arguments given, and places it into the variable named var.
+#
+# car(var arg1 arg2 ...)
+macro(car var)
+ set(${var} ${ARGV1})
+endmacro(car)
+
+# This utility macro extracts all of the arguments given except the
+# first, and places them into the variable named var.
+#
+# car(var arg1 arg2 ...)
+macro(cdr var junk)
+ set(${var} ${ARGN})
+endmacro(cdr)
+
+# The PARSE_ARGUMENTS macro will take the arguments of another macro and
+# define several variables. The first argument to PARSE_ARGUMENTS is a
+# prefix to put on all variables it creates. The second argument is a
+# list of names, and the third argument is a list of options. Both of
+# these lists should be quoted. The rest of PARSE_ARGUMENTS are
+# arguments from another macro to be parsed.
+#
+# PARSE_ARGUMENTS(prefix arg_names options arg1 arg2...)
+#
+# For each item in options, PARSE_ARGUMENTS will create a variable with
+# that name, prefixed with prefix_. So, for example, if prefix is
+# MY_MACRO and options is OPTION1;OPTION2, then PARSE_ARGUMENTS will
+# create the variables MY_MACRO_OPTION1 and MY_MACRO_OPTION2. These
+# variables will be set to true if the option exists in the command line
+# or false otherwise.
+#
+# For each item in arg_names, PARSE_ARGUMENTS will create a variable
+# with that name, prefixed with prefix_. Each variable will be filled
+# with the arguments that occur after the given arg_name is encountered
+# up to the next arg_name or the end of the arguments. All options are
+# removed from these lists. PARSE_ARGUMENTS also creates a
+# prefix_DEFAULT_ARGS variable containing the list of all arguments up
+# to the first arg_name encountered.
+MACRO(PARSE_ARGUMENTS prefix arg_names option_names)
+ SET(DEFAULT_ARGS)
+ FOREACH(arg_name ${arg_names})
+ SET(${prefix}_${arg_name})
+ ENDFOREACH(arg_name)
+ FOREACH(option ${option_names})
+ SET(${prefix}_${option} FALSE)
+ ENDFOREACH(option)
+
+ SET(current_arg_name DEFAULT_ARGS)
+ SET(current_arg_list)
+ FOREACH(arg ${ARGN})
+ LIST_CONTAINS(is_arg_name ${arg} ${arg_names})
+ IF (is_arg_name)
+ SET(${prefix}_${current_arg_name} ${current_arg_list})
+ SET(current_arg_name ${arg})
+ SET(current_arg_list)
+ ELSE (is_arg_name)
+ LIST_CONTAINS(is_option ${arg} ${option_names})
+ IF (is_option)
+ SET(${prefix}_${arg} TRUE)
+ ELSE (is_option)
+ SET(current_arg_list ${current_arg_list} ${arg})
+ ENDIF (is_option)
+ ENDIF (is_arg_name)
+ ENDFOREACH(arg)
+ SET(${prefix}_${current_arg_name} ${current_arg_list})
+ENDMACRO(PARSE_ARGUMENTS)

Added: branches/CMake-release/tools/build/CMake/CompileTest/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/tools/build/CMake/CompileTest/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,5 @@
+project(CompileTest)
+string(REPLACE ":" ";" INCLUDE_PATHS ${INCLUDES})
+separate_arguments(INCLUDE_PATHS)
+include_directories (${INCLUDE_PATHS})
+add_library(compile STATIC "${SOURCE}")

Added: branches/CMake-release/tools/build/CMake/FindICU.cmake
==============================================================================
--- (empty file)
+++ branches/CMake-release/tools/build/CMake/FindICU.cmake 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,51 @@
+# Finds the International Components for Unicode (ICU) Library
+#
+# ICU_FOUND - True if ICU found.
+# ICU_I18N_FOUND - True if ICU's internationalization library found.
+# ICU_INCLUDE_DIRS - Directory to include to get ICU headers
+# Note: always include ICU headers as, e.g.,
+# unicode/utypes.h
+# ICU_LIBRARIES - Libraries to link against for the common ICU
+# ICU_I18N_LIBRARIES - Libraries to link against for ICU internationaliation
+# (note: in addition to ICU_LIBRARIES)
+
+# Look for the header file.
+find_path(
+ ICU_INCLUDE_DIR
+ NAMES unicode/utypes.h
+ DOC "Include directory for the ICU library")
+mark_as_advanced(ICU_INCLUDE_DIR)
+
+# Look for the library.
+find_library(
+ ICU_LIBRARY
+ NAMES icuuc cygicuuc cygicuuc32
+ DOC "Libraries to link against for the common parts of ICU")
+mark_as_advanced(ICU_LIBRARY)
+
+# Copy the results to the output variables.
+if(ICU_INCLUDE_DIR AND ICU_LIBRARY)
+ set(ICU_FOUND 1)
+ set(ICU_LIBRARIES ${ICU_LIBRARY})
+ set(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR})
+
+ # Look for the ICU internationalization libraries
+ find_library(
+ ICU_I18N_LIBRARY
+ NAMES icuin icui18n cygicuin cygicuin32
+ DOC "Libraries to link against for ICU internationalization")
+ mark_as_advanced(ICU_I18N_LIBRARY)
+ if (ICU_I18N_LIBRARY)
+ set(ICU_I18N_FOUND 1)
+ set(ICU_I18N_LIBRARIES ${ICU_I18N_LIBRARY})
+ else (ICU_I18N_LIBRARY)
+ set(ICU_I18N_FOUND 0)
+ set(ICU_I18N_LIBRARIES)
+ endif (ICU_I18N_LIBRARY)
+else(ICU_INCLUDE_DIR AND ICU_LIBRARY)
+ set(ICU_FOUND 0)
+ set(ICU_I18N_FOUND 0)
+ set(ICU_LIBRARIES)
+ set(ICU_I18N_LIBRARIES)
+ set(ICU_INCLUDE_DIRS)
+endif(ICU_INCLUDE_DIR AND ICU_LIBRARY)

Added: branches/CMake-release/tools/build/CMake/LinkTest/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/tools/build/CMake/LinkTest/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,3 @@
+project(LinkTest)
+include_directories (${INCLUDES})
+add_executable(link ${SOURCE} COMPILE_FLAGS "${COMPILE_FLAGS}")

Added: branches/CMake-release/tools/quickbook/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/tools/quickbook/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,11 @@
+if (MSVC)
+ add_definitions(/wd4511 /wd4512 /wd4701 /wd4702 /wd4244 /wd4267 /wd4800)
+endif (MSVC)
+
+boost_add_executable(quickbook
+ detail/quickbook.cpp
+ detail/actions.cpp
+ detail/utils.cpp
+ detail/post_process.cpp
+ DEPENDS boost_program_options boost_filesystem
+ )

Added: branches/CMake-release/tools/wave/CMakeLists.txt
==============================================================================
--- (empty file)
+++ branches/CMake-release/tools/wave/CMakeLists.txt 2008-03-04 12:52:46 EST (Tue, 04 Mar 2008)
@@ -0,0 +1,3 @@
+boost_add_executable(wave cpp.cpp
+ DEPENDS boost_wave boost_program_options boost_filesystem boost_serialization
+ )


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk