Boost logo

Boost-Commit :

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
+ )


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