$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r49510 - in trunk: . doc doc/src libs libs/accumulators libs/accumulators/doc libs/accumulators/example libs/accumulators/test libs/algorithm libs/algorithm/minmax/test libs/algorithm/string/test libs/any libs/any/test libs/array libs/array/test libs/asio libs/assign libs/assign/test libs/bimap libs/bimap/test libs/bind libs/bind/test libs/circular_buffer libs/circular_buffer/test libs/compatibility libs/concept libs/concept_check libs/concept_check/test libs/config libs/config/test libs/conversion libs/conversion/test libs/crc libs/crc/test libs/date_time libs/date_time/src libs/date_time/test libs/detail libs/disjoint_sets libs/disjoint_sets/test libs/dynamic_bitset libs/dynamic_bitset/test libs/exception libs/exception/test libs/filesystem libs/filesystem/src libs/filesystem/test libs/foreach libs/foreach/test libs/format libs/format/test libs/function libs/function/doc libs/function/test libs/function_types libs/function_types/test libs/functional libs/functional/hash/doc libs/functional/hash/examples libs/functional/hash/test libs/functional/test libs/fusion libs/gil libs/gil/test libs/graph libs/graph/src libs/graph/test libs/integer libs/integer/test libs/interprocess libs/interprocess/test libs/intrusive libs/io libs/io/test libs/iostreams libs/iostreams/src libs/iostreams/test libs/iterator libs/iterator/test libs/lambda libs/lambda/test libs/logic libs/logic/test libs/math libs/math/test libs/mpi libs/mpi/doc libs/mpi/src libs/mpi/test libs/mpl libs/mpl/test libs/multi_array libs/multi_array/test libs/multi_index libs/multi_index/test libs/numeric libs/numeric/conversion/test libs/numeric/interval/test libs/numeric/ublas/test libs/optional libs/optional/test libs/parameter libs/parameter/test libs/pool libs/pool/test libs/preprocessor libs/preprocessor/test libs/program_options libs/program_options/src libs/program_options/test libs/property_map libs/property_map/test libs/property_tree libs/proto libs/ptr_container libs/ptr_container/test libs/python libs/python/src libs/python/test libs/random libs/random/test libs/range libs/range/doc libs/range/test libs/rational libs/rational/test libs/regex libs/regex/src libs/regex/test libs/serialization libs/serialization/src libs/serialization/test libs/signals libs/signals/src libs/signals/test libs/smart_ptr libs/smart_ptr/test libs/spirit libs/spirit/test libs/statechart libs/statechart/example libs/statechart/test libs/static_assert libs/static_assert/test libs/system libs/system/src libs/test libs/test/src libs/test/test libs/thread libs/thread/src libs/thread/test libs/timer libs/timer/test libs/tokenizer libs/tokenizer/test libs/tr1 libs/tr1/test libs/tuple libs/tuple/test libs/type_traits libs/type_traits/test libs/typeof libs/typeof/test libs/units libs/units/doc libs/units/test libs/unordered libs/utility libs/utility/test libs/variant libs/variant/test libs/wave libs/wave/src libs/wave/test libs/xpressive libs/xpressive/test tools tools/bcp tools/build/CMake tools/quickbook tools/wave
From: mike.jackson_at_[hidden]
Date: 2008-11-01 09:15:59
Author: imikejackson
Date: 2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
New Revision: 49510
URL: http://svn.boost.org/trac/boost/changeset/49510
Log:
Continuing merge of CMake build system files into trunk with the encouragement of Doug Gregor
Added:
   trunk/README.txt   (contents, props changed)
   trunk/Welcome.txt   (contents, props changed)
   trunk/doc/CMakeLists.txt   (contents, props changed)
   trunk/doc/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/CMakeLists.txt   (contents, props changed)
   trunk/libs/accumulators/CMakeLists.txt   (contents, props changed)
   trunk/libs/accumulators/doc/CMakeLists.txt   (contents, props changed)
   trunk/libs/accumulators/example/CMakeLists.txt   (contents, props changed)
   trunk/libs/accumulators/module.cmake   (contents, props changed)
   trunk/libs/accumulators/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/algorithm/CMakeLists.txt   (contents, props changed)
   trunk/libs/algorithm/minmax/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/algorithm/module.cmake   (contents, props changed)
   trunk/libs/algorithm/string/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/any/CMakeLists.txt   (contents, props changed)
   trunk/libs/any/module.cmake   (contents, props changed)
   trunk/libs/any/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/array/CMakeLists.txt   (contents, props changed)
   trunk/libs/array/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/asio/CMakeLists.txt   (contents, props changed)
   trunk/libs/assign/CMakeLists.txt   (contents, props changed)
   trunk/libs/assign/module.cmake   (contents, props changed)
   trunk/libs/assign/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/bimap/CMakeLists.txt   (contents, props changed)
   trunk/libs/bimap/module.cmake   (contents, props changed)
   trunk/libs/bimap/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/bind/CMakeLists.txt   (contents, props changed)
   trunk/libs/bind/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/circular_buffer/CMakeLists.txt   (contents, props changed)
   trunk/libs/circular_buffer/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/compatibility/CMakeLists.txt   (contents, props changed)
   trunk/libs/concept/
   trunk/libs/concept/CMakeLists.txt   (contents, props changed)
   trunk/libs/concept/module.cmake   (contents, props changed)
   trunk/libs/concept_check/CMakeLists.txt   (contents, props changed)
   trunk/libs/concept_check/module.cmake   (contents, props changed)
   trunk/libs/concept_check/test/
   trunk/libs/concept_check/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/config/CMakeLists.txt   (contents, props changed)
   trunk/libs/config/module.cmake   (contents, props changed)
   trunk/libs/config/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/conversion/CMakeLists.txt   (contents, props changed)
   trunk/libs/conversion/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/crc/CMakeLists.txt   (contents, props changed)
   trunk/libs/crc/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/date_time/CMakeLists.txt   (contents, props changed)
   trunk/libs/date_time/module.cmake   (contents, props changed)
   trunk/libs/date_time/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/date_time/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/detail/CMakeLists.txt   (contents, props changed)
   trunk/libs/detail/module.cmake   (contents, props changed)
   trunk/libs/disjoint_sets/CMakeLists.txt   (contents, props changed)
   trunk/libs/disjoint_sets/test/
   trunk/libs/disjoint_sets/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/dynamic_bitset/CMakeLists.txt   (contents, props changed)
   trunk/libs/dynamic_bitset/test/
   trunk/libs/dynamic_bitset/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/exception/CMakeLists.txt   (contents, props changed)
   trunk/libs/exception/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/filesystem/CMakeLists.txt   (contents, props changed)
   trunk/libs/filesystem/module.cmake   (contents, props changed)
   trunk/libs/filesystem/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/filesystem/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/foreach/CMakeLists.txt   (contents, props changed)
   trunk/libs/foreach/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/format/CMakeLists.txt   (contents, props changed)
   trunk/libs/format/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/function/CMakeLists.txt   (contents, props changed)
   trunk/libs/function/doc/CMakeLists.txt   (contents, props changed)
   trunk/libs/function/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/function_types/CMakeLists.txt   (contents, props changed)
   trunk/libs/function_types/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/functional/CMakeLists.txt   (contents, props changed)
   trunk/libs/functional/hash/doc/CMakeLists.txt   (contents, props changed)
   trunk/libs/functional/hash/examples/CMakeLists.txt   (contents, props changed)
   trunk/libs/functional/hash/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/functional/module.cmake   (contents, props changed)
   trunk/libs/functional/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/fusion/CMakeLists.txt   (contents, props changed)
   trunk/libs/gil/CMakeLists.txt   (contents, props changed)
   trunk/libs/gil/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/graph/CMakeLists.txt   (contents, props changed)
   trunk/libs/graph/module.cmake   (contents, props changed)
   trunk/libs/graph/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/graph/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/integer/CMakeLists.txt   (contents, props changed)
   trunk/libs/integer/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/interprocess/CMakeLists.txt   (contents, props changed)
   trunk/libs/interprocess/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/intrusive/CMakeLists.txt   (contents, props changed)
   trunk/libs/io/CMakeLists.txt   (contents, props changed)
   trunk/libs/io/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/iostreams/CMakeLists.txt   (contents, props changed)
   trunk/libs/iostreams/module.cmake   (contents, props changed)
   trunk/libs/iostreams/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/iostreams/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/iterator/CMakeLists.txt   (contents, props changed)
   trunk/libs/iterator/module.cmake   (contents, props changed)
   trunk/libs/iterator/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/lambda/CMakeLists.txt   (contents, props changed)
   trunk/libs/lambda/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/logic/CMakeLists.txt   (contents, props changed)
   trunk/libs/logic/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/math/CMakeLists.txt   (contents, props changed)
   trunk/libs/math/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/mpi/CMakeLists.txt   (contents, props changed)
   trunk/libs/mpi/doc/CMakeLists.txt   (contents, props changed)
   trunk/libs/mpi/module.cmake   (contents, props changed)
   trunk/libs/mpi/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/mpi/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/mpl/CMakeLists.txt   (contents, props changed)
   trunk/libs/mpl/module.cmake   (contents, props changed)
   trunk/libs/mpl/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/multi_array/CMakeLists.txt   (contents, props changed)
   trunk/libs/multi_array/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/multi_index/CMakeLists.txt   (contents, props changed)
   trunk/libs/multi_index/module.cmake   (contents, props changed)
   trunk/libs/multi_index/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/numeric/CMakeLists.txt   (contents, props changed)
   trunk/libs/numeric/conversion/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/numeric/interval/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/numeric/ublas/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/optional/CMakeLists.txt   (contents, props changed)
   trunk/libs/optional/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/parameter/CMakeLists.txt   (contents, props changed)
   trunk/libs/parameter/module.cmake   (contents, props changed)
   trunk/libs/parameter/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/pool/CMakeLists.txt   (contents, props changed)
   trunk/libs/pool/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/preprocessor/CMakeLists.txt   (contents, props changed)
   trunk/libs/preprocessor/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/program_options/CMakeLists.txt   (contents, props changed)
   trunk/libs/program_options/module.cmake   (contents, props changed)
   trunk/libs/program_options/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/program_options/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/property_map/CMakeLists.txt   (contents, props changed)
   trunk/libs/property_map/module.cmake   (contents, props changed)
   trunk/libs/property_map/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/property_tree/CMakeLists.txt   (contents, props changed)
   trunk/libs/proto/CMakeLists.txt   (contents, props changed)
   trunk/libs/ptr_container/CMakeLists.txt   (contents, props changed)
   trunk/libs/ptr_container/module.cmake   (contents, props changed)
   trunk/libs/ptr_container/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/python/CMakeLists.txt   (contents, props changed)
   trunk/libs/python/module.cmake   (contents, props changed)
   trunk/libs/python/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/python/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/random/CMakeLists.txt   (contents, props changed)
   trunk/libs/random/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/range/CMakeLists.txt   (contents, props changed)
   trunk/libs/range/doc/CMakeLists.txt   (contents, props changed)
   trunk/libs/range/module.cmake   (contents, props changed)
   trunk/libs/range/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/rational/CMakeLists.txt   (contents, props changed)
   trunk/libs/rational/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/regex/CMakeLists.txt   (contents, props changed)
   trunk/libs/regex/module.cmake   (contents, props changed)
   trunk/libs/regex/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/regex/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/serialization/CMakeLists.txt   (contents, props changed)
   trunk/libs/serialization/module.cmake   (contents, props changed)
   trunk/libs/serialization/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/serialization/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/signals/CMakeLists.txt   (contents, props changed)
   trunk/libs/signals/module.cmake   (contents, props changed)
   trunk/libs/signals/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/signals/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/smart_ptr/CMakeLists.txt   (contents, props changed)
   trunk/libs/smart_ptr/module.cmake   (contents, props changed)
   trunk/libs/smart_ptr/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/spirit/CMakeLists.txt   (contents, props changed)
   trunk/libs/spirit/module.cmake   (contents, props changed)
   trunk/libs/spirit/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/statechart/CMakeLists.txt   (contents, props changed)
   trunk/libs/statechart/example/CMakeLists.txt   (contents, props changed)
   trunk/libs/statechart/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/static_assert/CMakeLists.txt   (contents, props changed)
   trunk/libs/static_assert/test/
   trunk/libs/static_assert/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/system/CMakeLists.txt   (contents, props changed)
   trunk/libs/system/module.cmake   (contents, props changed)
   trunk/libs/system/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/test/module.cmake   (contents, props changed)
   trunk/libs/test/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/test/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/thread/CMakeLists.txt   (contents, props changed)
   trunk/libs/thread/module.cmake   (contents, props changed)
   trunk/libs/thread/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/thread/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/timer/CMakeLists.txt   (contents, props changed)
   trunk/libs/timer/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/tokenizer/CMakeLists.txt   (contents, props changed)
   trunk/libs/tokenizer/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/tr1/CMakeLists.txt   (contents, props changed)
   trunk/libs/tr1/module.cmake   (contents, props changed)
   trunk/libs/tr1/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/tuple/CMakeLists.txt   (contents, props changed)
   trunk/libs/tuple/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/type_traits/CMakeLists.txt   (contents, props changed)
   trunk/libs/type_traits/module.cmake   (contents, props changed)
   trunk/libs/type_traits/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/typeof/CMakeLists.txt   (contents, props changed)
   trunk/libs/typeof/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/units/CMakeLists.txt   (contents, props changed)
   trunk/libs/units/doc/CMakeLists.txt   (contents, props changed)
   trunk/libs/units/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/unordered/CMakeLists.txt   (contents, props changed)
   trunk/libs/utility/CMakeLists.txt   (contents, props changed)
   trunk/libs/utility/module.cmake   (contents, props changed)
   trunk/libs/utility/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/variant/CMakeLists.txt   (contents, props changed)
   trunk/libs/variant/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/wave/CMakeLists.txt   (contents, props changed)
   trunk/libs/wave/module.cmake   (contents, props changed)
   trunk/libs/wave/src/CMakeLists.txt   (contents, props changed)
   trunk/libs/wave/test/CMakeLists.txt   (contents, props changed)
   trunk/libs/xpressive/CMakeLists.txt   (contents, props changed)
   trunk/libs/xpressive/module.cmake   (contents, props changed)
   trunk/libs/xpressive/test/CMakeLists.txt   (contents, props changed)
   trunk/tools/CMakeLists.txt   (contents, props changed)
   trunk/tools/bcp/CMakeLists.txt   (contents, props changed)
   trunk/tools/build/CMake/
   trunk/tools/build/CMake/BoostBuildSlave.cmake   (contents, props changed)
   trunk/tools/build/CMake/BoostConfig.cmake   (contents, props changed)
   trunk/tools/build/CMake/BoostCore.cmake   (contents, props changed)
   trunk/tools/build/CMake/BoostDocs.cmake   (contents, props changed)
   trunk/tools/build/CMake/BoostTesting.cmake   (contents, props changed)
   trunk/tools/build/CMake/BoostUtils.cmake   (contents, props changed)
   trunk/tools/build/CMake/FindICU.cmake   (contents, props changed)
   trunk/tools/build/CMake/boost_build_slave.py.in   (contents, props changed)
   trunk/tools/build/CMake/catalog.xml.in   (contents, props changed)
   trunk/tools/build/CMake/classify.py.in   (contents, props changed)
   trunk/tools/build/CMake/finish.py.in   (contents, props changed)
   trunk/tools/build/CMake/info.py.in   (contents, props changed)
   trunk/tools/build/CMake/marshal.py.in   (contents, props changed)
   trunk/tools/build/CMake/passthru.py.in   (contents, props changed)
   trunk/tools/build/CMake/post.py.in   (contents, props changed)
   trunk/tools/build/CMake/run_continuous_slave.py.in   (contents, props changed)
   trunk/tools/build/CMake/start.py.in   (contents, props changed)
   trunk/tools/build/CMake/unix_kill.py.in   (contents, props changed)
   trunk/tools/build/CMake/windows_kill.py.in   (contents, props changed)
   trunk/tools/quickbook/CMakeLists.txt   (contents, props changed)
   trunk/tools/wave/CMakeLists.txt   (contents, props changed)
Added: trunk/README.txt
==============================================================================
--- (empty file)
+++ trunk/README.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/Welcome.txt
==============================================================================
--- (empty file)
+++ trunk/Welcome.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/doc/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/doc/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,3 @@
+if (BUILD_DOCUMENTATION)
+  add_subdirectory(src)
+endif ()
Added: trunk/doc/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/doc/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,13 @@
+if (BUILD_DOCUMENTATION_HTML)
+  # Install style sheets and the main Boost logo
+  install(FILES boostbook.css docutils.css reference.css ../../boost.png
+    DESTINATION share/boost-${BOOST_VERSION}/html)
+
+  # Install images
+  install(DIRECTORY images
+    DESTINATION share/boost-${BOOST_VERSION}/html
+    COMPONENT Core
+    PATTERN "CVS" EXCLUDE
+    PATTERN ".svn" EXCLUDE)
+endif ()
+
Added: trunk/libs/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,52 @@
+# Find each subdirectory containing a CMakeLists.txt file, and include
+# it. This avoids the need to manually list which libraries in Boost
+# have CMakeLists.txt files.
+
+# return a list of directories that we should add_subdirectory()
+macro(BOOST_COLLECT_SUBPROJECT_DIRECTORY_NAMES varname filename)
+  file(GLOB BOOST_LIBRARY_CMAKE_FILES 
+    RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "*/${filename}")
+  foreach(BOOST_LIB_CMAKE_FILE ${BOOST_LIBRARY_CMAKE_FILES})
+    get_filename_component(BOOST_LIB_DIR ${BOOST_LIB_CMAKE_FILE} PATH)
+    set(${varname} ${${varname}} ${BOOST_LIB_DIR})
+  endforeach(BOOST_LIB_CMAKE_FILE ${BOOST_LIBRARY_CMAKE_FILES})
+endmacro(BOOST_COLLECT_SUBPROJECT_DIRECTORY_NAMES varname)
+
+macro(ADD_SUBDIRECTORIES prefix)
+  foreach(subdir ${ARGN})
+    message(STATUS "${prefix}${subdir}")
+    add_subdirectory(${subdir})
+  endforeach(subdir ${ARGN})
+endmacro(ADD_SUBDIRECTORIES prefix)
+
+# Find all of the subdirectories with .cmake files in them. These are
+# the libraries with dependencies.
+boost_collect_subproject_directory_names(BOOST_MODULE_DIRS "module.cmake")
+foreach(subdir ${BOOST_MODULE_DIRS})
+  include("${CMAKE_CURRENT_SOURCE_DIR}/${subdir}/module.cmake")
+endforeach(subdir)
+
+# Find all of the subdirectories with CMakeLists.txt files in
+# them. This contains all of the Boost libraries.
+boost_collect_subproject_directory_names(BOOST_SUBPROJECT_DIRS "CMakeLists.txt")
+
+# Add all of the Boost projects in reverse topological order, so that
+# a library's dependencies show up before the library itself.
+set(CPACK_INSTALL_CMAKE_COMPONENTS_ALL)
+list(SORT BOOST_SUBPROJECT_DIRS)
+topological_sort(BOOST_SUBPROJECT_DIRS BOOST_ _DEPENDS)
+add_subdirectories(" + " ${BOOST_SUBPROJECT_DIRS})
+
+# Write out a GraphViz file containing inter-library dependencies. 
+set(BOOST_DEPENDENCY_GRAPHVIZ_FILE "${Boost_BINARY_DIR}/dependencies.dot")
+file(WRITE ${BOOST_DEPENDENCY_GRAPHVIZ_FILE} "digraph boost {\n")
+foreach(SUBDIR ${BOOST_SUBPROJECT_DIRS})
+  string(TOUPPER "BOOST_${SUBDIR}_DEPENDS" DEPENDS_VAR)
+  if(DEFINED ${DEPENDS_VAR})
+    foreach(DEP ${${DEPENDS_VAR}})
+      file(APPEND ${BOOST_DEPENDENCY_GRAPHVIZ_FILE} 
+        "  \"${SUBDIR}\" -> \"${DEP}\";\n")
+    endforeach()
+  endif()
+endforeach()
+file(APPEND ${BOOST_DEPENDENCY_GRAPHVIZ_FILE} "}\n")
Added: trunk/libs/accumulators/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/accumulators/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    accumulators
+)
+
+# Add a library target to the build system
+boost_library_project(
+  accumulators
+  SRCDIRS  example doc 
+  TESTDIRS  test 
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "A framework for incremental calculation, and a collection of statistical accumulators."
+  MODULARIZED
+  AUTHORS  "Eric Niebler <eric -at- boost-consulting.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/accumulators/doc/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/accumulators/doc/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,2 @@
+message(STATUS "accumulators/docs needs love")
+
Added: trunk/libs/accumulators/example/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/accumulators/example/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,4 @@
+boost_add_executable(accumulators_example 
+  main.cpp
+  )
+
Added: trunk/libs/accumulators/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/accumulators/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(accumulators DEPENDS parameter range typeof foreach)
\ No newline at end of file
Added: trunk/libs/accumulators/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/accumulators/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,79 @@
+# (C) Copyright 2005: Eric Niebler
+# 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)
+
+# bring in rules for testing
+#import testing ;
+#import feature ;
+
+#feature.feature iterator_debugging
+#  : on off
+# : composite propagated optional
+#  ;
+
+#feature.compose <iterator_debugging>off
+#  : <define>_HAS_ITERATOR_DEBUGGING=0
+#  ;
+
+# project
+#     : requirements
+#       <library>/boost/test//boost_unit_test_framework
+#       <link>static
+#       <include>../../..
+#       <toolset>msvc:<define>_SCL_SECURE_NO_DEPRECATE
+#       # MSVC's iterator debugging causes some tests to run forever.
+#       <toolset>msvc:<iterator_debugging>off
+#       <toolset>intel-win:<iterator_debugging>off
+#     ;
+
+set(TESTS 
+count
+covariance
+droppable
+error_of
+extended_p_square
+extended_p_square_quantile
+external_accumulator
+external_weights
+kurtosis
+max
+mean
+median
+min
+moment
+pot_quantile
+p_square_cumulative_distribution
+p_square_quantile
+reference
+skewness
+sum
+tail
+tail_mean
+tail_quantile
+tail_variate_means
+valarray
+variance
+vector
+weighted_covariance
+weighted_extended_p_square
+weighted_kurtosis
+weighted_mean
+weighted_median
+weighted_moment
+weighted_p_square_cum_dist
+weighted_p_square_quantile
+weighted_skewness
+weighted_sum
+weighted_variance
+weighted_pot_quantile
+weighted_tail_mean
+weighted_tail_quantile
+weighted_tail_variate_means)
+
+foreach(TEST ${TESTS})
+  boost_test_run(${TEST} DEPENDS boost_unit_test_framework boost_serialization)
+endforeach(TEST ${TESTS})
+
+if(WIN32)
+  message("Need to turn on iterator debugging")
+endif(WIN32)
\ No newline at end of file
Added: trunk/libs/algorithm/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/algorithm/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    algorithm
+)
+
+# Add a library target to the build system
+boost_library_project(
+  algorithm
+  #  SRCDIRS 
+  TESTDIRS  minmax/test string/test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "A library of various algorithms."
+  MODULARIZED
+  AUTHORS  "Pavol Droba <droba -at- topmail.sk>"
+           "Herve Bronnimann <hbr -at- poly.edu>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/algorithm/minmax/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/algorithm/minmax/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,8 @@
+#-------------------------------------------------------------------------
+#-- Needed include directories for the tests
+boost_test_add_dependent_includes("utility;detail;config;test;mpl;bind;type_traits;static_assert;preprocessor;array;iterator;timer;tuple;range")
+#-------------------------------------------------------------------------
+
+
+boost_test_run(minmax_element_test)
+boost_test_run(minmax_test)
Added: trunk/libs/algorithm/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/algorithm/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(algorithm DEPENDS regex concept_check)
\ No newline at end of file
Added: trunk/libs/algorithm/string/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/algorithm/string/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,16 @@
+#-------------------------------------------------------------------------
+#-- Needed include directories for the tests
+boost_test_add_dependent_includes("utility;detail;config;test;mpl;bind;type_traits;static_assert;preprocessor;array;iterator;exception;range;timer")
+#-------------------------------------------------------------------------
+
+
+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: trunk/libs/any/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/any/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    any.hpp
+)
+
+# Add a library target to the build system
+boost_library_project(
+  any
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Safe, generic container for single values of different value types."
+  MODULARIZED 
+  AUTHORS  "Kevlin Henney"
+  MAINTAINERS  "Alexander Nasonov <alexander.nasonov -at- gmail.com>"
+)
+
+
Added: trunk/libs/any/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/any/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(any DEPENDS utility)
\ No newline at end of file
Added: trunk/libs/any/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/any/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,3 @@
+boost_test_run(any_test ../any_test.cpp)
+boost_test_compile_fail(any_cast_cv_failed)
+
Added: trunk/libs/array/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/array/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    array.hpp
+)
+
+# Add a library target to the build system
+boost_library_project(
+  array
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "STL compliant container wrapper for arrays of constant size."
+  MODULARIZED 
+  AUTHORS  "Nicolai Josuttis"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/array/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/array/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/asio/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/asio/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    asio.hpp
+    asio
+)
+
+# Add a library target to the build system
+boost_library_project(
+  asio
+  #  SRCDIRS 
+  #  TESTDIRS 
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Portable networking, including sockets, timers, hostname resolution and socket iostreams."
+  MODULARIZED
+  AUTHORS  "Chris Kohlhoff <chris -at- kohlhoff.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/assign/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/assign/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    assign
+    assign.hpp
+)
+
+# Add a library target to the build system
+boost_library_project(
+  assign
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Filling containers with constant or generated data has never been easier."
+  MODULARIZED 
+  AUTHORS  "Thorsten Ottosen <nesotto -at- cs.auc.dk>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/assign/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/assign/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(assign DEPENDS ptr_container)
\ No newline at end of file
Added: trunk/libs/assign/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/assign/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,20 @@
+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)
+
+FOREACH(test ${TESTS})
+  boost_test_run(${test} DEPENDS boost_unit_test_framework)
+ENDFOREACH(test ${TESTS})
+
+boost_test_run(multi_index_container 
+  DEPENDS boost_unit_test_framework boost_serialization)
Added: trunk/libs/bimap/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/bimap/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    bimap.hpp
+    bimap
+)
+
+# Add a library target to the build system
+boost_library_project(
+  bimap
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Bidirectional map containers"
+  MODULARIZED
+  AUTHORS  "Matias Capeletto <matias.capeletto -at- gmail.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/bimap/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/bimap/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(bimap DEPENDS xpressive)
\ No newline at end of file
Added: trunk/libs/bimap/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/bimap/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,41 @@
+boost_test_run(test_tagged)
+boost_test_run(test_structured_pair)
+boost_test_run(test_mutant)
+boost_test_run(test_mutant_relation)
+boost_test_run(test_bimap_set_of)
+boost_test_run(test_bimap_multiset_of)
+boost_test_run(test_bimap_unordered_set_of)
+boost_test_run(test_bimap_unordered_multiset_of)
+boost_test_run(test_bimap_list_of)
+boost_test_run(test_bimap_vector_of)
+boost_test_run(test_bimap_ordered)
+boost_test_run(test_bimap_unordered)
+boost_test_run(test_bimap_sequenced)
+boost_test_run(test_bimap_unconstrained)
+boost_test_run(test_bimap_assign)
+boost_test_run(test_bimap_property_map)
+boost_test_run(test_bimap_modify)
+boost_test_run(test_bimap_range)
+boost_test_run(test_bimap_operator_bracket)
+boost_test_run(test_bimap_lambda)
+boost_test_run(test_bimap_mutable)
+boost_test_run(test_bimap_extra)
+boost_test_run(test_bimap_convenience_header)
+boost_test_run(test_bimap_project)
+boost_test_run(test_bimap_serialization DEPENDS boost_serialization)
+boost_test_run(test_bimap_info)
+boost_test_compile_fail(test_bimap_mutable_1 compile_fail/test_bimap_mutable_1.cpp)
+boost_test_compile_fail(test_bimap_mutable_2 compile_fail/test_bimap_mutable_2.cpp)
+boost_test_compile_fail(test_bimap_mutable_3 compile_fail/test_bimap_mutable_3.cpp)
+boost_test_compile_fail(test_bimap_info_1 compile_fail/test_bimap_info_1.cpp)
+boost_test_compile_fail(test_bimap_info_2 compile_fail/test_bimap_info_2.cpp)
+boost_test_compile_fail(test_bimap_info_3 compile_fail/test_bimap_info_3.cpp)
+boost_test_run(bimap_and_boost_property_map ../example/bimap_and_boost/property_map.cpp)
+boost_test_run(bimap_and_boost_range ../example/bimap_and_boost/range.cpp)
+boost_test_run(bimap_and_boost_foreach ../example/bimap_and_boost/foreach.cpp)
+boost_test_run(bimap_and_boost_lambda ../example/bimap_and_boost/lambda.cpp)
+boost_test_run(bimap_and_boost_assign ../example/bimap_and_boost/assign.cpp)
+boost_test_run(bimap_and_boost_xpressive ../example/bimap_and_boost/xpressive.cpp)
+boost_test_run(bimap_and_boost_typeof ../example/bimap_and_boost/typeof.cpp)
+boost_test_compile(bimap_and_boost_serialization 
+  ../example/bimap_and_boost/serialization.cpp)
Added: trunk/libs/bind/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/bind/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    bind.hpp
+    bind
+)
+
+# Add a library target to the build system
+boost_library_project(
+  bind
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "A generalization of the standard functions std::bind1st and std::bind2nd. It supports arbitrary function objects, functions, function pointers, and member function pointers, and is able to bind any argument to a specific value or route input arguments into arbitrary positions."
+  MODULARIZED 
+  AUTHORS  "Peter Dimov <pdimov -at- mmltd.net>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/bind/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/bind/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/circular_buffer/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/circular_buffer/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,23 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    circular_buffer.hpp
+    circular_buffer_fwd.hpp
+    circular_buffer
+)
+
+# Add a library target to the build system
+boost_library_project(
+  circular_buffer
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "STL compliant container also known as ring or cyclic buffer."
+  MODULARIZED
+  AUTHORS  "Jan Gaspar <jano_gaspar -at- yahoo.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/circular_buffer/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/circular_buffer/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,4 @@
+boost_test_run(base_test SINGLE_THREADED)
+boost_test_run(space_optimized_test SINGLE_THREADED)
+boost_test_run(soft_iterator_invalidation SINGLE_THREADED)
+boost_test_compile(bounded_buffer_comparison)
\ No newline at end of file
Added: trunk/libs/compatibility/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/compatibility/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    compatibility
+)
+
+# Add a library target to the build system
+boost_library_project(
+  compatibility
+  #  SRCDIRS 
+  #  TESTDIRS 
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/concept/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/concept/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    concept
+)
+
+# Add a library target to the build system
+boost_library_project(
+  concept
+  #  SRCDIRS 
+  #  TESTDIRS
+  HEADERS ${lib_headers}
+  #  DOCDIRS
+  #  DESCRIPTION  "Helps Boost library developers adapt to compiler idiosyncrasies; not intended for library users."
+  MODULARIZED 
+  #  AUTHORS  "John Maddock <john -at- johnmaddock.co.uk>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/concept/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/concept/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(concept DEPENDS config)
\ No newline at end of file
Added: trunk/libs/concept_check/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/concept_check/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,23 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    concept_check.hpp
+    concept_archetype.hpp
+    concept_check
+)
+
+# Add a library target to the build system
+boost_library_project(
+  concept_check
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Tools for generic programming."
+  MODULARIZED 
+  AUTHORS  "Jeremy Siek <jeremy.siek -at- gmail.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/concept_check/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/concept_check/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(concept_check DEPENDS preprocessor concept)
\ No newline at end of file
Added: trunk/libs/concept_check/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/concept_check/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/config/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/config/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    config.hpp
+    config
+)
+
+# Add a library target to the build system
+boost_library_project(
+  config
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Helps Boost library developers adapt to compiler idiosyncrasies; not intended for library users."
+  MODULARIZED 
+  AUTHORS  "John Maddock <john -at- johnmaddock.co.uk>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/config/module.cmake
==============================================================================
Added: trunk/libs/config/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/config/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,39 @@
+# 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)
+if(MSVC)
+  set(BOOST_CONFIG_MSVC_STATIC_OPTIONS STATIC STATIC_RUNTIME)
+endif(MSVC)
+if(BORLAND)
+  set(BOOST_CONFIG_BORLAND_STATIC_OPTIONS STATIC STATIC_RUNTIME)
+endif(BORLAND)
+
+if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+  set(BOOST_CONFIG_STATIC_THREAD_LIBS LINK_LIBS pthread rt)
+endif(CMAKE_SYSTEM_NAME MATCHES "Linux")
+
+#-------------------------------------------------------------------------
+#-- Needed include directories for the tests
+boost_test_add_dependent_includes("utility;detail;config;test;preprocessor;type_traits;smart_ptr;mpl;exception;static_assert")
+#-------------------------------------------------------------------------
+
+boost_test_run(config_test_threaded config_test.cpp 
+  EXTRA_OPTIONS MULTI_THREADED)
+boost_test_run(config_test 
+  EXTRA_OPTIONS SINGLE_THREADED ${BOOST_CONFIG_MSVC_STATIC_OPTIONS}
+                ${BOOST_CONFIG_STATIC_THREAD_LIBS})
+boost_test_run(config_info_threaded config_info.cpp 
+  EXTRA_OPTIONS MULTI_THREADED)
+boost_test_run(config_info
+  EXTRA_OPTIONS SINGLE_THREADED ${BOOST_CONFIG_MSVC_STATIC_OPTIONS})
+boost_test_run(math_info
+  EXTRA_OPTIONS ${BOOST_CONFIG_BORLAND_STATIC_OPTIONS})
+  
+
+boost_test_run(limits_test DEPENDS boost_test_exec_monitor)
+boost_test_run(abi_test abi/abi_test.cpp abi/main.cpp)
+
+# TODO: config_link_test
+boost_test_compile_fail(test_thread_fail1 threads/test_thread_fail1.cpp)
+boost_test_compile_fail(test_thread_fail2 threads/test_thread_fail2.cpp)
\ No newline at end of file
Added: trunk/libs/conversion/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/conversion/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    
+)
+
+# Add a library target to the build system
+boost_library_project(
+  conversion
+  #  SRCDIRS 
+  TESTDIRS  test
+  # HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Polymorphic and lexical casts"
+  # MODULARIZED 
+  AUTHORS  "David Abrahams <dave -at- boost-consulting.com>"
+           "Kevlin Henney"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/conversion/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/conversion/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/crc/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/crc/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    crc.hpp
+)
+
+# Add a library target to the build system
+boost_library_project(
+  crc
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "The Boost CRC Library provides two implementations of CRC (cyclic redundancy code) computation objects and two implementations of CRC computation functions. The implementations are template-based."
+  MODULARIZED 
+  AUTHORS  "Daryle Walker <darylew -at- hotmail.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/crc/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/crc/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,2 @@
+boost_test_run(crc_test crc_test.cpp)
+
Added: trunk/libs/date_time/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/date_time/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    date_time.hpp
+    date_time
+)
+
+# Add a library target to the build system
+boost_library_project(
+  date_time
+  SRCDIRS  src 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "A set of date-time libraries based on generic programming concepts."
+  MODULARIZED
+  AUTHORS  "Jeff Garland <jeff -at- crystalclearsoftware.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/date_time/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/date_time/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(date_time DEPENDS algorithm smart_ptr tokenizer io)
\ No newline at end of file
Added: trunk/libs/date_time/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/date_time/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/date_time/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/date_time/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/detail/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/detail/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    detail
+)
+
+# Add a library target to the build system
+boost_library_project(
+  detail
+  #  SRCDIRS 
+  #  TESTDIRS
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  # DESCRIPTION  "Helps Boost library developers adapt to compiler idiosyncrasies; not intended for library users."
+  MODULARIZED 
+  # AUTHORS  "John Maddock <john -at- johnmaddock.co.uk>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/detail/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/detail/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(detail DEPENDS integer)
\ No newline at end of file
Added: trunk/libs/disjoint_sets/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/disjoint_sets/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,23 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    
+)
+
+# Add a library target to the build system
+boost_library_project(
+  disjoint_sets
+  #  SRCDIRS 
+  TESTDIRS  test
+#  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Provides disjoint sets operations with union by rank and path compression."
+ # MODULARIZED 
+  AUTHORS  "Jeremy Siek <jeremy.siek -at- gmail.com>"
+           "Lie-Quan Lee"
+           "Andrew Lumsdaine"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/disjoint_sets/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/disjoint_sets/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_test_run(disjoint_set_test ../disjoint_set_test.cpp)
Added: trunk/libs/dynamic_bitset/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/dynamic_bitset/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,24 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    dynamic_bitset.hpp
+    dynamic_bitset_fwd.hpp
+    dynamic_bitset
+)
+
+# Add a library target to the build system
+boost_library_project(
+  dynamic_bitset
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "A runtime-sized version of std::bitset"
+  MODULARIZED
+  AUTHORS  "Jeremy Siek <jeremy.siek -at- gmail.com>"
+           "Chuck Allison"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/dynamic_bitset/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/dynamic_bitset/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/exception/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/exception/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,23 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    exception.hpp
+    exception_ptr.hpp
+    exception
+)
+
+# Add a library target to the build system
+boost_library_project(
+  exception
+  #  SRCDIRS 
+  TESTDIRS  test 
+  HEADERS ${lib_headers}
+  DOCDIRS  doc
+  DESCRIPTION  "A library for transporting of arbitrary data in exception objects, and transporting of exceptions between threads."
+  MODULARIZED 
+  AUTHORS  "Emil Dotchevski <emil -at- revergestudios.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/exception/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/exception/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,34 @@
+
+boost_test_run(is_output_streamable_test)
+boost_test_run(has_to_string_test)
+boost_test_run(to_string_test)
+boost_test_run(to_string_stub_test)
+boost_test_compile_fail(to_string_fail)
+
+#exception
+
+boost_test_run(cloning_test)
+boost_test_run(copy_exception_test)
+boost_test_run(unknown_exception_test)
+boost_test_run(exception_test)
+#boost_test_run(boost_error_info_test)
+boost_test_run(enable_error_info_test enable_error_info_test.cpp helper1.cpp)
+boost_test_run(throw_exception_test throw_exception_test.cpp helper2.cpp)
+boost_test_run(errno_test)
+boost_test_run(error_info_test)
+boost_test_run(diagnostic_information_test)
+boost_test_compile_fail(exception_fail)
+boost_test_compile_fail(throw_exception_fail)
+
+#headers
+
+boost_test_compile(exception_ptr_hpp_test)
+boost_test_compile(diagnostic_information_hpp_test)
+boost_test_compile(enable_current_exception_hpp_test)
+boost_test_compile(enable_error_info_hpp_test)
+boost_test_compile(error_info_hpp_test)
+boost_test_compile(exception_hpp_test)
+boost_test_compile(info_hpp_test)
+boost_test_compile(info_tuple_hpp_test)
+boost_test_compile(to_string_hpp_test)
+boost_test_compile(to_string_stub_hpp_test)
Added: trunk/libs/filesystem/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/filesystem/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    filesystem.hpp
+    filesystem
+)
+
+# Add a library target to the build system
+boost_library_project(
+  filesystem
+  SRCDIRS  src 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Provides portable facilities to query and manipulate paths, files, and directories."
+  MODULARIZED
+  AUTHORS  "Beman Dawes <bdawes -at- acm.org>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/filesystem/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/filesystem/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(filesystem DEPENDS system smart_ptr)
\ No newline at end of file
Added: trunk/libs/filesystem/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/filesystem/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,8 @@
+boost_add_library(
+  boost_filesystem
+  operations.cpp path.cpp portability.cpp utf8_codecvt_facet.cpp
+  SHARED_COMPILE_FLAGS "-DBOOST_FILESYSTEM_DYN_LINK=1"
+  STATIC_COMPILE_FLAGS "-DBOOST_FILESYSTEM_STATIC_LINK=1"
+  DEPENDS boost_system
+  )
+
Added: trunk/libs/filesystem/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/filesystem/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/foreach/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/foreach/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    foreach.hpp
+)
+
+# Add a library target to the build system
+boost_library_project(
+  foreach
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/foreach/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/foreach/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,32 @@
+set(TESTS 
+stl_byval
+stl_byval_r
+stl_byref
+stl_byref_r
+array_byval
+array_byval_r
+array_byref
+array_byref_r
+cstr_byval
+cstr_byval_r
+cstr_byref
+cstr_byref_r
+pair_byval
+pair_byval_r
+pair_byref
+pair_byref_r
+user_defined
+call_once
+rvalue_const
+rvalue_const_r
+rvalue_nonconst
+rvalue_nonconst_r
+dependent_type
+misc)
+
+foreach(test ${TESTS})
+  boost_test_run(${test})
+endforeach(test ${TESTS})
+
+boost_test_compile(noncopyable)
+
Added: trunk/libs/format/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/format/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    format.hpp
+    format
+)
+
+# Add a library target to the build system
+boost_library_project(
+  format
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/format/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/format/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/function/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/function/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    function.hpp
+    function
+)
+
+# Add a library target to the build system
+boost_library_project(
+  function
+  #  SRCDIRS 
+  TESTDIRS  test 
+  HEADERS ${lib_headers}
+  DOCDIRS  doc
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/function/doc/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/function/doc/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,2 @@
+boost_add_documentation(function.xml
+  faq.xml history.xml misc.xml reference.xml tests.xml tutorial.xml)
Added: trunk/libs/function/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/function/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/function_types/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/function_types/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    function_types
+)
+
+# Add a library target to the build system
+boost_library_project(
+  function_types
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/function_types/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/function_types/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,63 @@
+boost_test_compile(is_function classification/is_function.cpp)
+boost_test_compile(is_function_pointer classification/is_function_pointer.cpp)
+boost_test_compile(is_function_reference classification/is_function_reference.cpp)
+boost_test_compile(is_member_function_pointer classification/is_member_function_pointer.cpp)
+boost_test_compile(is_member_object_pointer classification/is_member_object_pointer.cpp)
+boost_test_compile(is_callable_builtin classification/is_callable_builtin.cpp)
+boost_test_compile(is_nonmember_callable_builtin classification/is_nonmember_callable_builtin.cpp)
+boost_test_compile(is_member_pointer classification/is_member_pointer.cpp)
+
+boost_test_compile(is_cv_mem_func_ptr classification/is_cv_mem_func_ptr.cpp)
+boost_test_compile(is_variadic classification/is_variadic.cpp)
+boost_test_compile(is_cv_pointer classification/is_cv_pointer.cpp)
+    # [ compile classification/is_cv_function.cpp)
+
+# Decomposition
+    
+boost_test_compile(components decomposition/components.cpp)
+boost_test_compile(result_type decomposition/result_type.cpp)
+boost_test_compile(function_arity decomposition/function_arity.cpp)
+boost_test_compile(parameter_types decomposition/parameter_types.cpp)
+
+boost_test_compile(components_seq decomposition/components_seq.cpp)
+boost_test_compile(class_type_transform decomposition/class_type_transform.cpp)
+
+boost_test_compile_fail(result_type_fail decomposition/result_type_fail.cpp)
+boost_test_compile_fail(parameter_types_fail decomposition/parameter_types_fail.cpp)
+boost_test_compile_fail(function_arity_fail decomposition/function_arity_fail.cpp)
+
+# Synthesis
+
+boost_test_compile(function_type synthesis/function_type.cpp)
+boost_test_compile(function_pointer synthesis/function_pointer.cpp)
+boost_test_compile(function_reference synthesis/function_reference.cpp)
+boost_test_compile(member_function_pointer synthesis/member_function_pointer.cpp)
+boost_test_compile(member_object_pointer synthesis/member_object_pointer.cpp)
+
+boost_test_compile(transformation synthesis/transformation.cpp)
+boost_test_compile(mem_func_ptr_cv1 synthesis/mem_func_ptr_cv1.cpp)
+boost_test_compile(mem_func_ptr_cv2 synthesis/mem_func_ptr_cv2.cpp)
+boost_test_compile(mem_func_ptr_cv_ptr_to_this synthesis/mem_func_ptr_cv_ptr_to_this.cpp)
+boost_test_compile(variadic_function_synthesis synthesis/variadic_function_synthesis.cpp)
+    # [ compile synthesis/cv_function_synthesis.cpp)
+
+# Reconfiguration
+
+boost_test_compile(preprocessing_mode reconfiguration/preprocessing_mode.cpp)
+boost_test_compile(partial_arity_preprocessing reconfiguration/partial_arity_preprocessing.cpp)
+boost_test_compile(cc_preprocessing reconfiguration/cc_preprocessing.cpp)
+
+# Custom calling conventions
+
+boost_test_compile(nonmember_ccs custom_ccs/nonmember_ccs.cpp)
+boost_test_compile(nonmember_ccs_exact custom_ccs/nonmember_ccs_exact.cpp)
+boost_test_compile(member_ccs custom_ccs/member_ccs.cpp)
+boost_test_compile(member_ccs_exact custom_ccs/member_ccs_exact.cpp)
+
+# Code from the examples
+
+boost_test_compile(interpreter_example ../example/interpreter_example.cpp)
+boost_test_compile(result_of_example ../example/result_of_example.cpp)
+boost_test_compile(interface_example ../example/interface_example.cpp)
+boost_test_compile(fast_mem_fn_example ../example/fast_mem_fn_example.cpp)
+boost_test_compile(macro_type_args_example ../example/macro_type_args_example.cpp)
Added: trunk/libs/functional/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/functional/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    functional.hpp
+    functional
+)
+
+# Add a library target to the build system
+boost_library_project(
+  functional
+  #  SRCDIRS 
+  TESTDIRS  test hash/test hash/examples
+  HEADERS ${lib_headers}
+  DOCDIRS  hash/doc
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/functional/hash/doc/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/functional/hash/doc/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,2 @@
+message(STATUS "functional/hash docs need love")
+
Added: trunk/libs/functional/hash/examples/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/functional/hash/examples/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,9 @@
+#-------------------------------------------------------------------------
+#-- Needed include directories for the tests
+boost_test_add_dependent_includes("utility;detail;config")
+#-------------------------------------------------------------------------
+boost_test_run(books)
+boost_test_run(point)
+boost_test_run(portable)
+
+
Added: trunk/libs/functional/hash/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/functional/hash/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,51 @@
+#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 ]
+
+
+
+#-------------------------------------------------------------------------
+#-- Needed include directories for the tests
+boost_test_add_dependent_includes("utility;detail;config;preprocessor;type_traits;mpl;static_assert")
+#-------------------------------------------------------------------------
+
+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: trunk/libs/functional/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/functional/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(functional DEPENDS integer)
\ No newline at end of file
Added: trunk/libs/functional/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/functional/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_test_run(function_test function_test.cpp)
Added: trunk/libs/fusion/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/fusion/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,23 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    fusion
+)
+
+# Add a library target to the build system
+boost_library_project(
+  fusion
+  #  SRCDIRS 
+  #  TESTDIRS 
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Library for working with tuples, including various containers, algorithms, etc."
+  MODULARIZED
+  AUTHORS  "Joel de Guzman <joel -at- boost-consulting.com>"
+           "Dan Marsden <danmarsden -at- yahoo.co.uk>"
+           "Tobias Schwinger <tschwinger -at- isonews2.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/gil/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/gil/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    gil
+)
+
+# Add a library target to the build system
+boost_library_project(
+  gil
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Generic Image Library"
+  MODULARIZED
+  AUTHORS  "Lubomir Bourdev <lbourdev -at- adobe.com>"
+           "Hailin Jin <hljin -at- adobe.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/gil/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/gil/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,6 @@
+add_definitions(-DBOOST_GIL_NO_IO -D_SCL_SECURE_NO_WARNINGS)
+boost_test_run(channel channel.cpp error_if.cpp)
+boost_test_run(image image.cpp sample_image.cpp error_if.cpp)
+boost_test_run(image_io image_io.cpp error_if.cpp)
+boost_test_run(pixel pixel.cpp error_if.cpp)
+boost_test_run(pixel_iterator pixel_iterator.cpp error_if.cpp)
Added: trunk/libs/graph/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/graph/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,24 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    graph
+)
+
+# Add a library target to the build system
+boost_library_project(
+  graph
+  SRCDIRS  src 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "The BGL graph interface and graph components are generic, in the same sense as the the Standard Template Library (STL)."
+  MODULARIZED
+  AUTHORS  "Jeremy Siek <jeremy.siek -at- gmail.com>"
+           "Lie-Quan Lee"
+           "Andrew Lumsdaine"
+           "Douglas Gregor <doug.gregor -at- gmail.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/graph/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/graph/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,3 @@
+boost_module(graph DEPENDS property_map tuple multi_index any)
+
+# any is there because of the dependency on boost/dynamic_property_map.hpp
Added: trunk/libs/graph/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/graph/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,26 @@
+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})
+  list(APPEND 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: trunk/libs/graph/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/graph/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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 DEPENDS boost_graph-shared)
+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 DEPENDS boost_graph-shared)
+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: trunk/libs/integer/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/integer/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,25 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    integer.hpp
+    integer_fwd.hpp
+    integer_traits.hpp
+    integer
+)
+
+# Add a library target to the build system
+boost_library_project(
+  integer
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "The organization of boost integer headers and classes is designed to take advantage of <stdint.h> types from the 1999 C standard without resorting to undefined behavior in terms of the 1998 C++ standard. The header <boost/cstdint.hpp> makes the standard integer types safely available in namespace boost without placing any names in namespace std."
+  MODULARIZED 
+  AUTHORS  "Beman Dawes <bdawes -at- acm.org>"
+           "Daryle Walker <darylew -at- hotmail.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/integer/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/integer/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,8 @@
+boost_test_run(cstdint_test cstdint_test.cpp)
+boost_test_run(integer_mask_test integer_mask_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)
+boost_test_run(issue_2134 issue_2134.cpp)
+boost_test_run(static_log2_test static_log2_test.cpp)
+boost_test_run(static_min_max_test static_min_max_test.cpp)
Added: trunk/libs/interprocess/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/interprocess/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    interprocess
+)
+
+# Add a library target to the build system
+boost_library_project(
+  interprocess
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Shared memory, memory mapped files, process-shared mutexes, condition variables, containers and allocators."
+  MODULARIZED
+  AUTHORS  "Ion Gaztanaga <igaztanaga -at- gmail.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/interprocess/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/interprocess/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,5 @@
+file(GLOB INTERPROCESS_TESTS *.cpp)
+foreach(TEST ${INTERPROCESS_TESTS})
+  get_filename_component(TEST ${TEST} NAME_WE)
+  boost_test_run(${TEST} DEPENDS boost_thread MULTI_THREADED)
+endforeach()
\ No newline at end of file
Added: trunk/libs/intrusive/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/intrusive/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    intrusive_ptr.hpp
+    intrusive
+)
+
+# Add a library target to the build system
+boost_library_project(
+  intrusive
+  #  SRCDIRS 
+  #  TESTDIRS 
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/io/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/io/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    io_fwd.hpp
+    io
+)
+
+# Add a library target to the build system
+boost_library_project(
+  io
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/io/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/io/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/iostreams/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/iostreams/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    iostreams
+)
+
+# Add a library target to the build system
+boost_library_project(
+  iostreams
+  SRCDIRS  src
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Framework for defining streams, stream buffers and i/o filters"
+  MODULARIZED
+  AUTHORS  "Jonathan Turkanis <turkanis -at- coderage.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/iostreams/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/iostreams/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(iostreams DEPENDS range)
\ No newline at end of file
Added: trunk/libs/iostreams/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/iostreams/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/iostreams/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/iostreams/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/iterator/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/iterator/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,24 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    iterator.hpp
+    iterator
+)
+
+# Add a library target to the build system
+boost_library_project(
+  iterator
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "A system of concepts which extend the C++ standard iterator requirementsand a framework of components for building iterators based on these extended concepts and includes several useful iterator adaptors."
+  MODULARIZED 
+  AUTHORS  "David Abrahams <dave -at- boostpro.com>"
+           "Jeremy Siek <jeremy.siek -at- gmail.com>"
+           "Thomas Witt <witt - at - acm.org>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/iterator/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/iterator/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(iterator DEPENDS config mpl type_traits function)
\ No newline at end of file
Added: trunk/libs/iterator/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/iterator/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/lambda/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/lambda/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    lambda
+)
+
+# Add a library target to the build system
+boost_library_project(
+  lambda
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/lambda/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/lambda/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/logic/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/logic/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    logic
+)
+
+# Add a library target to the build system
+boost_library_project(
+  logic
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/logic/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/logic/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,3 @@
+boost_test_run(tribool_test)
+boost_test_run(tribool_rename_test)
+boost_test_run(tribool_io_test)
Added: trunk/libs/math/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/math/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    math_fwd.hpp
+    math
+)
+
+# Add a library target to the build system
+boost_library_project(
+  math
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/math/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/math/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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 DEPENDS boost_regex)
Added: trunk/libs/mpi/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/mpi/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    mpi.hpp
+    mpi
+)
+
+# Add a library target to the build system
+boost_library_project(
+  mpi
+  SRCDIRS  src
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  DOCDIRS  doc
+  #  DESCRIPTION 
+  MODULARIZED
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/mpi/doc/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/mpi/doc/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,30 @@
+boost_add_documentation(mpi.qbk
+  HEADERS mpi_autodoc.xml 
+          boost/mpi.hpp
+          boost/mpi/allocator.hpp
+          boost/mpi/collectives.hpp
+          boost/mpi/collectives_fwd.hpp
+          boost/mpi/communicator.hpp
+          boost/mpi/config.hpp
+          boost/mpi/datatype.hpp
+          boost/mpi/datatype_fwd.hpp
+          boost/mpi/environment.hpp
+          boost/mpi/exception.hpp
+          boost/mpi/graph_communicator.hpp
+          boost/mpi/group.hpp
+          boost/mpi/intercommunicator.hpp
+          boost/mpi/nonblocking.hpp
+          boost/mpi/operations.hpp
+          boost/mpi/packed_iarchive.hpp
+          boost/mpi/packed_oarchive.hpp
+          boost/mpi/skeleton_and_content.hpp
+          boost/mpi/skeleton_and_content_fwd.hpp
+          boost/mpi/status.hpp
+          boost/mpi/request.hpp
+          boost/mpi/timer.hpp
+          boost/mpi/python.hpp
+  DOXYGEN_PARAMETERS
+    MACRO_EXPANSION=YES
+    EXPAND_ONLY_PREDEF=YES
+    "PREDEFINED=BOOST_MPI_HAS_MEMORY_ALLOCATION= BOOST_MPI_HAS_NOARG_INITIALIZATION= MPI_VERSION=2 BOOST_MPI_DOXYGEN="
+  )
\ No newline at end of file
Added: trunk/libs/mpi/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/mpi/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(mpi DEPENDS graph)
\ No newline at end of file
Added: trunk/libs/mpi/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/mpi/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,32 @@
+add_definitions(-DBOOST_MPI_SOURCE=1)
+include_directories(${MPI_INCLUDE_PATH})
+
+boost_add_library(
+  boost_mpi
+  broadcast.cpp
+  communicator.cpp
+  computation_tree.cpp
+  content_oarchive.cpp
+  environment.cpp
+  exception.cpp
+  graph_communicator.cpp
+  group.cpp
+  intercommunicator.cpp
+  mpi_datatype_cache.cpp
+  mpi_datatype_oarchive.cpp
+  packed_iarchive.cpp
+  packed_oarchive.cpp
+  packed_skeleton_iarchive.cpp
+  packed_skeleton_oarchive.cpp
+  point_to_point.cpp
+  request.cpp
+  text_skeleton_oarchive.cpp
+  DEPENDS boost_serialization
+  COMPILE_FLAGS "${MPI_COMPILE_FLAGS}"
+  LINK_FLAGS "${MPI_LINK_FLAGS}"
+  LINK_LIBS ${MPI_LIBRARIES}
+  SHARED_COMPILE_FLAGS "-DBOOST_MPI_DYN_LINK=1"
+  )
+
+message(STATUS "boost::mpi::python needs love")
+
Added: trunk/libs/mpi/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/mpi/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,63 @@
+include_directories(${MPI_INCLUDE_PATH})
+
+# Declare a test for the Boost.MPI library, which may involve both
+# building the test and executing it with varying numbers of
+# processes.
+#
+#     boost_mpi_test(testname
+#                    [source1 source2 ...]
+#                    [ARGS arg1 arg2 ...]
+#                    [SCHEDULE procs1 procs2 ...]
+#
+# 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.
+macro(boost_mpi_test testname) 
+  PARSE_ARGUMENTS(MPI_TEST "SCHEDULE;ARGS" "" ${ARGN})
+
+  # Determine the test sources
+  if (MPI_TEST_DEFAULT_ARGS)
+    set(MPI_TEST_SOURCES ${MPI_TEST_DEFAULT_ARGS})
+  else (MPI_TEST_DEFAULT_ARGS)
+    set(MPI_TEST_SOURCES "${testname}.cpp")
+  endif (MPI_TEST_DEFAULT_ARGS)
+
+  # Build the test executable
+  boost_add_executable(${testname} 
+    ${MPI_TEST_SOURCES}
+    OUTPUT_NAME tests/${PROJECT_NAME}/${testname}
+    NO_INSTALL
+    DEPENDS boost_mpi
+    COMPILE_FLAGS "${MPI_COMPILE_FLAGS}"
+    LINK_FLAGS "${MPI_LINK_FLAGS}"
+    LINK_LIBS ${MPI_LIBRARIES}
+    SHARED_COMPILE_FLAGS "-DBOOST_MPI_DYN_LINK=1")
+  if (THIS_EXE_OKAY)
+    if (NOT MPI_TEST_SCHEDULE)
+      set(MPI_TEST_SCHEDULE 1 2 3 4 7 8 13 17)
+    endif (NOT MPI_TEST_SCHEDULE)
+
+    foreach(PROCS ${MPI_TEST_SCHEDULE})
+      add_test("${PROJECT_NAME}::${testname}-${PROCS}"
+        ${MPIEXEC}
+        -n ${PROCS}
+        ${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/tests/${PROJECT_NAME}/${testname} 
+        ${BOOST_TEST_ARGS}
+        )
+    endforeach(PROCS)
+  endif (THIS_EXE_OKAY)
+endmacro(boost_mpi_test)
+
+boost_mpi_test(all_gather_test)
+boost_mpi_test(all_reduce_test)
+boost_mpi_test(all_to_all_test)
+boost_mpi_test(broadcast_test SCHEDULE 2 17)
+boost_mpi_test(graph_topology_test SCHEDULE 2 7 13)
+boost_mpi_test(is_mpi_op_test SCHEDULE 1)
+boost_mpi_test(nonblocking_test)
+boost_mpi_test(reduce_test)
+boost_mpi_test(ring_test SCHEDULE 2 3 4 7 8 13 17)
+boost_mpi_test(scan_test)
+boost_mpi_test(scatter_test)
+boost_mpi_test(skeleton_content_test SCHEDULE 2 3 4 7 8 13 17)
Added: trunk/libs/mpl/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/mpl/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    mpl
+)
+
+# Add a library target to the build system
+boost_library_project(
+  mpl
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "A general-purpose, high-level C++ template metaprogramming framework of compile-time algorithms, sequences and metafunctions. It provides a conceptual foundation and an extensive set of powerful and coherent tools that make doing explict metaprogramming in C++ as easy and enjoyable as possible within the current language."
+  MODULARIZED 
+  AUTHORS  "Aleksey Gurtovoy <agurtovoy -at- meta-comm.com>"
+           "David Abrahams <dave -at- boostpro.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/mpl/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/mpl/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(mpl DEPENDS preprocessor)
\ No newline at end of file
Added: trunk/libs/mpl/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/mpl/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/multi_array/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/multi_array/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    multi_array.hpp
+    multi_array
+)
+
+# Add a library target to the build system
+boost_library_project(
+  multi_array
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/multi_array/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/multi_array/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/multi_index/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/multi_index/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,23 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    multi_index_container.hpp
+    multi_index_container_fwd.hpp
+    multi_index
+)
+
+# Add a library target to the build system
+boost_library_project(
+  multi_index
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/multi_index/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/multi_index/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(multi_index DEPENDS serialization functional)
\ No newline at end of file
Added: trunk/libs/multi_index/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/multi_index/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,25 @@
+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_serialization3.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: trunk/libs/numeric/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/numeric/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    numeric
+)
+
+# Add a library target to the build system
+boost_library_project(
+  numeric
+  #  SRCDIRS 
+  TESTDIRS  conversion/test interval/test ublas/test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/numeric/conversion/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/numeric/conversion/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,11 @@
+#-------------------------------------------------------------------------
+#-- Needed include directories for the tests
+boost_test_add_dependent_includes("utility;detail;config;test;mpl;preprocessor;type_traits;timer;smart_ptr;iterator;exception;static_assert;io;bind;integer")
+#-------------------------------------------------------------------------
+
+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_conv_cast_test numeric_cast_test.cpp)
+boost_test_run(udt_example_0)
Added: trunk/libs/numeric/interval/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/numeric/interval/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,26 @@
+#TODO: Deal with these on OSF
+#    <toolset>hp_cxx,<os>OSF:<cflags>"-fprm d"
+ #   <toolset>gcc,<os>OSF:<cflags>-mfp-rounding-mode=d
+
+#-------------------------------------------------------------------------
+#-- Needed include directories for the tests
+boost_test_add_dependent_includes("utility;detail;config;test;mpl;preprocessor;type_traits;timer;smart_ptr;iterator;exception;static_assert;io;bind;logic")
+#-------------------------------------------------------------------------
+
+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: trunk/libs/numeric/ublas/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/numeric/ublas/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,64 @@
+# 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"
+
+#-------------------------------------------------------------------------
+#-- Needed include directories for the tests
+boost_test_add_dependent_includes("utility;detail;config;test;mpl;serialization;type_traits;static_assert;preprocessor;array;iterator;exception;concept_check;concept")
+#-------------------------------------------------------------------------
+
+
+boost_test_run(ublas_test1
+  test1.cpp test11.cpp test12.cpp test13.cpp
+  COMPILE_FLAGS "${UBLAS_TESTSET_DEFINES}")
+
+boost_test_run(ublas_test2
+  test2.cpp test21.cpp test22.cpp test23.cpp
+  COMPILE_FLAGS "${UBLAS_TESTSET_DEFINES}")
+
+boost_test_run(ublas_test3
+  test3.cpp test31.cpp test32.cpp test33.cpp
+  COMPILE_FLAGS "${UBLAS_TESTSET_SPARSE_DEFINES}")
+
+boost_test_run(ublas_test4
+  test4.cpp test42.cpp test43.cpp
+  COMPILE_FLAGS "${UBLAS_TESTSET_DEFINES}")
+
+boost_test_run(ublas_test5
+  test5.cpp test52.cpp test53.cpp
+  COMPILE_FLAGS "${UBLAS_TESTSET_DEFINES}")
+
+boost_test_run(ublas_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: trunk/libs/optional/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/optional/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    optional.hpp
+    optional
+)
+
+# Add a library target to the build system
+boost_library_project(
+  optional
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/optional/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/optional/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/parameter/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/parameter/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,23 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    parameter.hpp
+    parameter
+)
+
+# Add a library target to the build system
+boost_library_project(
+  parameter
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Write functions that accept arguments by name."
+  MODULARIZED
+  AUTHORS  "David Abrahams <dave -at- boostpro.com>"
+           "Daniel Wallin <dalwan01 -at- student.umu.se>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/parameter/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/parameter/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(parameter DEPENDS python)
\ No newline at end of file
Added: trunk/libs/parameter/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/parameter/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/pool/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/pool/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    pool
+)
+
+# Add a library target to the build system
+boost_library_project(
+  pool
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/pool/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/pool/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_test_run(test_pool_alloc DEPENDS boost_test_exec_monitor)
Added: trunk/libs/preprocessor/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    preprocessor.hpp
+    preprocessor
+)
+
+# Add a library target to the build system
+boost_library_project(
+  preprocessor
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/preprocessor/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/preprocessor/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/program_options/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/program_options/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    program_options.hpp
+    program_options
+)
+
+# Add a library target to the build system
+boost_library_project(
+  program_options
+  SRCDIRS  src
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Access to configuration data given on command line, in config files and other sources."
+  MODULARIZED
+  AUTHORS  "Vladimir Prus <ghost -at- cs.msu.su>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/program_options/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/program_options/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,3 @@
+boost_module(program_options DEPENDS any bind smart_ptr tokenizer)
+
+# bind is needed because of a dependency on boost/mem_fn.hpp
Added: trunk/libs/program_options/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/program_options/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/program_options/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/program_options/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/property_map/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/property_map/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    property_map.hpp
+    
+)
+
+# Add a library target to the build system
+boost_library_project(
+  property_map
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/property_map/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/property_map/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(property_map DEPENDS concept_check)
\ No newline at end of file
Added: trunk/libs/property_map/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/property_map/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,2 @@
+boost_test_compile(property_map_cc)
+boost_test_run(dynamic_properties_test)
Added: trunk/libs/property_tree/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/property_tree/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    property_tree
+)
+
+# Add a library target to the build system
+boost_library_project(
+  property_tree
+  #  SRCDIRS 
+  TESTDIRS test
+  HEADERS ${lib_headers}
+  #  DOCDIRS
+  #  DESCRIPTION  "Helps Boost library developers adapt to compiler idiosyncrasies; not intended for library users."
+  MODULARIZED 
+  #  AUTHORS  "John Maddock <john -at- johnmaddock.co.uk>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/proto/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/proto/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    proto
+)
+
+# Add a library target to the build system
+boost_library_project(
+  proto
+  #  SRCDIRS 
+  TESTDIRS test
+  HEADERS ${lib_headers}
+  DOCDIRS doc
+  # DESCRIPTION  "Helps Boost library developers adapt to compiler idiosyncrasies; not intended for library users."
+  MODULARIZED 
+  # AUTHORS  "John Maddock <john -at- johnmaddock.co.uk>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/ptr_container/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/ptr_container/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    ptr_container
+)
+
+# Add a library target to the build system
+boost_library_project(
+  ptr_container
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Containers for storing heap-allocated polymorphic objects to ease OO-programming."
+  MODULARIZED
+  AUTHORS  "Thorsten Ottosen <nesotto -at- cs.auc.dk>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/ptr_container/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/ptr_container/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(ptr_container DEPENDS circular_buffer)
\ No newline at end of file
Added: trunk/libs/ptr_container/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/ptr_container/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,19 @@
+boost_test_run(ptr_inserter DEPENDS boost_unit_test_framework)
+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)
+boost_test_run(iterator_test DEPENDS boost_unit_test_framework)
+boost_test_run(tut1)   
+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)
+
+boost_test_run(ptr_unordered_set DEPENDS boost_unit_test_framework)
+boost_test_run(ptr_unordered_map DEPENDS boost_unit_test_framework)
+boost_test_run(ptr_circular_buffer DEPENDS boost_unit_test_framework)
Added: trunk/libs/python/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/python/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,64 @@
+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
+    HEADERS python.hpp python
+    MODULARIZED
+    DESCRIPTION "A framework for interfacing Python and C++. It allows you to quickly and seamlessly expose C++ classes functions and objects to Python, and vice-versa, using no special tools -- just your C++ compiler."
+    AUTHORS "David Abrahams <dave -at- boostpro.com>"
+    )
+endif (PYTHON_LIBRARIES)
Added: trunk/libs/python/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/python/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,3 @@
+boost_module(python DEPENDS graph numeric)
+
+# numeric is there because of boost/cast.hpp from libs/python/src/errors.cpp:11
\ No newline at end of file
Added: trunk/libs/python/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/python/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,64 @@
+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
+  object/function_doc_signature.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: trunk/libs/python/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/python/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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 a_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: trunk/libs/random/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/random/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    random.hpp
+    random
+)
+
+# Add a library target to the build system
+boost_library_project(
+  random
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "A complete system for random number generation."
+  MODULARIZED 
+  AUTHORS  "Jens Maurer <Jens.Maurer -at- gmx.net>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/random/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/random/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/range/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/range/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    range.hpp
+    range
+)
+
+# Add a library target to the build system
+boost_library_project(
+  range
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  DOCDIRS  doc
+  DESCRIPTION  "A new infrastructure for generic algorithms that builds on top of the new iterator concepts."
+  MODULARIZED 
+  AUTHORS  "Thorsten Ottosen <nesotto -at- cs.auc.dk>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/range/doc/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/range/doc/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_add_documentation(boost_range.qbk)
\ No newline at end of file
Added: trunk/libs/range/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/range/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(range DEPENDS algorithm)
\ No newline at end of file
Added: trunk/libs/range/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/range/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,17 @@
+message(STATUS "libs/range/test: need -Wall -Wunused here when under gcc")
+set( test_compile_flags "")
+IF(CMAKE_COMPILER_IS_GNUCC)
+  SET(test_compile_flags "-Wall -Wunused")
+ENDIF(CMAKE_COMPILER_IS_GNUCC)
+
+boost_test_run(array DEPENDS boost_unit_test_framework COMPILE_FLAGS ${test_compile_flags})
+boost_test_run(iterator_pair DEPENDS boost_unit_test_framework COMPILE_FLAGS ${test_compile_flags})
+boost_test_run(std_container DEPENDS boost_unit_test_framework COMPILE_FLAGS ${test_compile_flags})
+boost_test_run(string DEPENDS boost_unit_test_framework COMPILE_FLAGS ${test_compile_flags})
+boost_test_run(iterator_range DEPENDS boost_unit_test_framework COMPILE_FLAGS ${test_compile_flags})
+boost_test_run(sub_range DEPENDS boost_unit_test_framework COMPILE_FLAGS ${test_compile_flags})
+boost_test_run(partial_workaround DEPENDS boost_unit_test_framework COMPILE_FLAGS ${test_compile_flags})
+boost_test_run(algorithm_example DEPENDS boost_unit_test_framework COMPILE_FLAGS ${test_compile_flags})
+boost_test_run(reversible_range DEPENDS boost_unit_test_framework COMPILE_FLAGS ${test_compile_flags})
+boost_test_run(const_ranges DEPENDS boost_unit_test_framework COMPILE_FLAGS ${test_compile_flags})
+boost_test_run(extension_mechanism DEPENDS boost_unit_test_framework COMPILE_FLAGS ${test_compile_flags})
Added: trunk/libs/rational/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/rational/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    rational.hpp
+    
+)
+
+# Add a library target to the build system
+boost_library_project(
+  rational
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/rational/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/rational/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/regex/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/regex/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,25 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    regex.h
+    regex.hpp
+    regex_fwd.hpp
+    regex
+    cregex.hpp
+)
+
+# Add a library target to the build system
+boost_library_project(
+  regex
+  SRCDIRS  src
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "A regular expression library"
+  MODULARIZED
+  AUTHORS  "John Maddock <john -at- johnmaddock.co.uk>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/regex/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/regex/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(regex DEPENDS date_time)
\ No newline at end of file
Added: trunk/libs/regex/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/regex/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/regex/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/regex/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,92 @@
+# 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 
+    EXTRA_OPTIONS 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 
+  EXTRA_OPTIONS SHARED)
+boost_test_run(regex_regress_threaded ${R_SOURCES} 
+  COMPILE_FLAGS "-DTEST_THREADS -DBOOST_REGEX_DYN_LINK=1"
+  DEPENDS boost_regex boost_thread
+  EXTRA_OPTIONS SHARED MULTI_THREADED)
+
+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"
+  DEPENDS boost_regex boost_thread
+  EXTRA_OPTIONS MULTI_THREADED SHARED)
+
+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 
+  EXTRA_OPTIONS STATIC)
+
+boost_test_run(regex_dll_config_info config_info/regex_config_info.cpp
+  COMPILE_FLAGS "-DBOOST_REGEX_DYN_LINK=1"
+  DEPENDS boost_regex 
+  EXTRA_OPTIONS 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: trunk/libs/serialization/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/serialization/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    serialization
+    archive
+)
+
+# Add a library target to the build system
+boost_library_project(
+  serialization
+  SRCDIRS  src
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Serialization for persistence and marshalling."
+  MODULARIZED 
+  AUTHORS  "<ramey -at- rrsd.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/serialization/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/serialization/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,3 @@
+boost_module(serialization DEPENDS spirit preprocessor io smart_ptr bind array)
+
+# bind is in there because we have a dependency on boost/mem_fn.hpp
Added: trunk/libs/serialization/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/serialization/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,54 @@
+
+set(SOURCES
+    basic_archive.cpp
+    basic_iarchive.cpp
+    basic_iserializer.cpp
+    basic_oarchive.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_typeid.cpp
+    extended_type_info_no_rtti.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
+    basic_text_wiprimitive.cpp
+    basic_text_woprimitive.cpp
+    text_wiarchive.cpp
+    text_woarchive.cpp
+    utf8_codecvt_facet.cpp
+    xml_wgrammar.cpp
+    xml_wiarchive.cpp
+    xml_woarchive.cpp
+    codecvt_null.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: trunk/libs/serialization/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/serialization/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,174 @@
+# 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.
+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)
+  
+  set(BSL_TEST_LIBRARIES) 
+  if(NOT BSL_NO_LIBS)
+    set(BSL_TEST_LIBRARIES "boost_serialization")
+  endif(NOT BSL_NO_LIBS)
+
+  # Tests linking against the static serialization library
+  boost_test_run("${testname}"
+    ${BSL_TEST_SOURCES}
+    STATIC
+    DEPENDS ${BSL_TEST_LIBRARIES}
+    COMPILE_FLAGS "-DBOOST_LIB_DIAGNOSTIC=1")
+    
+  # Tests linking against the shared serialization library
+  boost_test_run("${testname}_dll"
+    ${BSL_TEST_SOURCES}
+    SHARED
+    DEPENDS ${BSL_TEST_LIBRARIES}
+    COMPILE_FLAGS "-DBOOST_LIB_DIAGNOSTIC=1 -DBOOST_ALL_DYN_LINK=1")
+endmacro(serialization_test)
+
+# Like serialization_test, but runs the same test for all archive types.
+macro(serialization_test_allarchives 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 ${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 ${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_allarchives)
+
+serialization_test_allarchives(test_array test_array.cpp A.cpp)
+serialization_test_allarchives(test_binary)
+serialization_test_allarchives(test_complex)
+serialization_test_allarchives(test_contained_class test_contained_class.cpp A.cpp)
+serialization_test_allarchives(test_cyclic_ptrs test_cyclic_ptrs.cpp A.cpp)
+serialization_test_allarchives(test_delete_pointer)
+serialization_test_allarchives(test_deque test_deque.cpp A.cpp)
+# serialization_test_allarchives(test_derived)
+serialization_test_allarchives(test_derived_class test_derived_class.cpp A.cpp)
+serialization_test_allarchives(test_derived_class_ptr test_derived_class_ptr.cpp A.cpp)
+serialization_test_allarchives(test_diamond)
+serialization_test_allarchives(test_exported)
+serialization_test_allarchives(test_class_info_load)
+serialization_test_allarchives(test_class_info_save)
+serialization_test_allarchives(test_object)
+serialization_test_allarchives(test_primitive)
+serialization_test_allarchives(test_list test_list.cpp A.cpp)
+serialization_test_allarchives(test_list_ptrs test_list_ptrs.cpp A.cpp)
+serialization_test_allarchives(test_map test_map.cpp A.cpp)
+serialization_test_allarchives(test_mi)
+serialization_test_allarchives(test_multiple_ptrs test_multiple_ptrs.cpp A.cpp)
+serialization_test_allarchives(test_no_rtti)
+serialization_test_allarchives(test_non_intrusive)
+serialization_test_allarchives(test_non_default_ctor)
+serialization_test_allarchives(test_non_default_ctor2)
+serialization_test_allarchives(test_null_ptr)
+serialization_test_allarchives(test_nvp test_nvp.cpp A.cpp)
+serialization_test_allarchives(test_recursion test_recursion.cpp A.cpp)
+serialization_test_allarchives(test_registered)
+serialization_test_allarchives(test_set test_set.cpp A.cpp)
+serialization_test_allarchives(test_simple_class test_simple_class.cpp A.cpp)
+serialization_test_allarchives(test_simple_class_ptr test_simple_class_ptr.cpp A.cpp)
+serialization_test_allarchives(test_split)
+serialization_test_allarchives(test_tracking)
+serialization_test_allarchives(test_unregistered)
+serialization_test_allarchives(test_valarray)
+serialization_test_allarchives(test_variant test_variant.cpp A.cpp)
+serialization_test_allarchives(test_vector test_vector.cpp A.cpp)
+serialization_test_allarchives(test_optional)
+serialization_test_allarchives(test_shared_ptr)
+serialization_test_allarchives(test_shared_ptr_132)
+serialization_test_allarchives(test_polymorphic POLYMORPHIC 
+  test_polymorphic.cpp test_polymorphic_A.cpp A.cpp)
+
+serialization_test(test_private_ctor)
+serialization_test(test_reset_object_address test_reset_object_address.cpp A.cpp)
+serialization_test(test_void_cast)
+serialization_test(test_mult_archive_types)
+
+serialization_test(test_iterators NO_LIBS)
+serialization_test(test_iterators_base64 NO_LIBS)
+serialization_test(test_inclusion NO_LIBS)
+serialization_test(test_smart_cast NO_LIBS)
+
+serialization_test(test_utf8_codecvt 
+  test_utf8_codecvt.cpp ../src/utf8_codecvt_facet.cpp NO_LIBS)
+
+serialization_test(test_serialization_iterators test_iterators.cpp NO_LIBS)
+serialization_test(test_static_warning NO_LIBS)
+serialization_test(test_codecvt_null 
+  test_codecvt_null.cpp ../src/codecvt_null.cpp NO_LIBS)
+
+# should fail compilation
+boost_test_compile_fail(test_not_serializable)
+boost_test_compile_fail(test_traits_fail)
+boost_test_compile_fail(test_const_load_fail1)
+boost_test_compile_fail(test_const_load_fail2)
+boost_test_compile_fail(test_const_load_fail3)
+boost_test_compile_fail(test_const_load_fail1_nvp)
+boost_test_compile_fail(test_const_load_fail2_nvp)
+boost_test_compile_fail(test_const_load_fail3_nvp)
+
+boost_test_compile(test_static_warning)
+boost_test_compile(test_const_save_warn1)
+boost_test_compile(test_const_save_warn2)
+boost_test_compile(test_const_save_warn3)
+
+# 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)
+
+# should compile
+boost_test_compile(test_traits_pass)
+boost_test_compile(test_const_pass)
Added: trunk/libs/signals/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/signals/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,23 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    signals.hpp
+    signal.hpp
+    signals
+)
+
+# Add a library target to the build system
+boost_library_project(
+  signals
+  SRCDIRS  src 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Managed signals & slots callback implementation."
+  MODULARIZED
+  AUTHORS  "Douglas Gregor <doug.gregor -at- gmail.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/signals/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/signals/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,3 @@
+boost_module(signals DEPENDS  smart_ptr any intrusive bind)
+
+# bind is here due to a dependency on /boost/mem_fn.hpp
Added: trunk/libs/signals/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/signals/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/signals/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/signals/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/smart_ptr/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/smart_ptr/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,30 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    enable_shared_from_this.hpp
+    pointer_cast.hpp
+    scoped_array.hpp
+    scoped_ptr.hpp
+    shared_array.hpp
+    shared_ptr.hpp
+    weak_ptr.hpp
+)
+
+# Add a library target to the build system
+boost_library_project(
+  smart_ptr
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Five smart pointer class templates."
+  MODULARIZED 
+  AUTHORS  "Greg Colvin"
+           "Beman Dawes <bdawes -at- acm.org>"
+           "Peter Dimov <pdimov -at- mmltd.net>"
+           "Darin Adler"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/smart_ptr/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/smart_ptr/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(smart_ptr DEPENDS utility)
\ No newline at end of file
Added: trunk/libs/smart_ptr/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/smart_ptr/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/spirit/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,24 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    spirit.hpp
+    spirit
+)
+
+# Add a library target to the build system
+boost_library_project(
+  spirit
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "LL parser framework represents parsers directly as EBNF grammars in inlined C++."
+  MODULARIZED
+  AUTHORS  "Joel de Guzman <joel -at- boost-consulting.com>"
+           "Hartmut Kaiser <hartmut.kaiser -at- gmail.com>"
+           "Dan Nuffer"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/spirit/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(spirit DEPENDS xpressive optional)
\ No newline at end of file
Added: trunk/libs/spirit/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,85 @@
+boost_test_run(qi_actions qi/actions.cpp)
+boost_test_run(qi_char qi/char.cpp)
+boost_test_run(qi_char_class qi/char_class.cpp)
+boost_test_run(qi_lit qi/lit.cpp)
+boost_test_run(qi_int qi/int.cpp)
+boost_test_run(qi_uint qi/uint.cpp)
+boost_test_run(qi_real qi/real.cpp)
+boost_test_run(qi_eps qi/eps.cpp)
+boost_test_run(qi_none qi/none.cpp)
+boost_test_run(qi_lazy qi/lazy.cpp)
+boost_test_run(qi_tst qi/tst.cpp)
+boost_test_run(qi_symbols qi/symbols.cpp)
+boost_test_run(qi_range_run qi/range_run.cpp)
+boost_test_run(qi_no_case qi/no_case.cpp)
+boost_test_run(qi_lexeme qi/lexeme.cpp)
+boost_test_run(qi_raw qi/raw.cpp)
+boost_test_run(qi_sequence qi/sequence.cpp)
+boost_test_run(qi_alternative qi/alternative.cpp)
+boost_test_run(qi_sequential_or qi/sequential_or.cpp)
+boost_test_run(qi_permutation qi/permutation.cpp)
+boost_test_run(qi_difference qi/difference.cpp)
+boost_test_run(qi_list qi/list.cpp)
+boost_test_run(qi_optional qi/optional.cpp)
+boost_test_run(qi_kleene qi/kleene.cpp)
+boost_test_run(qi_plus qi/plus.cpp)
+boost_test_run(qi_and_predicate qi/and_predicate.cpp)
+boost_test_run(qi_not_predicate qi/not_predicate.cpp)
+boost_test_run(qi_expect qi/expect.cpp)
+boost_test_run(qi_rule qi/rule.cpp)
+boost_test_run(qi_grammar qi/grammar.cpp)
+boost_test_run(qi_functor qi/functor.cpp)
+boost_test_run(qi_match_manip qi/match_manip.cpp)
+boost_test_run(qi_binary qi/binary.cpp)
+boost_test_run(qi_debug qi/debug.cpp)
+boost_test_run(qi_end qi/end.cpp)
+
+boost_test_compile_fail(qi_grammar_fail qi/grammar_fail.cpp)
+boost_test_compile_fail(qi_rule_fail qi/rule_fail.cpp)
+
+    # run Karma tests
+boost_test_run(karma_actions karma/actions.cpp) #              : : : : karma_actions ]
+boost_test_run(karma_alternative karma/alternative.cpp) #              : : : : karma_alternative ]
+boost_test_run(karma_binary karma/binary.cpp) #                   : : : : karma_binary ]
+boost_test_run(karma_case_handling karma/case_handling.cpp)
+boost_test_run(karma_center_alignment karma/center_alignment.cpp)
+boost_test_run(karma_char karma/char.cpp) #                     : : : : karma_char ]
+boost_test_run(karma_delimieter karma/delimiter.cpp)
+boost_test_run(karma_eol karma/eol.cpp) #                      : : : : karma_eol ]
+boost_test_run(karma_eps karma/eps.cpp) #                      : : : : karma_eps ]
+boost_test_run(karma_format_manip karma/format_manip.cpp)
+boost_test_run(karma_functor karma/functor.cpp) #                  : : : : karma_functor ]
+boost_test_run(karma_grammar karma/grammar.cpp) #                  : : : : karma_grammar ]
+boost_test_run(karma_int_numerics karma/int_numerics.cpp)
+boost_test_run(karma_kleene karma/kleene.cpp) #                   : : : : karma_kleene ]
+boost_test_run(karma_lazy karma/lazy.cpp) #                     : : : : karma_lazy ]
+boost_test_run(karma_left_alignment karma/left_alignment.cpp)
+boost_test_run(karma_list karma/list.cpp) #                     : : : : karma_list ]
+boost_test_run(karma_lit karma/lit.cpp) #                      : : : : karma_lit ]
+boost_test_run(karma_none karma/none.cpp) #                     : : : : karma_none ]
+boost_test_run(karma_optional karma/optional.cpp) #                 : : : : karma_optional ]
+boost_test_run(karma_pattern karma/pattern.cpp)
+boost_test_run(karma_real_numerics karma/real_numerics.cpp)
+boost_test_run(karma_right_alignment karma/right_alignment.cpp)
+boost_test_run(karma_sequence karma/sequence.cpp) #                 : : : : karma_sequence ]
+
+boost_test_compile_fail(karma_grammar_fail karma/grammar_fail.cpp) #   : : karma_grammar_fail ]
+boost_test_compile_fail(karma_rule_fail karma/rule_fail.cpp) #      : : karma_rule_fail ]
+
+    # run support tests
+boost_test_run(support_hold_any support/hold_any.cpp)
+# the multi_pass tests are not completed yet
+#    [ run support/multi_pass_compile.cpp    : : : : ]
+#    [ run support/multi_pass.cpp            : : : : ]
+
+    # run lexer tests
+boost_test_run(lex_lexertl1 lex/lexertl1.cpp)
+boost_test_run(lex_lexertl2 lex/lexertl2.cpp)
+boost_test_run(lex_lexertl3 lex/lexertl3.cpp)
+boost_test_run(lex_lexertl4 lex/lexertl4.cpp)
+boost_test_run(lex_lexertl5 lex/lexertl5.cpp)
+boost_test_run(lex_state_switcher_test lex/state_switcher_test.cpp)
+
+
+
+
Added: trunk/libs/statechart/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/statechart/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    statechart
+)
+
+# Add a library target to the build system
+boost_library_project(
+  statechart
+  #  SRCDIRS 
+  TESTDIRS  test example
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Arbitrarily complex finite state machines can be implemented in easily readable and maintainable C++ code."
+  MODULARIZED
+  AUTHORS  "Andreas Huber <ahd6974-boostorg -at- yahoo.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/statechart/example/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/statechart/example/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/statechart/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/statechart/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/static_assert/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/static_assert/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    static_assert.hpp
+    
+)
+
+# Add a library target to the build system
+boost_library_project(
+  static_assert
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/static_assert/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/static_assert/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/system/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/system/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    system
+)
+
+# Add a library target to the build system
+boost_library_project(
+  system
+  SRCDIRS  src
+  #  TESTDIRS 
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/system/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/system/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(system DEPENDS utility)
\ No newline at end of file
Added: trunk/libs/system/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/system/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    test
+)
+
+# Add a library target to the build system
+boost_library_project(
+  test
+  SRCDIRS  src 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Support for simple program testing, full unit testing, and for program execution monitoring."
+  MODULARIZED 
+  AUTHORS  "Gennadiy Rozental <gennadiy.rozental -at- thomson.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/test/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/test/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(test DEPENDS smart_ptr timer io bind)
Added: trunk/libs/test/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/test/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/test/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/test/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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 SHARED)
+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: trunk/libs/thread/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/thread/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    thread.hpp
+    thread
+)
+
+# Add a library target to the build system
+boost_library_project(
+  thread
+  SRCDIRS  src 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/thread/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/thread/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(thread DEPENDS date_time bind optional range)
\ No newline at end of file
Added: trunk/libs/thread/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/thread/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/thread/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/thread/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,29 @@
+set(TESTS 
+test_thread
+test_thread_id
+test_hardware_concurrency
+test_thread_move
+test_thread_launching
+test_thread_mf
+test_move_function
+test_mutex
+test_condition_notify_one
+test_condition_timed_wait_times_out
+test_condition_notify_all
+test_condition
+test_tss
+test_once
+test_xtime
+test_barrier
+test_shared_mutex
+test_shared_mutex_part_2
+test_shared_mutex_timed_locks
+test_lock_concept
+test_generic_locks)
+
+foreach (TEST ${TESTS})
+  boost_test_run(${TEST} MULTI_THREADED DEPENDS boost_thread boost_unit_test_framework)
+endforeach (TEST ${TESTS})
+
+boost_test_compile_fail(no_implicit_move_from_lvalue_thread)
+boost_test_compile_fail(no_implicit_assign_from_lvalue_thread)
Added: trunk/libs/timer/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/timer/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    timer.hpp
+    
+)
+
+# Add a library target to the build system
+boost_library_project(
+  timer
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/timer/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/timer/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_test_compile(timer_test ../timer_test.cpp)
Added: trunk/libs/tokenizer/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/tokenizer/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    tokenizer.hpp
+)
+
+# Add a library target to the build system
+boost_library_project(
+  tokenizer
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/tokenizer/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/tokenizer/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/tr1/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/tr1/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    tr1
+)
+
+# Add a library target to the build system
+boost_library_project(
+  tr1
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "An implementation of the C++ Technical Report on Standard Library Extensions. 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."
+  MODULARIZED
+  AUTHORS  "John Maddock <john -at- johnmaddock.co.uk>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/tr1/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/tr1/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(tr1 DEPENDS fusion)
\ No newline at end of file
Added: trunk/libs/tr1/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/tr1/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,60 @@
+include_directories(${Boost_SOURCE_DIR}/boost/tr1/tr1)
+include_directories(${Boost_SOURCE_DIR}/libs/tr1/include/boost/tr1/tr1)
+
+if (BORLAND)
+  # Borland's broken include mechanism needs these extra headers:
+  include_directories(${Boost_SOURCE_DIR}/boost/tr1/tr1/bcc32)  
+  include_directories(${Boost_SOURCE_DIR}/libs/tr1/include//boost/tr1/tr1/bcc32)
+endif (BORLAND)
+
+macro(boost_glob_test_compile path glob_par compile_flags)
+  list_contains(WITH_STD "WITH_STD" ${ARGN})
+  list_contains(STD_HEADER_TEST "STD_HEADER_TEST" ${ARGN})
+  file(GLOB file_list ${path}/${glob_par})
+  foreach (current_file ${file_list})
+    get_filename_component(file_name ${current_file} NAME_WE)
+    set(test_name "${file_name}")
+    if (${STD_HEADER_TEST})
+      set(test_name "${file_name}_header")
+    endif ()
+    boost_test_compile(${test_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 "")
+# TODO: there's a problem here where the testing code is generating duplicate 
+# target names.
+message(STATUS "TR1 tests need some love")
+# boost_glob_test_compile(std_headers *.cpp "-DTEST_STD=1" STD_HEADER_TEST)
+boost_glob_test_compile(cyclic_depend *.cpp "")
Added: trunk/libs/tuple/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/tuple/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    tuple
+)
+
+# Add a library target to the build system
+boost_library_project(
+  tuple
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Ease definition of functions returning multiple values, and more."
+  MODULARIZED 
+  AUTHORS  "Jaakko Jarvi <jarvi -at- cs.tamu.edu>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/tuple/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/tuple/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/type_traits/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/type_traits/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,34 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    type_traits.hpp
+    type_traits
+)
+
+# Add a library target to the build system
+boost_library_project(
+  type_traits
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Templates for fundamental properties of types."
+  MODULARIZED 
+  AUTHORS  "David Abrahams <dave -at- boostpro.com>"
+           "Steve Cleary" 
+           "Beman Dawes <bdawes -at- acm.org>" 
+           "Aleksey Gurtovoy <agurtovoy -at- meta-comm.com>" 
+           "Howard Hinnant" 
+           "Jesse Jones" 
+           "Mat Marcus" 
+           "Itay Maman" 
+           "John Maddock <john -at- johnmaddock.co.uk>" 
+           "Alexander Nasonov <alexander.nasonov -at- gmail.com>" 
+           "Thorsten Ottosen <nesotto -at- cs.auc.dk>"
+           "Robert Ramey <ramey -at- rrsd.com>" 
+           "Jeremy Siek <jeremy.siek -at- gmail.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/type_traits/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/type_traits/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(type_traits DEPENDS config static_assert)
\ No newline at end of file
Added: trunk/libs/type_traits/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/type_traits/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/typeof/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/typeof/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    typeof
+)
+
+# Add a library target to the build system
+boost_library_project(
+  typeof
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/typeof/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/typeof/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/units/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/units/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    units
+)
+
+# Add a library target to the build system
+boost_library_project(
+  units
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Zero-overhead dimensional analysis and unit/quantity manipulation and conversion."
+  MODULARIZED
+  AUTHORS  "Matthias Schabel <boost -at- schabel-family.org>"
+           "Steven Watanabe <steven -at- providere-consulting.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/units/doc/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/units/doc/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,2 @@
+message(STATUS "libs/units/doc needs love")
+
Added: trunk/libs/units/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/units/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,62 @@
+set(COMPILE_TESTS 
+  test_predicates
+  test_negative_denominator
+  test_dimensionless_ice1
+  test_dimensionless_ice2
+  test_mixed_value_types
+  test_complicated_system
+  )
+
+foreach(C ${COMPILE_TESTS})
+  boost_test_compile(${C})
+endforeach(C ${COMPILE_TESTS})
+
+set(RUN_TESTS
+  test_dimensionless_quantity
+  test_implicit_conversion
+  test_quantity
+  test_unit
+  test_conversion
+  test_base_dimension
+  test_absolute
+  test_default_conversion
+  test_cmath
+  test_limits
+  test_custom_unit
+  test_scaled_conversion
+  test_lambda
+  )
+
+foreach(R ${RUN_TESTS})
+  boost_test_run(${R})
+endforeach(R ${RUN_TESTS})
+
+boost_test_run(test_scaled_unit DEPENDS boost_unit_test_framework)
+
+
+set(COMPILE_FAIL_TESTS
+  fail_implicit_conversion
+  fail_quantity_construct
+  fail_quantity_assign
+  fail_quantity_add
+  fail_quantity_subtract
+  fail_quantity_add_assign
+  fail_quantity_sub_assign
+  fail_quantity_scalar_add
+  fail_quantity_scalar_sub
+  fail_quantity_unit_add
+  fail_quantity_unit_subtract
+  fail_scalar_quantity_add
+  fail_scalar_quantity_sub
+  fail_unit_quantity_add
+  fail_unit_quantity_subtract
+  fail_adl_detail
+  fail_heterogeneous_unit
+  fail_base_dimension
+  fail_add_temperature
+  fail_quantity_non_unit
+  )
+
+foreach(F ${COMPILE_FAIL_TESTS})
+  boost_test_compile_fail(${F})
+endforeach(F ${COMPILE_FAIL_TESTS})
Added: trunk/libs/unordered/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/unordered/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,23 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    unordered_map.hpp
+    unordered_set.hpp
+    unordered
+)
+
+# Add a library target to the build system
+boost_library_project(
+  unordered
+  #  SRCDIRS 
+  #  TESTDIRS 
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/utility/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/utility/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,31 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    assert.hpp
+    call_traits.hpp
+    checked_delete.hpp
+    compressed_pair.hpp
+    current_function.hpp
+    operators.hpp
+    throw_exception.hpp
+    utility.hpp
+    utility
+)
+
+# Add a library target to the build system
+boost_library_project(
+  utility
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Various small utilities for C++ programming."
+  MODULARIZED 
+  AUTHORS  "David Abrahams <dave -at- boostpro.com>"
+           "Brad King"
+           "Douglas Gregor <doug.gregor -at- gmail.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/utility/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/utility/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(utility DEPENDS iterator exception detail )
\ No newline at end of file
Added: trunk/libs/utility/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/utility/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/variant/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/variant/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    variant.hpp
+    variant
+)
+
+# Add a library target to the build system
+boost_library_project(
+  variant
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  #  DESCRIPTION 
+  MODULARIZED 
+  #  AUTHORS 
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/variant/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/variant/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/libs/wave/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/wave/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,22 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    wave.hpp
+    wave
+)
+
+# Add a library target to the build system
+boost_library_project(
+  wave
+  SRCDIRS  src 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "A standards-conformant and highly-configurable implementation of the mandated C99/C++ preprocessor functionality packed behind an easy to use iterator interface."
+  MODULARIZED
+  AUTHORS  "Hartmut Kaiser <hartmut.kaiser -at- gmail.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/wave/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/wave/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(wave DEPENDS filesystem program_options spirit thread pool intrusive)
\ No newline at end of file
Added: trunk/libs/wave/src/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/wave/src/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,17 @@
+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 boost_thread boost_date_time
+  SHARED_COMPILE_FLAGS "-DBOOST_ALL_DYN_LINK=1"
+  NO_SINGLE_THREADED
+)
Added: trunk/libs/wave/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/wave/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,2 @@
+message(STATUS "wave tests need love")
+
Added: trunk/libs/xpressive/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/xpressive/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+#----------------------------------------------------------------------------
+# This file was automatically generated from the original CMakeLists.txt file
+# Add a variable to hold the headers for the library
+set (lib_headers
+    xpressive
+)
+
+# Add a library target to the build system
+boost_library_project(
+  xpressive
+  #  SRCDIRS 
+  TESTDIRS  test
+  HEADERS ${lib_headers}
+  #  DOCDIRS 
+  DESCRIPTION  "Regular expressions that can be written as strings or as expression templates, and which can refer to each other and themselves recursively with the power of context-free grammars."
+  MODULARIZED
+  AUTHORS  "Eric Niebler <eric -at- boost-consulting.com>"
+  #  MAINTAINERS 
+)
+
+
Added: trunk/libs/xpressive/module.cmake
==============================================================================
--- (empty file)
+++ trunk/libs/xpressive/module.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1 @@
+boost_module(xpressive DEPENDS fusion)
\ No newline at end of file
Added: trunk/libs/xpressive/test/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/libs/xpressive/test/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,72 @@
+#  : 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_format
+  test_cycles
+  test_non_char
+  test_static
+  test_dynamic
+  test_dynamic_grammar
+  test_skip
+  )
+
+foreach(runtest ${runtests})
+  boost_test_run(${runtest} DEPENDS boost_unit_test_framework)
+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: trunk/tools/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/tools/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,3 @@
+# add_subdirectory(quickbook)
+# add_subdirectory(wave)
+add_subdirectory(bcp)
\ No newline at end of file
Added: trunk/tools/bcp/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/tools/bcp/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,31 @@
+boost_tool_project(bcp
+DESCRIPTION "The bcp utility is a tool for extracting subsets of Boost."
+AUTHORS "John Maddock")
+
+option(BOOST_BUILD_BCP "Build the bcp tool" ON)
+IF (BOOST_BUILD_BCP)
+
+# add_definitions("-DBOOST_REGEX_NO_LIB=1")
+boost_test_add_dependent_includes("filesystem;smart_ptr;config;detail;system;iterator;exception;type_traits;static_assert;utility;mpl;preprocessor;integer;regex;date_time;algorithm")
+
+set (bcp_sources
+  add_path.cpp 
+  bcp_imp.cpp 
+  copy_path.cpp 
+  file_types.cpp
+  fileview.cpp 
+  main.cpp 
+  path_operations.cpp 
+  scan_cvs_path.cpp 
+  licence_info.cpp 
+  scan_licence.cpp 
+  output_licence_info.cpp
+)
+
+boost_add_executable(
+  bcp
+  ${bcp_sources}
+  DEPENDS boost_filesystem boost_prg_exec_monitor boost_regex
+)
+
+ENDIF (BOOST_BUILD_BCP)
\ No newline at end of file
Added: trunk/tools/build/CMake/BoostBuildSlave.cmake
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/BoostBuildSlave.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,157 @@
+##########################################################################
+# Boost Build Slave Support                                              #
+##########################################################################
+# Copyright (C) 2008 Troy D. Straszheim                                  #
+#                                                                        #
+# Distributed under the Boost Software License, Version 1.0.             #
+# See accompanying file LICENSE_1_0.txt or copy at                       #
+#   http://www.boost.org/LICENSE_1_0.txt                                 #
+##########################################################################
+option(BOOST_BUILD_SLAVE "Be a build slave, report build/testing" OFF)
+
+file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}" BOOST_BUILD_SLAVE_PYTHONPATH)
+
+if(BOOST_BUILD_SLAVE)
+  set(BOOST_BUILD_SLAVE_SUBMIT_URL "http://boost:boost@boost.resophonic.com/trac/login/xmlrpc" 
+    CACHE STRING "URL to post regression testing results to.")
+
+  file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}" BOOST_BUILD_SLAVE_PYTHONPATH)
+
+  set(BOOST_BUILD_SLAVE_TIMEOUT 300
+    CACHE STRING "Seconds until build slave times out any individual build step")    
+
+  set(BOOST_BUILD_SLAVE_DETAILS_FILE "slave-description.txt"
+    CACHE FILEPATH "Path to file, absolute or relative to build directory, containing descriptive text about the build (configuration peculiarities, etc) to be reported to the server")
+
+  set(BOOST_BUILD_SLAVE_CONTACT_INFO "buildmeister_at_[hidden]"
+    CACHE STRING "Contact information regarding this build")
+
+  set(BOOST_BUILD_SLAVE_HOSTNAME "" 
+    CACHE STRING "If set, don't report what python determines to be the FQDN of this host, report this string instead.")
+
+  set(BOOST_BUILD_SLAVE_SLEEP_DURATION "60" 
+    CACHE STRING "Number of seconds to sleep between checks for updates from the repository.")
+  
+endif(BOOST_BUILD_SLAVE)
+
+message(STATUS "Configuring test/compile drivers")
+  
+if(CMAKE_VERBOSE_MAKEFILE)
+  set(BOOST_DRIVER_VERBOSE True)
+else(CMAKE_VERBOSE_MAKEFILE)
+  set(BOOST_DRIVER_VERBOSE False)
+endif(CMAKE_VERBOSE_MAKEFILE)
+
+#
+# the programs that do the dirty work.
+#
+foreach(PYFILE boost_build_slave passthru marshal start finish info post classify)
+  configure_file(tools/build/CMake/${PYFILE}.py.in 
+    ${BOOST_BUILD_SLAVE_PYTHONPATH}/${PYFILE}.py 
+    @ONLY
+    )
+endforeach()
+
+if(WIN32)
+  configure_file(tools/build/CMake/windows_kill.py.in
+    ${BOOST_BUILD_SLAVE_PYTHONPATH}/kill_subprocess.py
+    COPYONLY
+    )
+else(WIN32)
+  configure_file(tools/build/CMake/unix_kill.py.in
+    ${BOOST_BUILD_SLAVE_PYTHONPATH}/kill_subprocess.py
+    COPYONLY
+    )
+endif(WIN32)
+
+
+#
+# the test driver is either marshal or passthru depending on whether
+# you're in build slave mode or not.  The compilation/link rules
+# aren't modified if you're not in slave mode, BUUUT the tests still 
+# need a driver script that knows whether to expect failure or not
+# and 'flips' the return status accordingly: thus passthru.py.
+#
+if(BOOST_BUILD_SLAVE)
+  file(TO_NATIVE_PATH ${BOOST_BUILD_SLAVE_PYTHONPATH}/marshal.py BOOST_TEST_DRIVER)
+
+  configure_file(tools/build/CMake/run_continuous_slave.py.in
+    ${CMAKE_BINARY_DIR}/run_continuous_slave.py
+    @ONLY
+    )
+
+else(BOOST_BUILD_SLAVE)
+  file(TO_NATIVE_PATH ${BOOST_BUILD_SLAVE_PYTHONPATH}/passthru.py BOOST_TEST_DRIVER)
+endif(BOOST_BUILD_SLAVE)
+
+if(BOOST_BUILD_SLAVE)
+  #
+  #  Redirect various build steps
+  # 
+  
+  set(CMAKE_CXX_COMPILE_OBJECT 
+    "\"${PYTHON_EXECUTABLE}\" \"${BOOST_TEST_DRIVER}\" <CMAKE_CURRENT_BINARY_DIR> cxx_compile_object <OBJECT> ${CMAKE_CXX_COMPILE_OBJECT}" )
+
+  set(CMAKE_CXX_CREATE_SHARED_LIBRARY  
+    "\"${PYTHON_EXECUTABLE}\" \"${BOOST_TEST_DRIVER}\" <CMAKE_CURRENT_BINARY_DIR> create_shared_library <TARGET> ${CMAKE_CXX_CREATE_SHARED_LIBRARY}") 
+    
+  set(CMAKE_CXX_CREATE_STATIC_LIBRARY  
+    "\"${PYTHON_EXECUTABLE}\" \"${BOOST_TEST_DRIVER}\" <CMAKE_CURRENT_BINARY_DIR> create_static_library <TARGET> ${CMAKE_CXX_CREATE_STATIC_LIBRARY}") 
+
+  set(CMAKE_CXX_LINK_EXECUTABLE  
+    "\"${PYTHON_EXECUTABLE}\" \"${BOOST_TEST_DRIVER}\" <CMAKE_CURRENT_BINARY_DIR> link_executable <TARGET> ${CMAKE_CXX_LINK_EXECUTABLE}") 
+
+  #
+  #  Custom targets for talking to the server via xmlrpc
+  #
+
+
+  #
+  #  Get us a new build id from the server
+  #
+  file(TO_NATIVE_PATH ${BOOST_BUILD_SLAVE_PYTHONPATH}/start.py 
+    BOOST_BUILD_SLAVE_START_PY)
+  add_custom_target(slave-start
+    COMMAND ${PYTHON_EXECUTABLE} ${BOOST_BUILD_SLAVE_START_PY}
+    COMMENT "Slave starting build"
+    )
+
+  #
+  #  Tell server we're done... it'll update finish time in the db.
+  #
+  file(TO_NATIVE_PATH ${BOOST_BUILD_SLAVE_PYTHONPATH}/finish.py 
+    BOOST_BUILD_SLAVE_FINISH_PY)
+  add_custom_target(slave-finish
+    COMMAND ${PYTHON_EXECUTABLE} ${BOOST_BUILD_SLAVE_FINISH_PY}
+    COMMENT "Slave finishing build"
+    )
+  #
+
+  #  Local only:  show what we report to server (our platform description, toolset, etc)
+  #
+  file(TO_NATIVE_PATH ${BOOST_BUILD_SLAVE_PYTHONPATH}/info.py 
+    BOOST_BUILD_SLAVE_INFO_PY)
+  add_custom_target(slave-info
+    COMMAND ${PYTHON_EXECUTABLE} ${BOOST_BUILD_SLAVE_INFO_PY}
+    COMMENT "Print slave info"
+    )
+endif(BOOST_BUILD_SLAVE)
+
+#
+#  Used over in BoostTesting and BoostCore to attach xmlrpc submission rules
+#  to various intermediate build targets (libraries, test suites) 
+#
+
+file(TO_NATIVE_PATH ${BOOST_BUILD_SLAVE_PYTHONPATH}/post.py 
+  BOOST_BUILD_SLAVE_POST_PY)
+macro(boost_post_results PROJECT_NAME_ PARENT_TARGET BUILD_OR_TEST LOGDIR)
+  if(BOOST_BUILD_SLAVE)
+    add_custom_command(TARGET ${PARENT_TARGET}
+      POST_BUILD
+      COMMAND ${PYTHON_EXECUTABLE} ${BOOST_BUILD_SLAVE_POST_PY} ${PROJECT_NAME_} ${PARENT_TARGET} ${BUILD_OR_TEST} ${LOGDIR}
+      COMMENT "Submitting results for '${BUILD_OR_TEST}' of ${PARENT_TARGET} in ${PROJECT_NAME_}"
+      )
+    set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${LOGDIR}/Log.marshal)
+    add_dependencies(test ${PARENT_TARGET})
+  endif(BOOST_BUILD_SLAVE)
+endmacro(boost_post_results PARENT_TARGET)
Added: trunk/tools/build/CMake/BoostConfig.cmake
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/BoostConfig.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,161 @@
+##########################################################################
+# 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)
+
+#
+#  Python interpreter
+#
+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}")
+
+# Toolset detection.
+if (NOT BOOST_TOOLSET)
+  set(BOOST_TOOLSET "unknown")
+  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(MSVC90)
+    set(BOOST_TOOLSET "vc90")
+  elseif(MSVC)
+    set(BOOST_TOOLSET "vc")
+  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: trunk/tools/build/CMake/BoostCore.cmake
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/BoostCore.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,1360 @@
+##########################################################################
+# Core Functionality 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                                 #
+##########################################################################
+# 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.                            #
+##########################################################################
+
+add_custom_target(modularize)
+
+# Defines a Boost library project (e.g., for Boost.Python). Use as:
+#
+#   boost_library_project(libname
+#                         [SRCDIRS srcdir1 srcdir2 ...] 
+#                         [TESTDIRS testdir1 testdir2 ...]
+#                         [DEPENDS lib1 lib2 ...]
+#                         [DESCRIPTION description]
+#                         [AUTHORS author1 author2 ...]
+#                         [MAINTAINERS maint1 maint2 ...]
+#                         [MODULARIZED])
+#
+# 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. DEPENDS lists the names of the other
+# Boost libraries that this library depends on. If the dependencies
+# are not satisfied (e.g., because the library isn't present or its
+# build is turned off), this library won't be built. 
+#
+# DESCRIPTION provides a brief description of the library, which can
+# be used to summarize the behavior of the library for a user. AUTHORS
+# lists the authors of the library, while MAINTAINERS lists the active
+# maintainers. If MAINTAINERS is left empty, it is assumed that the 
+# authors are still maintaining the library. Both authors and maintainers
+# should have their name followed by their current e-mail address in
+# angle brackets, with -at- instead of the at sign, e.g.,
+#   Douglas Gregor <doug.gregor -at- gmail.com>
+#
+# 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;HEADERS;DOCDIRS;DESCRIPTION;AUTHORS;MAINTAINERS"
+    "MODULARIZED"
+    ${ARGN}
+    )
+
+  # Set THIS_PROJECT_DEPENDS_ALL to the set of all of its
+  # dependencies, its dependencies' dependencies, etc., transitively.
+  string(TOUPPER "BOOST_${LIBNAME}_DEPENDS" THIS_PROJECT_DEPENDS)
+  set(THIS_PROJECT_DEPENDS_ALL ${${THIS_PROJECT_DEPENDS}})
+  set(ADDED_DEPS TRUE)
+  while (ADDED_DEPS)
+    set(ADDED_DEPS FALSE)
+    foreach(DEP ${THIS_PROJECT_DEPENDS_ALL})
+      string(TOUPPER "BOOST_${DEP}_DEPENDS" DEP_DEPENDS)
+      foreach(DEPDEP ${${DEP_DEPENDS}})
+        list(FIND THIS_PROJECT_DEPENDS_ALL ${DEPDEP} DEPDEP_INDEX)
+        if (DEPDEP_INDEX EQUAL -1)
+          list(APPEND THIS_PROJECT_DEPENDS_ALL ${DEPDEP})
+          set(ADDED_DEPS TRUE)
+        endif()
+      endforeach()
+    endforeach()
+  endwhile()
+
+  set(THIS_PROJECT_OKAY ON)
+
+  if(FALSE)
+    # This really isn't the check we want to do, especially when we
+    # hit circular dependencies. For now, just enable all libraries to
+    # be built all the time, until we can implement proper subsetting
+    # behavior at the CMake level.
+    set(THIS_PROJECT_FAILED_DEPS "")
+    foreach(DEP ${THIS_PROJECT_DEPENDS_ALL})
+      string(TOUPPER "BUILD_BOOST_${DEP}" BOOST_LIB_DEP)
+      if (NOT ${BOOST_LIB_DEP})
+        set(THIS_PROJECT_OKAY OFF)
+        set(THIS_PROJECT_FAILED_DEPS "${THIS_PROJECT_FAILED_DEPS}  ${DEP}\n")
+      endif (NOT ${BOOST_LIB_DEP})
+    endforeach(DEP)
+  endif(FALSE)
+
+  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.
+    if (NOT THIS_PROJECT_OKAY)
+      if (${BOOST_BUILD_LIB_OPTION})
+        # The user explicitly turned on this library in a prior
+        # iteration, but it can no longer be built because one of the
+        # dependencies was turned off. Force this option off and
+        # complain about it.
+        set(${BOOST_BUILD_LIB_OPTION} OFF
+          CACHE BOOL "Build Boost.${LIBNAME} (prefer make targets, not this, to build individual libs)" FORCE)
+        message(SEND_ERROR 
+      "Cannot build Boost.${LIBNAME} due to missing library dependencies:\n${THIS_PROJECT_FAILED_DEPS}")
+      endif (${BOOST_BUILD_LIB_OPTION})
+    endif (NOT THIS_PROJECT_OKAY)
+  endif (THIS_PROJECT_SRCDIRS)
+
+  if(THIS_PROJECT_OKAY)
+    string(TOLOWER "${LIBNAME}" libname)
+    string(TOUPPER "${LIBNAME}" ULIBNAME)
+    project(${LIBNAME})
+    
+    if (THIS_PROJECT_MODULARIZED OR THIS_PROJECT_SRCDIRS)
+      # We only build a component group for modularized libraries or libraries
+      # that have compiled parts.
+      if (COMMAND cpack_add_component_group)
+        # Compute a reasonable description for this library.
+        if (THIS_PROJECT_DESCRIPTION)
+          set(THIS_PROJECT_DESCRIPTION "Boost.${LIBNAME}\n\n${THIS_PROJECT_DESCRIPTION}")
+         
+          if (THIS_PROJECT_AUTHORS)
+            list(LENGTH THIS_PROJECT_AUTHORS THIS_PROJECT_NUM_AUTHORS)
+            if (THIS_PROJECT_NUM_AUTHORS EQUAL 1)
+              set(THIS_PROJECT_DESCRIPTION "${THIS_PROJECT_DESCRIPTION}\n\nAuthor: ")
+            else()
+              set(THIS_PROJECT_DESCRIPTION "${THIS_PROJECT_DESCRIPTION}\n\nAuthors: ")
+            endif()
+            set(THIS_PROJECT_FIRST_AUTHOR TRUE)
+            foreach(AUTHOR ${THIS_PROJECT_AUTHORS})
+              string(REGEX REPLACE " *-at- *" "@" AUTHOR ${AUTHOR})
+              if (THIS_PROJECT_FIRST_AUTHOR)
+                set(THIS_PROJECT_FIRST_AUTHOR FALSE)
+              else()
+                set(THIS_PROJECT_DESCRIPTION "${THIS_PROJECT_DESCRIPTION}\n         ")
+              endif()
+              set(THIS_PROJECT_DESCRIPTION "${THIS_PROJECT_DESCRIPTION}${AUTHOR}")
+            endforeach(AUTHOR)
+          endif (THIS_PROJECT_AUTHORS)
+
+          if (THIS_PROJECT_MAINTAINERS)
+            list(LENGTH THIS_PROJECT_MAINTAINERS THIS_PROJECT_NUM_MAINTAINERS)
+            if (THIS_PROJECT_NUM_MAINTAINERS EQUAL 1)
+              set(THIS_PROJECT_DESCRIPTION "${THIS_PROJECT_DESCRIPTION}\nMaintainer: ")
+            else()
+              set(THIS_PROJECT_DESCRIPTION "${THIS_PROJECT_DESCRIPTION}\nMaintainers: ")
+            endif()
+            set(THIS_PROJECT_FIRST_MAINTAINER TRUE)
+            foreach(MAINTAINER ${THIS_PROJECT_MAINTAINERS})
+              string(REGEX REPLACE " *-at- *" "@" MAINTAINER ${MAINTAINER})
+              if (THIS_PROJECT_FIRST_MAINTAINER)
+                set(THIS_PROJECT_FIRST_MAINTAINER FALSE)
+              else()
+                set(THIS_PROJECT_DESCRIPTION "${THIS_PROJECT_DESCRIPTION}\n             ")
+              endif()
+              set(THIS_PROJECT_DESCRIPTION "${THIS_PROJECT_DESCRIPTION}${MAINTAINER}")
+            endforeach(MAINTAINER)
+          endif (THIS_PROJECT_MAINTAINERS)
+        endif (THIS_PROJECT_DESCRIPTION)
+      
+        # Create a component group for this library
+        cpack_add_component_group(${libname}
+          DISPLAY_NAME "${LIBNAME}"
+          DESCRIPTION ${THIS_PROJECT_DESCRIPTION})
+      endif ()
+    endif ()
+        
+    if (THIS_PROJECT_MODULARIZED)
+      # Add this module's include directory
+      include_directories("${Boost_SOURCE_DIR}/libs/${libname}/include")
+     
+      # Install this module's headers
+      install(DIRECTORY include/boost 
+        DESTINATION ${BOOST_HEADER_DIR}
+        COMPONENT ${libname}_headers
+        PATTERN "CVS" EXCLUDE
+        PATTERN ".svn" EXCLUDE)
+        
+      if (COMMAND cpack_add_component)        
+        # Determine the header dependencies
+        set(THIS_PROJECT_HEADER_DEPENDS)
+        foreach(DEP ${${THIS_PROJECT_DEPENDS}})
+          string(TOLOWER ${DEP} dep)
+          if (${dep} STREQUAL "serialization")
+            # TODO: Ugly, ugly hack until the serialization library is modularized
+          elseif (${dep} STREQUAL "thread")
+          else()
+            list(APPEND THIS_PROJECT_HEADER_DEPENDS ${dep}_headers)
+          endif()
+        endforeach(DEP)
+
+        # Tell CPack about the headers component
+        cpack_add_component(${libname}_headers
+          DISPLAY_NAME "Header files"
+          GROUP      ${libname}
+          DEPENDS    ${THIS_PROJECT_HEADER_DEPENDS})
+      endif ()
+    endif ()
+
+#-- This is here to debug the modularize code
+    set(modularize_debug FALSE)
+    if (modularize_debug)
+      set(modularize_output ${Boost_BINARY_DIR})
+      set(modularize_libs_dir "modularize")
+    else (modularize_debug)
+      set(modularize_output ${Boost_SOURCE_DIR})
+      set(modularize_libs_dir "libs")
+    endif(modularize_debug)
+      # Modularization code
+    if(THIS_PROJECT_HEADERS)
+      set(${LIBNAME}-modularize-commands)
+      foreach(item ${THIS_PROJECT_HEADERS})
+        if(EXISTS "${Boost_SOURCE_DIR}/boost/${item}")
+          if(IS_DIRECTORY "${Boost_SOURCE_DIR}/boost/${item}")
+            list(APPEND ${LIBNAME}-modularize-commands
+              COMMAND "${CMAKE_COMMAND}" -E copy_directory
+              "${Boost_SOURCE_DIR}/boost/${item}"
+              "${modularize_output}/${modularize_libs_dir}/${libname}/include/boost/${item}"
+              )
+            if (NOT modularize_debug)
+                list(APPEND ${LIBNAME}-modularize-commands
+                     COMMAND "${CMAKE_COMMAND}" -E remove_directory "${Boost_SOURCE_DIR}/boost/${item}" 
+                    )
+            endif (NOT modularize_debug)
+          else(IS_DIRECTORY "${Boost_SOURCE_DIR}/boost/${item}")
+            list(APPEND ${LIBNAME}-modularize-commands
+              COMMAND "${CMAKE_COMMAND}" -E copy
+              "${Boost_SOURCE_DIR}/boost/${item}"
+              "${modularize_output}/${modularize_libs_dir}/${libname}/include/boost/${item}"
+              )
+            if (NOT modularize_debug)
+                list(APPEND ${LIBNAME}-modularize-commands
+                     COMMAND "${CMAKE_COMMAND}" -E remove "${Boost_SOURCE_DIR}/boost/${item}" 
+                    )
+            endif (NOT modularize_debug)
+            
+          endif(IS_DIRECTORY "${Boost_SOURCE_DIR}/boost/${item}")
+        elseif(EXISTS "${Boost_SOURCE_DIR}/${modularize_libs_dir}/${libname}/include/boost/${item}")
+          # Okay; already modularized
+        else()
+          message(SEND_ERROR 
+            "Header or directory boost/${item} does not exist. The HEADERS argument in ${Boost_SOURCE_DIR}/${modularize_libs_dir}/${libname}/CMakeLists.txt should be updated.")
+        endif()
+      endforeach(item)
+
+      if (${LIBNAME}-modularize-commands)
+        set(${LIBNAME}-modularize-commands
+         # COMMAND "${CMAKE_COMMAND}" -E remove_directory "${modularize_output}/libs/${libname}/include"
+          COMMAND "${CMAKE_COMMAND}" -E make_directory
+          "${modularize_output}/${modularize_libs_dir}/${libname}/include/boost"
+          ${${LIBNAME}-modularize-commands}
+          )
+        if (NOT modularize_debug)
+          set(${LIBNAME}-modularize-commands
+            COMMAND "${CMAKE_COMMAND}" -E remove_directory "${modularize_output}/${modularize_libs_dir}/${libname}/include"
+            ${${LIBNAME}-modularize-commands}
+          )
+        endif (NOT modularize_debug)
+        add_custom_target(${LIBNAME}-modularize
+          ${${LIBNAME}-modularize-commands}
+          COMMENT "Modularizing ${LIBNAME} headers to project-local dir from monolithic boost dir"
+      )
+
+        if(THIS_PROJECT_MODULARIZED)
+          add_dependencies(modularize ${LIBNAME}-modularize)
+        endif(THIS_PROJECT_MODULARIZED)
+      endif()
+    endif(THIS_PROJECT_HEADERS)
+    
+    # For each of the modular libraries on which this project depends,
+    # add the include path for that library.
+    set(THIS_PROJECT_HAS_HEADER_DEPENDS FALSE)
+    foreach(DEP ${THIS_PROJECT_DEPENDS_ALL})
+      include_directories("${modularize_output}/${modularize_libs_dir}/${DEP}/include")
+    endforeach(DEP)
+
+    # TODO: is this still necessary?
+    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
+    if(THIS_PROJECT_SRCDIRS)
+      foreach(SUBDIR ${THIS_PROJECT_SRCDIRS})
+    add_subdirectory(${SUBDIR})
+      endforeach(SUBDIR ${THIS_PROJECT_SRCDIRS})
+    endif()
+
+    if(BUILD_TESTING AND THIS_PROJECT_TESTDIRS)
+      # Testing is enabled globally and this project has some
+      # tests. So, include the tests
+      add_custom_target(${PROJECT_NAME}-test)
+
+      add_dependencies(test ${PROJECT_NAME}-test)
+
+      # the last argument here, the binary directory that the 
+      # logs are in, has to match the binary directory
+      # passed to 'add_subdirectory', in the foreach() just below
+      boost_post_results(${PROJECT_NAME} ${PROJECT_NAME}-test
+    test
+    ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-test)
+
+      foreach(SUBDIR ${THIS_PROJECT_TESTDIRS})
+        add_subdirectory(${SUBDIR} ${PROJECT_NAME}-test)
+      endforeach()
+    endif(BUILD_TESTING AND THIS_PROJECT_TESTDIRS)
+
+    if (BUILD_DOCUMENTATION AND THIS_PROJECT_DOCDIRS)
+      foreach(SUBDIR ${THIS_PROJECT_DOCDIRS})
+        add_subdirectory(${SUBDIR})
+      endforeach(SUBDIR)
+    endif ()
+  endif()
+endmacro(boost_library_project)
+
+macro(boost_tool_project TOOLNAME)
+  parse_arguments(THIS_PROJECT
+    "DESCRIPTION;AUTHORS;MAINTAINERS"
+    ""
+    ${ARGN}
+    )
+
+  set(THIS_PROJECT_IS_TOOL TRUE)
+
+  string(TOUPPER ${TOOLNAME} UTOOLNAME)
+  set(THIS_PROJECT_OKAY ON)
+  set(THIS_PROJECT_FAILED_DEPS "")
+  foreach(DEP ${BOOST_${UTOOLNAME}_DEPENDS})
+    string(TOUPPER "BUILD_BOOST_${DEP}" BOOST_LIB_DEP)
+    if (NOT ${BOOST_LIB_DEP})
+      set(THIS_PROJECT_OKAY OFF)
+      set(THIS_PROJECT_FAILED_DEPS "${THIS_PROJECT_FAILED_DEPS}  ${DEP}\n")
+    endif (NOT ${BOOST_LIB_DEP})
+  endforeach(DEP)
+
+  option(BUILD_${UTOOLNAME} "Build ${TOOLNAME}" ON)
+
+  if (NOT THIS_PROJECT_OKAY)
+    if (BUILD_${UTOOLNAME})
+      # The user explicitly turned on this tool in a prior
+      # iteration, but it can no longer be built because one of the
+      # dependencies was turned off. Force this option off and
+      # complain about it.
+      set(BUILD_${UTOOLNAME} OFF CACHE BOOL "Build ${TOOLNAME}" FORCE)
+      message(SEND_ERROR "Cannot build ${TOOLNAME} due to missing library dependencies:\n${THIS_PROJECT_FAILED_DEPS}")
+    endif ()
+  endif (NOT THIS_PROJECT_OKAY)
+
+  if(BUILD_${UTOOLNAME} AND THIS_PROJECT_OKAY)
+    string(TOLOWER "${TOOLNAME}" toolname)
+    project(${TOOLNAME})
+    
+    # Add this module's include directory
+    include_directories("${Boost_SOURCE_DIR}/libs/${toolname}/include")
+
+    # For each of the modular libraries on which this project depends,
+    # add the include path for that library.
+    foreach(DEP ${BOOST_${UTOOLNAME}_DEPENDS})
+      string(TOUPPER ${DEP} UDEP)
+      include_directories("${Boost_SOURCE_DIR}/libs/${DEP}/include")
+    endforeach(DEP)
+  endif()
+endmacro(boost_tool_project)
+
+# TODO: Document me! (Here and on the Trac)
+macro(boost_module LIBNAME)
+  parse_arguments(THIS_MODULE
+    "DEPENDS"
+    ""
+    ${ARGN}
+    )
+
+  # Export BOOST_${LIBNAME}_DEPENDS
+  string(TOUPPER "BOOST_${LIBNAME}_DEPENDS" THIS_MODULE_LIBNAME_DEPENDS)
+  set(${THIS_MODULE_LIBNAME_DEPENDS} ${THIS_MODULE_DEPENDS})
+endmacro(boost_module)
+
+# 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 three 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.  If option BUILD_VERSIONED is OFF, this 
+#   variable is set to the empty string.
+#
+#   VARIANT_DISPLAY_NAME: The display name that describes this
+#   variant, e.g., "Debug, static, multi-threaded".
+#
+option(BUILD_VERSIONED "Add versioning information to names of built files" ON)
+
+macro(boost_library_variant_target_name)
+  set(VARIANT_TARGET_NAME "")
+
+  # The versioned name starts with the full Boost toolset
+  if(BUILD_VERSIONED)
+    set(VARIANT_VERSIONED_NAME "-${BOOST_TOOLSET}")
+  else(BUILD_VERSIONED)
+    set(VARIANT_VERSIONED_NAME "")
+  endif(BUILD_VERSIONED)
+
+  # 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")
+    set(VARIANT_DISPLAY_NAME "Static")
+  else (VARIANT_IS_STATIC)
+    set(VARIANT_TARGET_NAME "${VARIANT_TARGET_NAME}-shared")
+    set(VARIANT_DISPLAY_NAME "Shared")
+  endif (VARIANT_IS_STATIC)
+
+  # Add "multi-threaded" to the display name for multithreaded libraries.
+  if (VARIANT_IS_MT)
+    set(VARIANT_DISPLAY_NAME "${VARIANT_DISPLAY_NAME}, multi-threaded")
+  endif ()
+
+  # 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")
+    set(VARIANT_DISPLAY_NAME "${VARIANT_DISPLAY_NAME}, static runtime")
+  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")
+    set(VARIANT_DISPLAY_NAME "${VARIANT_DISPLAY_NAME}, Python debugging")
+  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")
+
+    set(VARIANT_DISPLAY_NAME "${VARIANT_DISPLAY_NAME}, debug")
+  else()
+    set(VARIANT_DISPLAY_NAME "${VARIANT_DISPLAY_NAME}, release")
+  endif()
+
+  # 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)
+
+  if(BUILD_VERSIONED)
+    # 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)
+  endif(BUILD_VERSIONED)
+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})
+    
+    boost_post_results(${PROJECT_NAME} ${VARIANT_LIBNAME} build ${CMAKE_CURRENT_BINARY_DIR})
+
+    # 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)
+
+    if(NOT THIS_LIB_NO_INSTALL)
+      # Setup installation properties
+      string(TOLOWER "${PROJECT_NAME}${VARIANT_TARGET_NAME}" LIB_COMPONENT)
+      string(REPLACE "-" "_" LIB_COMPONENT ${LIB_COMPONENT})
+      
+      # Installation of this library variant
+      string(TOLOWER ${PROJECT_NAME} libname)
+      install(TARGETS ${VARIANT_LIBNAME} DESTINATION lib COMPONENT ${LIB_COMPONENT})
+      set_property( 
+    TARGET ${VARIANT_LIBNAME}
+    PROPERTY BOOST_CPACK_COMPONENT
+    ${LIB_COMPONENT})
+      
+      # Make the library installation component dependent on the library
+      # installation components of dependent libraries.
+      set(THIS_LIB_COMPONENT_DEPENDS)
+      foreach(DEP ${THIS_LIB_DEPENDS})
+    # We ask the library variant that this library depends on to tell us
+    # what it's associated installation component is. We depend on that 
+    # installation component.
+    get_property(DEP_COMPONENT 
+          TARGET "${DEP}${VARIANT_TARGET_NAME}"
+          PROPERTY BOOST_CPACK_COMPONENT)
+        
+    if (DEP_COMPONENT)
+          if (DEP_COMPONENT STREQUAL LIB_COMPONENT)
+            # Do nothing: we have library dependencies within one 
+            # Boost library
+          else()
+            list(APPEND THIS_LIB_COMPONENT_DEPENDS ${DEP_COMPONENT})
+          endif()
+    endif()
+      endforeach(DEP)
+      
+      if (COMMAND cpack_add_component)
+        cpack_add_component(${LIB_COMPONENT}
+          DISPLAY_NAME "${VARIANT_DISPLAY_NAME}"
+          GROUP ${libname}
+          DEPENDS ${THIS_LIB_COMPONENT_DEPENDS})
+      endif ()
+    endif(NOT THIS_LIB_NO_INSTALL)
+  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;NO_INSTALL;${BOOST_ADDLIB_OPTION_NAMES}"
+    ${ARGN}
+    )
+  set(THIS_LIB_SOURCES ${THIS_LIB_DEFAULT_ARGS})
+
+  if (NOT TEST_INSTALLED_TREE)
+    # 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})
+  endif (NOT TEST_INSTALLED_TREE)
+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
+    # TODO: the use of ${PROJECT_NAME}/${EXENAME} is a bit strange.
+    # It's designed to keep the names of regression tests from one library
+    # separate from the regression tests of another library, but this can
+    # be handled better with OUTPUT_NAME. This would also allow us to eliminate
+    # the directory-creation logic in boost_library_project.
+    if (THIS_PROJECT_IS_TOOL)
+      set(THIS_EXE_NAME ${EXENAME})
+    else()
+      set(THIS_EXE_NAME ${PROJECT_NAME}-${EXENAME})
+    endif()
+    add_executable(${THIS_EXE_NAME} ${THIS_EXE_SOURCES})
+    
+    # Set the various compilation and linking flags
+    set_target_properties(${THIS_EXE_NAME}
+      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(${THIS_EXE_NAME}
+        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(${THIS_EXE_NAME}
+        PROPERTIES
+        OUTPUT_NAME ${THIS_EXE_OUTPUT_NAME}
+        )
+    endif()
+
+    # Link against the various libraries 
+    if (THIS_EXE_DEBUG_AND_RELEASE)
+      # Configuration-agnostic libraries
+      target_link_libraries(${THIS_EXE_NAME} ${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(${THIS_EXE_NAME} 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(${THIS_EXE_NAME} debug ${LIB})
+      endforeach(LIB ${THIS_EXE_DEBUG_ACTUAL_DEPENDS} ${THIS_EXE_DEBUG_LINK_LIBS})     
+    else (THIS_EXE_DEBUG_AND_RELEASE)
+      target_link_libraries(${THIS_EXE_NAME} 
+        ${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 ${THIS_EXE_NAME} DESTINATION bin)
+    endif (NOT THIS_EXE_NO_INSTALL)
+  endif (THIS_EXE_OKAY)
+endmacro(boost_add_executable)
Added: trunk/tools/build/CMake/BoostDocs.cmake
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/BoostDocs.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,520 @@
+##########################################################################
+# Boost Documentation Generation                                         #
+##########################################################################
+# Copyright (C) 2008 Douglas Gregor <doug.gregor_at_[hidden]>              #
+#                                                                        #
+# 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:                               #
+#                                                                        #
+##########################################################################
+
+# Transforms the source XML file by applying the given XSL stylesheet.
+#
+#   xsl_transform(output input [input2 input3 ...]
+#                 STYLESHEET stylesheet
+#                 [CATALOG catalog]
+#                 [DIRECTORY mainfile]
+#                 [PARAMETERS param1=value1 param2=value2 ...]
+#                 [[MAKE_ALL_TARGET | MAKE_TARGET] target]
+#                 [COMMENT comment])
+#
+# This macro builds a custom command that transforms an XML file
+# (input) via the given XSL stylesheet. The output will either be a
+# single file (the default) or a directory (if the DIRECTION argument
+# is specified). The STYLESBEET stylesheet must be a valid XSL
+# stylesheet. Any extra input files will be used as additional
+# dependencies for the target. For example, these extra input files
+# might refer to other XML files that are included by the input file
+# through XInclude.
+#
+# When the XSL transform output is going to a directory, the mainfile
+# argument provides the name of a file that will be generated within
+# the output directory. This file will be used for dependency tracking.
+# 
+# XML catalogs can be used to remap parts of URIs within the
+# stylesheet to other (typically local) entities. To provide an XML
+# catalog file, specify the name of the XML catalog file via the
+# CATALOG argument. It will be provided to the XSL transform.
+# 
+# The PARAMETERS argument is followed by param=value pairs that set
+# additional parameters to the XSL stylesheet. The parameter names
+# that can be used correspond to the <xsl:param> elements within the
+# stylesheet.
+# 
+# To associate a target name with the result of the XSL
+# transformation, use the MAKE_TARGET or MAKE_ALL_TARGET option and
+# provide the name of the target. The MAKE_ALL_TARGET option only
+# differs from MAKE_TARGET in that MAKE_ALL_TARGET will make the
+# resulting target a part of the default build.
+#
+# If a COMMENT argument is provided, it will be used as the comment
+# CMake provides when running this XSL transformation. Otherwise, the
+# comment will be "Generating "output" via XSL transformation...".
+macro(xsl_transform OUTPUT INPUT)
+  parse_arguments(THIS_XSL
+    "STYLESHEET;CATALOG;MAKE_ALL_TARGET;MAKE_TARGET;PARAMETERS;DIRECTORY;COMMENT"
+    ""
+    ${ARGN}
+    )
+  
+  # TODO: Is this the best way to handle catalogs? The alternative is
+  # that we could provide explicit remappings to the xsl_transform
+  # macro, and it could generate a temporary XML catalog file.
+  if (THIS_XSL_CATALOG)
+    set(THIS_XSL_CATALOG "XML_CATALOG_FILES=${THIS_XSL_CATALOG}")
+  endif ()
+
+  # Translate XSL parameters into a form that xsltproc can use.
+  set(THIS_XSL_EXTRA_FLAGS)
+  foreach(PARAM ${THIS_XSL_PARAMETERS})
+    string(REGEX REPLACE "([^=]*)=([^;]*)" "\\1;\\2"
+      XSL_PARAM_LIST ${PARAM})
+    list(GET XSL_PARAM_LIST 0 XSL_PARAM_NAME)
+    list(GET XSL_PARAM_LIST 1 XSL_PARAM_VALUE)
+    list(APPEND THIS_XSL_EXTRA_FLAGS 
+      --stringparam ${XSL_PARAM_NAME} ${XSL_PARAM_VALUE})
+  endforeach(PARAM)
+
+  # If the user didn't provide a comment for this transformation,
+  # create a default one.
+  if(NOT THIS_XSL_COMMENT)
+    set(THIS_XSL_COMMENT "Generating ${OUTPUT} via XSL transformation...")
+  endif()
+
+  # Figure out the actual output file that we tell CMake about
+  # (THIS_XSL_OUTPUT_FILE) and the output file or directory that we
+  # tell xsltproc about (THIS_XSL_OUTPUT).
+  if (THIS_XSL_DIRECTORY)
+    set(THIS_XSL_OUTPUT_FILE ${OUTPUT}/${THIS_XSL_DIRECTORY})
+    set(THIS_XSL_OUTPUT      ${OUTPUT}/)
+  else()
+    set(THIS_XSL_OUTPUT_FILE ${OUTPUT})
+    set(THIS_XSL_OUTPUT      ${OUTPUT})
+  endif()
+
+  if(NOT THIS_XSL_STYLESHEET)
+    message(SEND_ERROR 
+      "xsl_transform macro invoked without a STYLESHEET argument")
+  else()
+    # Run the XSLT processor to do the XML transformation.
+    add_custom_command(OUTPUT ${THIS_XSL_OUTPUT_FILE}
+      COMMAND ${THIS_XSL_CATALOG} ${XSLTPROC} ${XSLTPROC_FLAGS} 
+              ${THIS_XSL_EXTRA_FLAGS} -o ${THIS_XSL_OUTPUT} 
+              --path ${CMAKE_CURRENT_BINARY_DIR}
+              ${THIS_XSL_STYLESHEET} ${INPUT}
+      COMMENT ${THIS_XSL_COMMENT}
+      DEPENDS ${INPUT} ${THIS_XSL_DEFAULT_ARGS})
+    set_source_files_properties(${THIS_XSL_OUTPUT_FILE}
+      PROPERTIES GENERATED TRUE)
+
+    # Create a custom target to refer to the result of this
+    # transformation.
+    if (THIS_XSL_MAKE_ALL_TARGET)
+      add_custom_target(${THIS_XSL_MAKE_ALL_TARGET} ALL
+        DEPENDS ${THIS_XSL_OUTPUT_FILE})
+    elseif(THIS_XSL_MAKE_TARGET)
+      add_custom_target(${THIS_XSL_MAKE_TARGET}
+        DEPENDS ${THIS_XSL_OUTPUT_FILE})
+    endif()
+  endif()
+endmacro(xsl_transform)
+
+# Use Doxygen to parse header files and produce BoostBook output.
+#
+#   doxygen_to_boostbook(output header1 header2 ...
+#     [PARAMETERS param1=value1 param2=value2 ... ])
+#
+# This macro sets up rules to transform a set of C/C++ header files
+# into BoostBook reference documentation. The resulting BoostBook XML
+# file will be named by the "output" parameter, and the set of headers
+# is provided following the output file. The actual parsing of header
+# files is provided by Doxygen, and is transformed into XML through
+# various XSLT transformations.
+#
+# Doxygen has a variety of configuration parameters. One can supply
+# extra Doxygen configuration parameters by providing NAME=VALUE pairs
+# following the PARAMETERS argument. These parameters will be added to
+# the Doxygen configuration file.
+#
+# This macro is intended to be used internally by
+# boost_add_documentation.
+macro(doxygen_to_boostbook OUTPUT)
+  parse_arguments(THIS_DOXY
+    "PARAMETERS"
+    ""
+    ${ARGN})
+
+  # Create a Doxygen configuration file template
+  # TODO: We would like to create this file at build time rather
+  # than at configuration time
+  get_filename_component(DOXYFILE_PATH ${OUTPUT} PATH)
+  get_filename_component(DOXYFILE_NAME ${OUTPUT} NAME_WE)
+  set(DOXYFILE ${DOXYFILE_PATH}/${DOXYFILE_NAME}.doxyfile)
+  execute_process(
+    COMMAND ${DOXYGEN} -s -g ${DOXYFILE}
+    OUTPUT_QUIET ERROR_QUIET)
+
+  # Update the Doxygen configuration file for XML generation
+  file(APPEND ${DOXYFILE} "OUTPUT_DIRECTORY = ${CMAKE_CURRENT_BINARY_DIR}\n")
+  file(APPEND ${DOXYFILE} "GENERATE_LATEX = NO\n")
+  file(APPEND ${DOXYFILE} "GENERATE_HTML = NO\n")
+  file(APPEND ${DOXYFILE} "GENERATE_XML = YES\n")
+  foreach(PARAM ${THIS_DOXY_PARAMETERS})
+    file(APPEND ${DOXYFILE} "${PARAM}\n")
+  endforeach(PARAM)
+
+  set(THIS_DOXY_HEADER_PATH ${CMAKE_SOURCE_DIR}/libs/${libname}/include)
+
+  set(THIS_DOXY_HEADER_LIST "")
+  set(THIS_DOXY_HEADERS)
+  foreach(HDR ${THIS_DOXY_DEFAULT_ARGS})
+    list(APPEND THIS_DOXY_HEADERS ${THIS_DOXY_HEADER_PATH}/${HDR})
+    set(THIS_DOXY_HEADER_LIST 
+      "${THIS_DOXY_HEADER_LIST} ${THIS_DOXY_HEADER_PATH}/${HDR}")
+  endforeach(HDR)
+  file(APPEND ${DOXYFILE} "INPUT = ${THIS_DOXY_HEADER_LIST}\n")
+
+  # Generate Doxygen XML
+  add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/xml/index.xml
+    COMMAND ${DOXYGEN} ${DOXYFILE}
+    COMMENT "Generating Doxygen XML output for Boost.${PROJECT_NAME}..."
+    DEPENDS ${THIS_DOXY_HEADERS})
+
+  # Collect Doxygen XML into a single XML file
+  set_source_files_properties(
+    ${CMAKE_CURRENT_BINARY_DIR}/xml/combine.xslt
+    PROPERTIES GENERATED TRUE)
+  xsl_transform(
+    ${CMAKE_CURRENT_BINARY_DIR}/xml/all.xml
+    ${CMAKE_CURRENT_BINARY_DIR}/xml/index.xml
+    STYLESHEET ${CMAKE_CURRENT_BINARY_DIR}/xml/combine.xslt
+    COMMENT "Collecting Doxygen XML output for Boost.${PROJECT_NAME}...")
+
+  # Transform single Doxygen XML file into BoostBook XML
+  xsl_transform(${OUTPUT}
+    ${CMAKE_CURRENT_BINARY_DIR}/xml/all.xml
+    STYLESHEET ${BOOSTBOOK_XSL_DIR}/doxygen/doxygen2boostbook.xsl
+    COMMENT "Transforming Doxygen XML into BoostBook XML for Boost.${PROJECT_NAME}...")
+endmacro(doxygen_to_boostbook)
+
+# Adds documentation for the current library or tool project
+#
+#   boost_add_documentation(source1 source2 source3 ...
+#     [HEADERS header1 header2 ...]
+#     [DOXYGEN_PARAMETERS param1=value1 param2=value2 ...])
+#
+
+# This macro describes the documentation for a library or tool, which
+# will be built and installed as part of the normal build
+# process. Documentation can be in a variety of formats, and the input
+# format will determine how that documentation is transformed. The
+# documentation's format is determined by its extension, and the
+# following input formats are supported:
+# 
+#   QuickBook
+#   BoostBook (.XML extension):
+macro(boost_add_documentation SOURCE)
+  parse_arguments(THIS_DOC
+    "HEADERS;DOXYGEN_PARAMETERS"
+    ""
+    ${ARGN})
+
+  # If SOURCE is not a full path, it's in the current source
+  # directory.
+  get_filename_component(THIS_DOC_SOURCE_PATH ${SOURCE} PATH)
+  if(THIS_DOC_SOURCE_PATH STREQUAL "")
+    set(THIS_DOC_SOURCE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE}")
+  else()
+    set(THIS_DOC_SOURCE_PATH ${SOURCE})
+  endif()
+
+  # If we are parsing C++ headers (with Doxygen) for reference
+  # documentation, do so now and produce the requested BoostBook XML
+  # file.
+  if (THIS_DOC_HEADERS)
+    set(DOC_HEADER_FILES)
+    set(DOC_BOOSTBOOK_FILE)
+    foreach(HEADER ${THIS_DOC_HEADERS})
+      get_filename_component(HEADER_EXT ${HEADER} EXT)
+      string(TOUPPER ${HEADER_EXT} HEADER_EXT)
+      if (HEADER_EXT STREQUAL ".XML")
+        if (DOC_BOOSTBOOK_FILE)
+          # Generate this BoostBook file from the headers
+          doxygen_to_boostbook(
+            ${CMAKE_CURRENT_BINARY_DIR}/${DOC_BOOSTBOOK_FILE}
+            ${DOC_HEADER_FILES}
+            PARAMETERS ${THIS_DOC_DOXYGEN_PARAMETERS})
+          list(APPEND THIS_DOC_DEFAULT_ARGS 
+            ${CMAKE_CURRENT_BINARY_DIR}/${DOC_BOOSTBOOK_FILE})
+        endif()
+        set(DOC_BOOSTBOOK_FILE ${HEADER})
+        set(DOC_HEADER_FILES)
+      else()
+        if (NOT DOC_BOOSTBOOK_FILE)
+          message(SEND_ERROR 
+            "HEADERS argument to boost_add_documentation must start with a BoostBook XML file name for output")
+        endif()
+        list(APPEND DOC_HEADER_FILES ${HEADER})
+      endif()
+    endforeach()
+
+    if (DOC_HEADER_FILES)
+      # Generate this BoostBook file from the headers
+      doxygen_to_boostbook(
+        ${CMAKE_CURRENT_BINARY_DIR}/${DOC_BOOSTBOOK_FILE}
+        ${DOC_HEADER_FILES}
+        PARAMETERS ${THIS_DOC_DOXYGEN_PARAMETERS})
+      list(APPEND THIS_DOC_DEFAULT_ARGS 
+        ${CMAKE_CURRENT_BINARY_DIR}/${DOC_BOOSTBOOK_FILE})
+
+    endif()
+  endif (THIS_DOC_HEADERS)
+
+  # Figure out the source file extension, which will tell us how to
+  # build the documentation.
+  get_filename_component(THIS_DOC_EXT ${SOURCE} EXT)
+  string(TOUPPER ${THIS_DOC_EXT} THIS_DOC_EXT)
+  if (THIS_DOC_EXT STREQUAL ".QBK")
+    if (BUILD_QUICKBOOK)
+      # Transform Quickbook into BoostBook XML
+      get_filename_component(SOURCE_FILENAME ${SOURCE} NAME_WE)
+      set(BOOSTBOOK_FILE ${SOURCE_FILENAME}.xml)
+      add_custom_command(OUTPUT ${BOOSTBOOK_FILE}
+        COMMAND quickbook "--output-file=${BOOSTBOOK_FILE}"
+        ${THIS_DOC_SOURCE_PATH} 
+        DEPENDS ${THIS_DOC_SOURCE_PATH} ${THIS_DOC_DEFAULT_ARGS}
+        COMMENT "Generating BoostBook documentation for Boost.${PROJECT_NAME}...")
+
+      # Transform BoostBook into other formats
+      boost_add_documentation(${CMAKE_CURRENT_BINARY_DIR}/${BOOSTBOOK_FILE})
+    else()
+      message(SEND_ERROR 
+        "Quickbook is required to build Boost documentation.\nQuickbook can be built by enabling the BUILD_QUICKBOOK.")
+    endif()
+  elseif (THIS_DOC_EXT STREQUAL ".XML")
+    # Transform BoostBook XML into DocBook XML
+    get_filename_component(SOURCE_FILENAME ${SOURCE} NAME_WE)
+    set(DOCBOOK_FILE ${SOURCE_FILENAME}.docbook)
+    xsl_transform(${DOCBOOK_FILE} ${THIS_DOC_SOURCE_PATH} 
+      ${THIS_DOC_DEFAULT_ARGS}
+      STYLESHEET ${BOOSTBOOK_XSL_DIR}/docbook.xsl
+      CATALOG ${CMAKE_BINARY_DIR}/catalog.xml
+      COMMENT "Generating DocBook documentation for Boost.${PROJECT_NAME}..."
+      MAKE_TARGET ${PROJECT_NAME}-docbook)
+
+    # Transform DocBook into other formats
+    boost_add_documentation(${CMAKE_CURRENT_BINARY_DIR}/${DOCBOOK_FILE})
+  elseif(THIS_DOC_EXT STREQUAL ".DOCBOOK")
+    # If requested, build HTML documentation
+    if (BUILD_DOCUMENTATION_HTML)
+      xsl_transform(
+        ${CMAKE_CURRENT_BINARY_DIR}/html 
+        ${THIS_DOC_SOURCE_PATH} 
+        STYLESHEET ${BOOSTBOOK_XSL_DIR}/html.xsl
+        CATALOG ${CMAKE_BINARY_DIR}/catalog.xml
+        DIRECTORY HTML.manifest
+        PARAMETERS admon.graphics.path=images
+                   navig.graphics.path=images
+                   boost.image.src=boost.png
+        COMMENT "Generating HTML documentation for Boost.${PROJECT_NAME}..."
+        MAKE_TARGET ${PROJECT_NAME}-html)
+
+      # Install generated documentation
+      install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html 
+        DESTINATION share/boost-${BOOST_VERSION}
+        COMPONENT ${ULIBNAME}_DOCS
+        PATTERN "*.manifest" EXCLUDE)
+    endif ()
+
+    # If requested, build Unix man pages
+    if (BUILD_DOCUMENTATION_MAN_PAGES)
+      xsl_transform(
+        ${CMAKE_CURRENT_BINARY_DIR}/man 
+        ${THIS_DOC_SOURCE_PATH} 
+        STYLESHEET ${BOOSTBOOK_XSL_DIR}/manpages.xsl
+        CATALOG ${CMAKE_BINARY_DIR}/catalog.xml
+        DIRECTORY man.manifest
+        COMMENT "Generating man pages for Boost.${PROJECT_NAME}..."
+        MAKE_ALL_TARGET ${PROJECT_NAME}-man)
+
+      # Install man pages
+      install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man
+        DESTINATION .
+        COMPONENT ${ULIBNAME}_DOCS
+        PATTERN "*.manifest" EXCLUDE)
+    endif ()
+  else()
+    message(SEND_ERROR "Unknown documentation source kind ${SOURCE}.")
+  endif()
+endmacro(boost_add_documentation)
+            
+
+##########################################################################
+# Documentation tools configuration                                      #
+##########################################################################
+
+# Downloads the DocBook DTD into a place where DOCBOOK_DTD_DIR can
+# find it.
+macro(download_docbook_dtd)
+  if (NOT DOCBOOK_DTD_DIR)
+    set(DOCBOOK_DTD_FILENAME "docbook-xml-${WANT_DOCBOOK_DTD_VERSION}.zip")
+    set(DOCBOOK_DTD_URL 
+      "http://www.oasis-open.org/docbook/xml/${WANT_DOCBOOK_DTD_VERSION}/${DOCBOOK_DTD_FILENAME}")
+    message(STATUS "Downloading DocBook DTD from ${DOCBOOK_DTD_URL}...")
+    file(DOWNLOAD 
+      "${DOCBOOK_DTD_URL}"
+      "${CMAKE_BINARY_DIR}/${DOCBOOK_DTD_FILENAME}"
+      TIMEOUT 60 STATUS DOCBOOK_DTD_STATUS)
+    list(GET DOCBOOK_DTD_STATUS 0 DOCBOOK_DTD_ERROR)
+    if (DOCBOOK_DTD_ERROR EQUAL 0)
+      # Download successful! Extract the DTD ZIP file.
+      message(STATUS "Extracting DocBook DTD...")
+      execute_process(
+        COMMAND ${UNZIP} -d docbook-dtd-${WANT_DOCBOOK_DTD_VERSION} -q "${CMAKE_BINARY_DIR}/${DOCBOOK_DTD_FILENAME}"
+        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+        RESULT_VARIABLE UNZIP_DTD_RESULT)
+      if (UNZIP_DTD_RESULT EQUAL 0)
+        # Extraction successful. Cleanup the downloaded file.
+        file(REMOVE ${CMAKE_BINARY_DIR}/${DOCBOOK_DTD_FILENAME})
+        set(DOCBOOK_DTD_DIR 
+          ${CMAKE_BINARY_DIR}/docbook-dtd-${WANT_DOCBOOK_DTD_VERSION}
+          CACHE PATH "Path to the DocBook DTD" FORCE)
+      else()
+        # We failed: report the error to the user
+        message(SEND_ERROR "Extraction of DocBook DTD archive ${DOCBOOK_DTD_FILENAME} failed with error \"${UNZIP_DTD_RESULT}\". DocBook DTD and XSL autoconfiguration cannot continue.")
+      endif ()
+    else()
+    list(GET DOCBOOK_DTD_STATUS 1 DOCBOOK_DTD_ERRORMSG)
+      message(SEND_ERROR "Unable to download DocBook DTD from ${DOCBOOK_DTD_URL}. Error was: \"${DOCBOOK_DTD_ERRORMSG}\"")
+    endif()
+  endif()
+endmacro(download_docbook_dtd)
+
+# Downloads the DocBook XSL into a place where DOCBOOK_XSL_DIR can
+# find it.
+macro(download_docbook_xsl)
+  if (NOT DOCBOOK_XSL_DIR)
+    set(DOCBOOK_XSL_FILENAME "docbook-xsl-${WANT_DOCBOOK_XSL_VERSION}.zip")
+    set(DOCBOOK_XSL_URL 
+      "${SOURCEFORGE_MIRROR}/sourceforge/docbook/${DOCBOOK_XSL_FILENAME}")
+    message(STATUS "Downloading DocBook XSL from ${DOCBOOK_XSL_URL}...")
+    file(DOWNLOAD 
+      "${DOCBOOK_XSL_URL}"
+      "${CMAKE_BINARY_DIR}/${DOCBOOK_XSL_FILENAME}"
+      TIMEOUT 60 STATUS DOCBOOK_XSL_STATUS)
+    list(GET DOCBOOK_XSL_STATUS 0 DOCBOOK_XSL_ERROR)
+    if (DOCBOOK_XSL_ERROR EQUAL 0)
+      # Download successful! Extract the XSL ZIP file.
+      message(STATUS "Extracting DocBook XSL stylesheets...")
+      execute_process(
+        COMMAND ${UNZIP} -q "${CMAKE_BINARY_DIR}/${DOCBOOK_XSL_FILENAME}"
+        WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+        RESULT_VARIABLE UNZIP_XSL_RESULT)
+      if (UNZIP_XSL_RESULT EQUAL 0)
+        # Extraction successful. Clean up the downloaded file.
+        file(REMOVE ${CMAKE_BINARY_DIR}/${DOCBOOK_XSL_FILENAME})
+        set(DOCBOOK_XSL_DIR 
+          ${CMAKE_BINARY_DIR}/docbook-xsl-${WANT_DOCBOOK_XSL_VERSION}
+          CACHE PATH "Path to the DocBook XSL stylesheets" FORCE)       
+      else()
+        # We failed: report the error to the user
+        message(SEND_ERROR "Extraction of DocBook XSL archive ${DOCBOOK_XSL_FILENAME} failed with error \"${UNZIP_XSL_RESULT}\". DocBook XSL and XSL autoconfiguration cannot continue.")
+      endif ()
+    else()
+    list(GET DOCBOOK_XSL_STATUS 1 DOCBOOK_XSL_ERRORMSG)
+      message(SEND_ERROR "Unable to download DocBook XSL from ${DOCBOOK_XSL_URL}. Error was: \"${DOCBOOK_XSL_ERRORMSG}\". You might want to try another SourceForge mirror site by changing the advanced configuration variable SOURCEFORGE_MIRROR.")
+    endif()
+  endif()
+endmacro(download_docbook_xsl)
+
+# Preferred versions of DocBook stylesheets and utilities. We don't
+# require these, but we know that they work.
+set(WANT_DOCBOOK_DTD_VERSION 4.2)
+set(WANT_DOCBOOK_XSL_VERSION 1.73.2)
+
+# Find xsltproc to transform XML documents via XSLT
+find_program(XSLTPROC xsltproc DOC "xsltproc transforms XML via XSLT")
+set(XSLTPROC_FLAGS "--xinclude" CACHE STRING 
+  "Flags to pass to xsltproc to transform XML documents")
+
+# Find the DocBook DTD (version 4.2)
+find_path(DOCBOOK_DTD_DIR docbookx.dtd
+  PATHS "${CMAKE_BINARY_DIR}/docbook-dtd-${WANT_DOCBOOK_DTD_VERSION}"
+  DOC "Path to the DocBook DTD")
+
+# Find the DocBook XSL stylesheets
+find_path(DOCBOOK_XSL_DIR html/html.xsl
+  PATHS "${CMAKE_BINARY_DIR}/docbook-xsl-${WANT_DOCBOOK_XSL_VERSION}"
+  DOC "Path to the DocBook XSL stylesheets")
+
+# Find the BoostBook DTD (it should be in the distribution!)
+find_path(BOOSTBOOK_DTD_DIR boostbook.dtd
+  PATHS ${CMAKE_SOURCE_DIR}/tools/boostbook/dtd
+  DOC "Path to the BoostBook DTD")
+mark_as_advanced(BOOSTBOOK_DTD_DIR)
+
+# Find the BoostBook XSL stylesheets (they should be in the distribution!)
+find_path(BOOSTBOOK_XSL_DIR docbook.xsl
+  PATHS ${CMAKE_SOURCE_DIR}/tools/boostbook/xsl
+  DOC "Path to the BoostBook XSL stylesheets")
+mark_as_advanced(BOOSTBOOK_XSL_DIR)
+
+# Try to find Doxygen
+find_package(Doxygen)
+
+if (XSLTPROC AND DOXYGEN)
+  if (DOCBOOK_DTD_DIR AND DOCBOOK_XSL_DIR)
+    # Documentation build options
+    option(BUILD_DOCUMENTATION "Whether to build library documentation" ON)
+    option(BUILD_DOCUMENTATION_HTML "Whether to build HTML documentation" ON)
+    option(BUILD_DOCUMENTATION_MAN_PAGES "Whether to build Unix man pages" ON)
+
+    # Generate an XML catalog file.
+    configure_file(${CMAKE_SOURCE_DIR}/tools/build/CMake/catalog.xml.in
+      ${CMAKE_BINARY_DIR}/catalog.xml 
+      @ONLY)
+  else()
+    # Look for "unzip", because we'll need it to download the DocBook
+    # DTD and XSL stylesheets as part of autoconfiguration.
+    find_program(UNZIP unzip DOC "Used to extract ZIP archives")
+
+    if (UNZIP)
+      option(DOCBOOK_AUTOCONFIG 
+        "Automatically download and configure DocBook DTD and XSL" OFF)
+      set(SOURCEFORGE_MIRROR "http://dl.sourceforge.net"
+        CACHE STRING "SourceForge mirror used to download DocBook XSL during autoconfiguration")
+      mark_as_advanced(SOURCEFORGE_MIRROR)
+      if (DOCBOOK_AUTOCONFIG)
+        message(STATUS "Initiating DocBook DTD and XSL autoconfiguration...")
+        download_docbook_dtd()
+        download_docbook_xsl()
+      endif (DOCBOOK_AUTOCONFIG)
+    endif()
+  endif()
+endif()
+
+# Turn off BUILD_DOCUMENTATION if it isn't going to succeed.
+if (BUILD_DOCUMENTATION)
+  set(BUILD_DOCUMENTATION_OKAY TRUE)
+  if (NOT XSLTPROC)
+    set(BUILD_DOCUMENTATION_OKAY FALSE)
+  elseif (NOT DOXYGEN)
+    set(BUILD_DOCUMENTATION_OKAY FALSE)
+  elseif (NOT DOCBOOK_DTD_DIR)
+    set(BUILD_DOCUMENTATION_OKAY FALSE)
+  elseif (NOT DOCBOOK_XSL_DIR)
+    set(BUILD_DOCUMENTATION_OKAY FALSE)
+  else()
+    set(BUILD_DOCUMENTATION_OKAY TRUE)
+  endif()
+
+  if (NOT BUILD_DOCUMENTATION_OKAY)
+    if (BUILD_DOCUMENTATION)
+      set(BUILD_DOCUMENTATION OFF CACHE BOOL 
+        "Whether to build library documentation" FORCE)
+    endif()
+  endif()
+endif()
\ No newline at end of file
Added: trunk/tools/build/CMake/BoostTesting.cmake
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/BoostTesting.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,382 @@
+##########################################################################
+# Regression Testing Support for Boost                                   #
+##########################################################################
+# Copyright (C) 2007-8 Douglas Gregor <doug.gregor_at_[hidden]>            #
+# Copyright (C) 2007-8 Troy D. Straszheim                                #
+#                                                                        #
+# Distributed under the Boost Software License, Version 1.0.             #
+# See accompanying file LICENSE_1_0.txt or copy at                       #
+#   http://www.boost.org/LICENSE_1_0.txt                                 #
+##########################################################################
+# 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)
+
+if (BUILD_TESTING)
+  add_custom_target(test COMMENT "Running all tests")
+
+  option(TEST_INSTALLED_TREE "Enable testing of an already-installed tree" OFF)
+
+  if (TEST_INSTALLED_TREE)
+    include("${CMAKE_INSTALL_PREFIX}/lib/Boost${BOOST_VERSION}/boost-targets.cmake")
+  endif (TEST_INSTALLED_TREE)
+endif (BUILD_TESTING)
+
+option(BOOST_BUILD_SANITY_TEST
+  "Don't build regular boost libraries, build libraries that test the boost cmake build system itself" OFF)
+
+if(BOOST_BUILD_SANITY_TEST)
+  set(BOOST_LIBS_DIR ${CMAKE_SOURCE_DIR}/tools/build/CMake/sanity)
+  configure_file(${CMAKE_SOURCE_DIR}/libs/CMakeLists.txt ${BOOST_LIBS_DIR}/CMakeLists.txt COPYONLY)
+else(BOOST_BUILD_SANITY_TEST)
+  set(BOOST_LIBS_DIR ${CMAKE_SOURCE_DIR}/libs)
+endif(BOOST_BUILD_SANITY_TEST)
+
+
+# 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.
+macro(boost_test_add_dependent_includes includes)
+  foreach (include ${includes})
+    #message(STATUS "include: ${include}")
+    include_directories("${Boost_SOURCE_DIR}/libs/${include}/include")
+  endforeach (include ${includes})
+endmacro(boost_test_add_dependent_includes includes)
+
+
+
+# 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 ...]
+#                         [COMPILE] [RUN] [FAIL])
+#
+# 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_TAG:  compile, compile_fail, run, or run_fail.
+#   Used in test-reporting systems.
+#
+#   BOOST_TEST_TESTNAME: A (hopefully) globally unique target name
+#   for the test, constructed from PROJECT-testname-TAG
+#
+#   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)
+  #message("boost_test_parse_args ${testname} ${ARGN}")
+  set(BOOST_TEST_OKAY TRUE)
+  set(BOOST_TEST_COMPILE_FLAGS "")
+  parse_arguments(BOOST_TEST 
+    "LINK_LIBS;LINK_FLAGS;DEPENDS;COMPILE_FLAGS;ARGS;EXTRA_OPTIONS"
+    "COMPILE;RUN;LINK;FAIL;RELEASE;DEBUG"
+    ${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)
+
+  #message("Sources: ${BOOST_TEST_SOURCES}")
+  if (BOOST_TEST_RUN)
+    set(BOOST_TEST_TAG "run")
+  elseif(BOOST_TEST_COMPILE)
+    set(BOOST_TEST_TAG "compile")
+  elseif(BOOST_TEST_LINK)
+    set(BOOST_TEST_TAG "link")
+  endif(BOOST_TEST_RUN)
+
+  if (BOOST_TEST_FAIL)
+    set(BOOST_TEST_TAG ${BOOST_TEST_TAG}-fail)
+  endif(BOOST_TEST_FAIL)
+
+  set(BOOST_TEST_TESTNAME "${PROJECT_NAME}-${testname}-${BOOST_TEST_TAG}")
+  #message("testname: ${BOOST_TEST_TESTNAME}")
+  # 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 ...]
+#                  [EXTRA_OPTIONS option1 option2 ...])
+#
+# 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.
+#
+#   EXTRA_OPTIONS: Provide extra options that will be passed on to 
+#   boost_add_executable.
+#
+# Example:
+#   boost_test_run(signal_test DEPENDS boost_signals)
+macro(boost_test_run testname)
+  boost_test_parse_args(${testname} ${ARGN} RUN)
+  if (BOOST_TEST_OKAY)
+    boost_add_executable(${testname} ${BOOST_TEST_SOURCES}
+      OUTPUT_NAME tests/${PROJECT_NAME}/${testname}
+      DEPENDS "${BOOST_TEST_DEPENDS}"
+      LINK_LIBS ${BOOST_TEST_LINK_LIBS}
+      LINK_FLAGS ${BOOST_TEST_LINK_FLAGS}
+      COMPILE_FLAGS ${BOOST_TEST_COMPILE_FLAGS}
+      NO_INSTALL 
+      ${BOOST_TEST_EXTRA_OPTIONS})
+
+    if (THIS_EXE_OKAY)
+      # This target builds and runs the test
+      add_custom_target(${BOOST_TEST_TESTNAME})
+
+      file( TO_NATIVE_PATH "${BOOST_TEST_DRIVER}" NATIVE_BOOST_TEST_DRIVER )
+
+      set(THIS_TEST_PREFIX_ARGS
+          ${PYTHON_EXECUTABLE} ${NATIVE_BOOST_TEST_DRIVER} 
+          ${CMAKE_CURRENT_BINARY_DIR} ${BOOST_TEST_TAG} ${testname} 
+	       )
+
+      add_custom_command(TARGET ${BOOST_TEST_TESTNAME}
+                        POST_BUILD
+                        COMMAND 
+                        ${THIS_TEST_PREFIX_ARGS} 
+                        ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${CMAKE_CFG_INTDIR}/tests/${PROJECT_NAME}/${testname}
+                        ${BOOST_TEST_ARGS}
+                        COMMENT "Running ${testname} in project ${PROJECT_NAME}"
+                        )
+
+      add_dependencies(${BOOST_TEST_TESTNAME}
+    	${PROJECT_NAME}-${testname}
+    	)
+
+      add_dependencies(${PROJECT_NAME}-test
+    	${BOOST_TEST_TESTNAME}
+    	)
+
+    endif(THIS_EXE_OKAY)
+  endif (BOOST_TEST_OKAY)
+endmacro(boost_test_run)
+
+# 
+# This macro creates a boost regression test that will be run but is
+# expected to fail (exit with nonzero return code).
+# See boost_test_run()
+# 
+macro(boost_test_run_fail testname)
+  boost_test_run(${testname} ${ARGN} FAIL)
+endmacro(boost_test_run_fail)
+
+
+# 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} COMPILE)
+
+
+  if (BOOST_TEST_OKAY)
+    # Determine the include directories to pass along to the underlying
+    # project.
+    # works but not great
+    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};-I${DIR}")
+    endforeach(DIR ${BOOST_TEST_INCLUDE_DIRS})
+
+    set(THIS_TEST_PREFIX_ARGS
+      ${PYTHON_EXECUTABLE} ${BOOST_TEST_DRIVER} ${CMAKE_CURRENT_BINARY_DIR} ${BOOST_TEST_TAG} ${testname} 
+      )
+  
+    add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${BOOST_TEST_TESTNAME}.${CMAKE_CXX_OUTPUT_EXTENSION}
+      COMMAND 
+      ${THIS_TEST_PREFIX_ARGS}
+      ${CMAKE_CXX_COMPILER} 
+      ${BOOST_TEST_COMPILE_FLAGS} 
+      ${BOOST_TEST_INCLUDES}
+      -c ${BOOST_TEST_SOURCES}
+      -o ${CMAKE_CURRENT_BINARY_DIR}/${BOOST_TEST_TESTNAME}${CMAKE_CXX_OUTPUT_EXTENSION}
+      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+      DEPENDS ${BOOST_TEST_SOURCES}
+      COMMENT "Running ${testname} in project ${PROJECT_NAME}"
+      )
+
+    add_custom_target(${BOOST_TEST_TESTNAME}
+      DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/${BOOST_TEST_TESTNAME}.${CMAKE_CXX_OUTPUT_EXTENSION}
+      )
+
+    add_dependencies(${PROJECT_NAME}-test
+      ${BOOST_TEST_TESTNAME}
+      )
+
+  endif(BOOST_TEST_OKAY)
+endmacro(boost_test_compile)
+
+#
+# This macro creates a Boost regression test that is expected to 
+# *fail* to compile.   See boost_test_compile()
+#
+macro(boost_test_compile_fail testname)
+  boost_test_compile(${testname} ${ARGN} FAIL)
+endmacro(boost_test_compile_fail)
+
+
+
+
+#
+# boost_test_link:
+#
+# Under construction.
+#
+macro(boost_test_link testname)
+  boost_test_parse_args(${testname} ${ARGN} LINK)
+  if(BOOST_TEST_OKAY)
+
+    set(THIS_TEST_PREFIX_ARGS
+      ${PYTHON_EXECUTABLE} ${BOOST_TEST_DRIVER} ${CMAKE_CURRENT_BINARY_DIR} test_link ${testname} 
+      )
+    
+    #
+    #  FIXME:  no ctest.
+    #
+    add_custom_target(TARGET ${BOOST_TEST_TESTNAME}
+      COMMAND /link/tests/are/failing/at/the/moment
+      COMMENT "Link test ${testname} in ${PROJECT_NAME} is failing."
+      )
+
+    # POST_BUILD
+    # COMMAND 
+    # ${THIS_TEST_PREFIX_ARGS}
+    # ${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}\\"
+    # COMMENT "Running ${testname} (link) in project ${PROJECT_NAME}"
+    # )
+
+    add_dependencies(${PROJECT_NAME}-test
+      ${BOOST_TEST_TESTNAME}
+      )
+    
+  endif(BOOST_TEST_OKAY)
+endmacro(boost_test_link)
+
Added: trunk/tools/build/CMake/BoostUtils.cmake
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/BoostUtils.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,213 @@
+##########################################################################
+# 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)
+
+# Perform a reverse topological sort on the given LIST. 
+#   
+#   topological_sort(my_list "MY_" "_EDGES")
+#
+# LIST is the name of a variable containing a list of elements to be
+# sorted in reverse topological order. Each element in the list has a
+# set of outgoing edges (for example, those other list elements that
+# it depends on). In the resulting reverse topological ordering
+# (written back into the variable named LIST), an element will come
+# later in the list than any of the elements that can be reached by
+# following its outgoing edges and the outgoing edges of any vertices
+# they target, recursively. Thus, if the edges represent dependencies
+# on build targets, for example, the reverse topological ordering is
+# the order in which one would build those targets.
+#
+# For each element E in this list, the edges for E are contained in
+# the variable named ${PREFIX}${E}${SUFFIX}, where E is the
+# upper-cased version of the element in the list. If no such variable
+# exists, then it is assumed that there are no edges. For example, if
+# my_list contains a, b, and c, one could provide a dependency graph
+# using the following variables:
+#
+#     MY_A_EDGES     b
+#     MY_B_EDGES     
+#     MY_C_EDGES     a b
+#
+#  With the involcation of topological_sort shown above and these
+#  variables, the resulting reverse topological ordering will be b, a,
+#  c.
+function(topological_sort LIST PREFIX SUFFIX)
+  # Clear the stack and output variable
+  set(VERTICES "${${LIST}}")
+  set(STACK)
+  set(${LIST})
+
+  # Loop over all of the vertices, starting the topological sort from
+  # each one.
+  foreach(VERTEX ${VERTICES})
+    string(TOUPPER ${VERTEX} UPPER_VERTEX)
+
+    # If we haven't already processed this vertex, start a depth-first
+    # search from where.
+    if (NOT FOUND_${UPPER_VERTEX})
+      # Push this vertex onto the stack with all of its outgoing edges
+      string(REPLACE ";" " " NEW_ELEMENT 
+        "${VERTEX};${${PREFIX}${UPPER_VERTEX}${SUFFIX}}")
+      list(APPEND STACK ${NEW_ELEMENT})
+
+      # We've now seen this vertex
+      set(FOUND_${UPPER_VERTEX} TRUE)
+
+      # While the depth-first search stack is not empty
+      list(LENGTH STACK STACK_LENGTH)
+      while(STACK_LENGTH GREATER 0)
+        # Remove the vertex and its remaining out-edges from the top
+        # of the stack
+        list(GET STACK -1 OUT_EDGES)
+        list(REMOVE_AT STACK -1)
+
+        # Get the source vertex and the list of out-edges
+        separate_arguments(OUT_EDGES)
+        list(GET OUT_EDGES 0 SOURCE)
+        list(REMOVE_AT OUT_EDGES 0)
+
+        # While there are still out-edges remaining
+        list(LENGTH OUT_EDGES OUT_DEGREE)
+        while (OUT_DEGREE GREATER 0)
+          # Pull off the first outgoing edge
+          list(GET OUT_EDGES 0 TARGET)
+          list(REMOVE_AT OUT_EDGES 0)
+
+          string(TOUPPER ${TARGET} UPPER_TARGET)
+          if (NOT FOUND_${UPPER_TARGET})
+            # We have not seen the target before, so we will traverse
+            # its outgoing edges before coming back to our
+            # source. This is the key to the depth-first traversal.
+
+            # We've now seen this vertex
+            set(FOUND_${UPPER_TARGET} TRUE)
+
+            # Push the remaining edges for the current vertex onto the
+            # stack
+            string(REPLACE ";" " " NEW_ELEMENT 
+              "${SOURCE};${OUT_EDGES}")
+            list(APPEND STACK ${NEW_ELEMENT})
+
+            # Setup the new source and outgoing edges
+            set(SOURCE ${TARGET})
+            string(TOUPPER ${SOURCE} UPPER_SOURCE)
+            set(OUT_EDGES 
+              ${${PREFIX}${UPPER_SOURCE}${SUFFIX}})
+          endif(NOT FOUND_${UPPER_TARGET})
+
+          list(LENGTH OUT_EDGES OUT_DEGREE)
+        endwhile (OUT_DEGREE GREATER 0)
+
+        # We have finished all of the outgoing edges for
+        # SOURCE; add it to the resulting list.
+        list(APPEND ${LIST} ${SOURCE})
+
+        # Check the length of the stack
+        list(LENGTH STACK STACK_LENGTH)
+      endwhile(STACK_LENGTH GREATER 0)
+    endif (NOT FOUND_${UPPER_VERTEX})
+  endforeach(VERTEX)
+
+  set(${LIST} ${${LIST}} PARENT_SCOPE)
+endfunction(topological_sort)
Added: trunk/tools/build/CMake/FindICU.cmake
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/FindICU.cmake	2008-11-01 09:15:41 EDT (Sat, 01 Nov 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: trunk/tools/build/CMake/boost_build_slave.py.in
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/boost_build_slave.py.in	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,57 @@
+#!/usr/bin/python
+#
+#  copyright (C) 2008  troy d. straszheim  <troy_at_[hidden]>
+#  
+#  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
+#
+
+#
+#  Utilities, variables, imports for build slave python
+#
+
+import os, os.path, marshal, xmlrpclib, pysvn, socket, platform
+from pprint import pprint
+
+repo_path = "@CMAKE_SOURCE_DIR@"
+client = pysvn.Client()
+svn_entry = client.info(repo_path)
+_configured_hostname = "@BOOST_BUILD_SLAVE_HOSTNAME@"
+fqdn = _configured_hostname if len(_configured_hostname) > 0 else socket.getfqdn()
+uname = platform.uname()
+toolset = "@BOOST_TOOLSET@"
+
+timeout_seconds = @BOOST_BUILD_SLAVE_TIMEOUT@
+slave_details_file = "@BOOST_BUILD_SLAVE_DETAILS_FILE@"
+contact_info = "@BOOST_BUILD_SLAVE_CONTACT_INFO@"
+
+xmlrpc_url = "@BOOST_BUILD_SLAVE_SUBMIT_URL@"
+
+build_id_file = os.path.join(r'@BOOST_BUILD_SLAVE_PYTHONPATH@', "build_id.txt")
+
+try:
+    f = open(build_id_file)
+    build_id = int(f.read())
+except:
+    build_id = None
+
+def set_build_id(build_id):
+    print "Setting new build id %d locally" % build_id
+    f = open(build_id_file, "w")
+    f.write(str(build_id))
+    f.close()
+
+def details():
+    if os.path.isabs(slave_details_file):
+        thefile = slave_details_file
+    else:
+        thefile = os.path.join("@CMAKE_BINARY_DIR@", slave_details_file)
+
+    if os.path.exists(thefile):
+        f = open(thefile)
+        txt = f.read()
+    else:
+        txt = "Build slave details file @BOOST_BUILD_SLAVE_DETAILS_FILE@ not found."
+
+    return txt
Added: trunk/tools/build/CMake/catalog.xml.in
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/catalog.xml.in	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,9 @@
+<?xml version="1.0"?>
+<!DOCTYPE catalog 
+  PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN"
+  "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
+<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
+  <rewriteURI uriStartString="http://www.boost.org/tools/boostbook/dtd/" rewritePrefix="file://@BOOSTBOOK_DTD_DIR@/"/>
+  <rewriteURI uriStartString="http://docbook.sourceforge.net/release/xsl/current/" rewritePrefix="file://@DOCBOOK_XSL_DIR@/"/>
+  <rewriteURI uriStartString="http://www.oasis-open.org/docbook/xml/4.2/" rewritePrefix="file://@DOCBOOK_DTD_DIR@/"/>
+</catalog>
Added: trunk/tools/build/CMake/classify.py.in
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/classify.py.in	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,51 @@
+#
+#  Classifies pass/fail/warn for the sake of traash
+#
+
+toolset = '@BOOST_TOOLSET@'
+import os
+
+#  'cxx_compile_object'
+#  'run'
+#  'link_executable'
+#  'create_shared_library'
+#  'create_static_library'
+#  'compile-fail'
+
+def classify(step):
+    print "step=", step
+    if 'errno' in step:
+        if step['errno'] == 666:
+            step['status'] = 'timeout'
+        else:
+            step['status'] = 'not_executed'
+        return
+    
+    if step['returncode'] != 0 and not step['expect_fail']:
+        step['status'] = 'fail'
+        return
+
+    if step['returncode'] == 0 and step['expect_fail']:
+        step['status'] = 'unexpected_pass'
+        return
+
+    #
+    #  if it is an expected failure, don't warn just cause of warnings.
+    #
+    if step['returncode'] != 0 and step['expect_fail']:
+        step['status'] = 'pass'
+        return
+
+
+    if step['op'] != 'run' and len(step['stderr']) != 0 and not step['stderr'].isspace():
+        step['status'] = 'warn'
+        return
+
+    # on windoze, warnings are to be found in stdout... but the compiler always
+    # prints the name of the file first.  So warn if there is more than one line 
+    # in stdout.  For now.
+    if os.name == 'nt' and step['op'] == 'cxx_compile_object' and step['stdout'].count('\n') > 1:
+        step['status'] = 'warn'
+        return
+
+    step['status'] = 'pass'
Added: trunk/tools/build/CMake/finish.py.in
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/finish.py.in	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,23 @@
+#!/usr/bin/python
+#
+#  copyright (C) 2008  troy d. straszheim  <troy_at_[hidden]>
+#  
+#  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
+#
+
+#
+#  Start a new build, notify server via xmlrpc
+#
+
+import sys
+sys.path.append("@BOOST_BUILD_SLAVE_PYTHONPATH@")
+from boost_build_slave import *
+
+print '\nFinishing build %d with %s via XML-RPC' % (build_id, xmlrpc_url)
+s = xmlrpclib.Server(xmlrpc_url)
+
+s.traash.finish_build(build_id)
+
+
Added: trunk/tools/build/CMake/info.py.in
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/info.py.in	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,26 @@
+#!/usr/bin/python
+#
+#  copyright (C) 2008  troy d. straszheim  <troy_at_[hidden]>
+#  
+#  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
+#
+
+#
+#  Start a new build, notify server via xmlrpc
+#
+
+import sys
+sys.path.append("@BOOST_BUILD_SLAVE_PYTHONPATH@")
+from boost_build_slave import *
+
+print '      Url:', svn_entry.url, "at rev", svn_entry.revision.number
+print '     FQDN:', fqdn
+print '    Uname:', uname
+print '  Toolset:', toolset
+print ' Build ID:', build_id
+print '  Contact:', contact_info
+pref = '\n           '
+print '  Details: ' + pref.join(details().splitlines()), '\n\n'
+
Added: trunk/tools/build/CMake/marshal.py.in
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/marshal.py.in	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,110 @@
+#!/usr/bin/python
+#
+#  copyright (C) 2008  troy d. straszheim  <troy_at_[hidden]>
+#  
+#  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
+#
+#
+#  Compiler driver.  Takes a few arguments describing what is to be done
+#  (used to mark up the output) and executes compiler in a subshell, checking
+#  for errors and marshalling output to disk.
+#
+import sys, signal, threading, subprocess
+sys.path.append("@BOOST_BUILD_SLAVE_PYTHONPATH@")
+from boost_build_slave import *
+
+import datetime, time, signal
+from subprocess import Popen, PIPE
+from kill_subprocess import kill_subprocess
+from classify import classify
+
+log = os.path.join(sys.argv[1], "Log.marshal")
+op = sys.argv[2]
+target = sys.argv[3]
+argv = sys.argv[4:]
+expect_fail = op.endswith("fail")
+
+if os.name == 'nt':
+    os.environ['PATH'] = r'@CMAKE_LIBRARY_OUTPUT_DIRECTORY@;' + os.environ['PATH']
+
+print "***\n*** Executing op:" + op + "\n*** " + str(argv) + "\n*** log=" + log + "\n***"
+#
+#  execute subprocess, watch for timeout
+#
+class SubprocThread(threading.Thread):
+    def __init__(self):
+        threading.Thread.__init__(self)
+        self.ex = None
+
+    def run(self):
+        try:
+            self.proc = Popen(argv, stdout=PIPE, stderr=PIPE)
+            (self.stdout, self.stderr) = self.proc.communicate()
+        except EnvironmentError, e:
+            self.ex = e
+
+t = SubprocThread()
+starttime = datetime.datetime.now()
+t.start()
+t.join(timeout_seconds)
+
+if t.isAlive():
+    print "*** Killing subprocess after timeout"
+    kill_subprocess(t.proc.pid)
+    e = OSError()
+    e.errno = 666
+    e.message = e.strerror = "TIMEOUT AFTER %d SECONDS" % timeout_seconds
+    e.filename = argv[0]
+    t.ex = e
+
+duration = datetime.datetime.now() - starttime
+
+#
+#  Collect and store subprocess info
+#
+result = { 'expect_fail' : expect_fail,
+           'wallclock_duration' : duration.seconds + duration.microseconds * 10**-6 }
+
+if not t.ex:
+    result['returncode'] = t.proc.returncode
+    result['stdout'] = t.stdout
+    result['stderr'] = t.stderr
+
+    if t.proc.returncode != 0 and not expect_fail:
+        print "*** returncode: %d" % t.proc.returncode
+        print "*** stdout:" + result['stdout']
+        print "*** stderr:" + result['stderr']
+else:
+    result['errno'] = t.ex.errno
+    result['filename'] = t.ex.filename
+    result['message'] = t.ex.message
+    result['strerror'] = t.ex.strerror
+    print "Errno:" + str(t.ex.errno) + ": " + t.ex.strerror
+
+result.update({'op' : op,
+               'target' : target,
+               'cmdline' : argv })
+
+classify(result)
+print "post classification: result=", result
+
+f = open(log, "ab", 0)
+marshal.dump(result, f)
+f.close()
+
+if t.ex:
+    sys.exit(t.ex.errno)
+else:
+    if expect_fail:
+        if t.proc.returncode != 0:
+            sys.exit(0)
+        else: 
+            print "UNEXPECTED SUCCESS"
+            sys.exit(1)  # we need an exit status for 'unexpected success'
+    else:
+        sys.exit(t.proc.returncode)
+
+    
+
Added: trunk/tools/build/CMake/passthru.py.in
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/passthru.py.in	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,73 @@
+#!/usr/bin/python
+#
+#  copyright (C) 2008  troy d. straszheim  <troy_at_[hidden]>
+#  
+#  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
+#
+
+#
+#  "Passthru" driver, only responsible for 'flipping' exit status of
+#  tests that are expected to fail.  See driver.py for the version
+#  that is run when BOOST_BUILD_SLAVE is on, which does xmlizaton
+#  and the like
+#
+import sys, os, os.path
+from subprocess import Popen, PIPE
+
+def verbose(what):
+    if @BOOST_DRIVER_VERBOSE@:
+        print what
+
+# ignored
+# log = os.path.join(sys.argv[1], "Log.xml")
+op = sys.argv[2]
+# target = sys.argv[3]
+argv = sys.argv[4:]
+expect_fail = op.endswith("fail")
+
+#
+#  execute subprocess
+#
+subproc = None
+returncode = None
+ex = None
+stdout = None
+stderr = None
+try:
+    subproc = Popen(argv, stdout=PIPE, stderr=PIPE)
+    (stdout, stderr) = subproc.communicate()
+except EnvironmentError, e:
+    ex = e
+
+returncode = subproc.returncode
+
+if stdout:
+    print stdout
+if stderr:
+    print stderr
+
+if not ex: 
+    # possibly flip the return code
+    if not expect_fail:
+        if not returncode:
+            verbose("ok.")
+        else:
+            verbose("error.")
+        sys.exit(returncode)
+    else:
+        if returncode != 0:
+            verbose("ok.")
+            sys.exit(0)
+        else: 
+            verbose("*** UNEXPECTED SUCCESS ***")
+            sys.exit(1)  # we need an exit status for 'unexpected success'
+else:
+    # if there is an os error 'above' the actual exit status of the subprocess,
+    # use the errno
+    print "Error in build system: " + str(ex.strerror)
+    sys.exit(ex.errno)
+
+    
+
Added: trunk/tools/build/CMake/post.py.in
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/post.py.in	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,56 @@
+#!/usr/bin/python
+#
+#  copyright (C) 2008  troy d. straszheim  <troy_at_[hidden]>
+#  
+#  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
+#
+
+#
+#  Send the build log via XML-RPC
+#
+
+import sys
+sys.path.append("@BOOST_BUILD_SLAVE_PYTHONPATH@")
+from boost_build_slave import *
+
+s = xmlrpclib.Server(xmlrpc_url, allow_none=True)
+
+project_name = sys.argv[1]
+parent_target = sys.argv[2]
+build_or_test = sys.argv[3]
+logdir = sys.argv[4]
+
+# print "\n>>>\n>>> Project " + project_name \
+#       + "\n>>> POST build log for " + parent_target \
+#       + "\n>>> from log dir" + logdir \
+#       + "\n>>> to " + xmlrpc_url \
+#       + "\n>>> Server build ID: %d" % build_id \
+#       + "\n>>>"
+
+p = os.path.join(logdir, "Log.marshal")
+
+if not os.path.exists(p):
+    print "No results to submit"
+    sys.exit(0)
+
+f = open(p, "rb")
+
+i = 0
+while True:
+    try:
+        r = marshal.load(f)
+        r.update({ 'build_id' : build_id,
+                   'project' : project_name,
+                   'parent_target' : parent_target,
+                   'build_or_test' : build_or_test })
+        s.traash.step(r)
+        i += 1
+    except EOFError, e:
+        break
+
+print "Submitted ", i, " steps."
+f.close()
+os.remove(p)
+
Added: trunk/tools/build/CMake/run_continuous_slave.py.in
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/run_continuous_slave.py.in	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,82 @@
+#!/usr/bin/python
+#
+#  Build slave script.
+#
+
+import pysvn, os, time
+from optparse import OptionParser
+
+parser = OptionParser()
+
+parser.add_option("-b", "--build-first",
+                  action="store_true", dest="build_first", default=False,
+                  help="Build on startup")
+
+parser.add_option("-c", "--clean-first",
+                  action="store_true", dest="clean_first", default=False,
+                  help="Clean on startup")
+
+parser.add_option("-C", "--clean-every-time",
+                  action="store_true", dest="clean_every_time", default=False,
+                  help="Clean before every build")
+
+parser.add_option("-k", "--keep-rebuilding",
+                  action="store_true", dest="keep_rebuilding", default=False,
+                  help="Rebuild even if there are no updates to svn")
+
+(options, args) = parser.parse_args()
+
+
+client = pysvn.Client()
+
+wc_path = r'@CMAKE_SOURCE_DIR@'
+
+def do_build(clean_):
+    if clean_:
+        clean = 'clean'
+    else:
+        clean = ''
+    if os.name == 'nt':
+        cmd = 'nmake /I ' + clean + ' slave-start test slave-finish'
+    else:
+        cmd = 'make -i ' + clean + ' slave-start test slave-finish'
+    print "Starting build:\n>>> ", cmd
+    os.system(cmd)
+    
+
+if options.build_first:
+    do_build(options.clean_first)
+
+while True:
+    try:
+        svn_entry = client.info(wc_path)
+
+        print "Wc has url %s rev %d.\nChecking for updates." \
+            % (svn_entry.url, svn_entry.revision.number)
+
+        ds = client.diff_summarize(url_or_path1=svn_entry.url,
+                                   revision1=pysvn.Revision(pysvn.opt_revision_kind.number, 
+                                                            svn_entry.revision.number),
+                                   url_or_path2=svn_entry.url,
+                                   revision2=pysvn.Revision(pysvn.opt_revision_kind.head)
+                                   )
+
+        if len(ds):
+            print "There are %d changesets:" % len(ds)
+            for j in ds:
+                print ">>>", j.path
+            print "Updating."
+            client.update(wc_path)
+        if len(ds) or options.keep_rebuilding:
+            do_build(options.clean_every_time)
+        else:
+            print "No updates."
+    except Exception, e:
+        print e
+        print "Error.  Will retry."
+    
+    print "Sleeping %d seconds" % @BOOST_BUILD_SLAVE_SLEEP_DURATION@
+    time.sleep(@BOOST_BUILD_SLAVE_SLEEP_DURATION@)
+
+        
+
Added: trunk/tools/build/CMake/start.py.in
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/start.py.in	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,38 @@
+#!/usr/bin/python
+#
+#  copyright (C) 2008  troy d. straszheim  <troy_at_[hidden]>
+#  
+#  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
+#
+
+#
+#  Start a new build, notify server via xmlrpc
+#
+
+import sys
+sys.path.append("@BOOST_BUILD_SLAVE_PYTHONPATH@")
+from boost_build_slave import *
+
+print 'Url:', svn_entry.url, "at rev", svn_entry.revision.number
+print 'FQDN:', fqdn
+print 'Uname:', uname
+print 'Toolset:', toolset
+
+print '\nNotifying %s of new build via XML-RPC' % xmlrpc_url
+s = xmlrpclib.Server(xmlrpc_url)
+
+build_id  = s.traash.start_build({ 'svn_url' : svn_entry.url,
+                                   'svn_rev' : svn_entry.revision.number,
+                                   'sysname' : uname[0],
+                                   'nodename' : uname[1],
+                                   'sys_release' : uname[2],
+                                   'sys_version' : uname[3],
+                                   'sys_machine' : uname[4],
+                                   'fqdn' : fqdn,
+                                   'toolset' : toolset,
+                                   'contact' : contact_info,
+                                   'details' : details() })
+
+set_build_id(build_id)
Added: trunk/tools/build/CMake/unix_kill.py.in
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/unix_kill.py.in	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,6 @@
+import os, signal
+def kill_subprocess(pid):
+    os.kill(pid, signal.SIGKILL)
+    os.waitpid(-1, os.WNOHANG)
+    
+
Added: trunk/tools/build/CMake/windows_kill.py.in
==============================================================================
--- (empty file)
+++ trunk/tools/build/CMake/windows_kill.py.in	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,9 @@
+import os
+def kill_subprocess(pid):
+    cmd = 'TASKKILL /PID ' + str(pid) + ' /T /F'
+    print "Timeout, killing subprocess:\n" + cmd
+    os.popen(cmd)
+
+import win32api, win32con
+win32api.SetErrorMode( win32con.SEM_NOGPFAULTERRORBOX | win32con.SEM_FAILCRITICALERRORS )
+
Added: trunk/tools/quickbook/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/tools/quickbook/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,21 @@
+boost_tool_project(Quickbook
+  DESCRIPTION "A WikiWiki style documentation tool geared towards C++ documentation"
+  AUTHORS "Joel de Guzman <joel -at- boost-consulting.com>"
+          "Eric Niebler <eric -at- boost-consulting.com>")
+
+if (BUILD_QUICKBOOK)
+  if (MSVC)
+    add_definitions(/wd4511 /wd4512 /wd4701 /wd4702 /wd4244 /wd4267 /wd4800)
+  endif (MSVC)
+  
+  boost_add_executable(quickbook
+    detail/quickbook.cpp
+    detail/actions.cpp
+    detail/actions_class.cpp
+    detail/utils.cpp
+    detail/post_process.cpp
+    detail/collector.cpp
+    detail/template_stack.cpp
+    DEPENDS boost_program_options boost_filesystem
+    )  
+endif (BUILD_QUICKBOOK)
\ No newline at end of file
Added: trunk/tools/wave/CMakeLists.txt
==============================================================================
--- (empty file)
+++ trunk/tools/wave/CMakeLists.txt	2008-11-01 09:15:41 EDT (Sat, 01 Nov 2008)
@@ -0,0 +1,4 @@
+boost_add_executable(wave cpp.cpp 
+  DEPENDS boost_wave boost_program_options boost_filesystem boost_serialization
+  MULTI_THREADED
+  )