#
# Copyright (c) 2003 Boost.Test contributors
#
# 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)
#

using quickbook ;
using doxygen ;
using boostbook ;

########################################################################
# Standalone HTML documentation

import doxygen ;

path-constant TEST_ROOT : .. ;

doxygen doxygen_reference_generated_doc
    :
      $(TEST_ROOT)/include/boost/test/debug_config.hpp
      $(TEST_ROOT)/include/boost/test/detail/global_typedef.hpp
      $(TEST_ROOT)/include/boost/test/debug.hpp
      $(TEST_ROOT)/include/boost/test/execution_monitor.hpp
      $(TEST_ROOT)/include/boost/test/framework.hpp
      $(TEST_ROOT)/include/boost/test/tools/assertion_result.hpp
      $(TEST_ROOT)/include/boost/test/unit_test.hpp
      $(TEST_ROOT)/include/boost/test/tree/observer.hpp

      # logs and formatters
      $(TEST_ROOT)/include/boost/test/unit_test_log.hpp
      $(TEST_ROOT)/include/boost/test/output/xml_log_formatter.hpp
      $(TEST_ROOT)/include/boost/test/output/plain_report_formatter.hpp
      $(TEST_ROOT)/include/boost/test/output/compiler_log_formatter.hpp

      # reports
      $(TEST_ROOT)/include/boost/test/output/xml_report_formatter.hpp
      $(TEST_ROOT)/include/boost/test/unit_test_log_formatter.hpp
      $(TEST_ROOT)/include/boost/test/results_reporter.hpp
      $(TEST_ROOT)/include/boost/test/results_collector.hpp

      # progress monitor
      $(TEST_ROOT)/include/boost/test/progress_monitor.hpp

      # test cases and suites
      $(TEST_ROOT)/include/boost/test/tree/test_unit.hpp
      $(TEST_ROOT)/include/boost/test/parameterized_test.hpp

      # execution monitor source files
      $(TEST_ROOT)/include/boost/test/execution_monitor.hpp

      # output test stream
      $(TEST_ROOT)/include/boost/test/tools/output_test_stream.hpp

      # datasets
      $(TEST_ROOT)/include/boost/test/data/monomorphic/fwd.hpp
      $(TEST_ROOT)/include/boost/test/data/test_case.hpp
      $(TEST_ROOT)/include/boost/test/data/for_each_sample.hpp
      $(TEST_ROOT)/include/boost/test/data/size.hpp
      $(TEST_ROOT)/include/boost/test/data/monomorphic/delayed.hpp
      $(TEST_ROOT)/include/boost/test/data/monomorphic/initializer_list.hpp
      $(TEST_ROOT)/include/boost/test/data/monomorphic/array.hpp
      $(TEST_ROOT)/include/boost/test/data/monomorphic/collection.hpp
      $(TEST_ROOT)/include/boost/test/data/monomorphic/generate.hpp


      $(TEST_ROOT)/include/boost/test/data/monomorphic/grid.hpp
      $(TEST_ROOT)/include/boost/test/data/monomorphic/join.hpp
      $(TEST_ROOT)/include/boost/test/data/monomorphic/singleton.hpp
      $(TEST_ROOT)/include/boost/test/data/monomorphic/zip.hpp

      # datasets generators
      $(TEST_ROOT)/include/boost/test/data/config.hpp
      $(TEST_ROOT)/include/boost/test/data/monomorphic/generators.hpp
      $(TEST_ROOT)/include/boost/test/data/monomorphic/generators/keywords.hpp
      $(TEST_ROOT)/include/boost/test/data/monomorphic/generators/random.hpp
      $(TEST_ROOT)/include/boost/test/data/monomorphic/generators/xrange.hpp

      # utils
      $(TEST_ROOT)/include/boost/test/utils/algorithm.hpp
      $(TEST_ROOT)/include/boost/test/utils/named_params.hpp
      $(TEST_ROOT)/include/boost/test/tools/floating_point_comparison.hpp
      $(TEST_ROOT)/include/boost/test/utils/is_forward_iterable.hpp

      # BOOST_TEST related functions
      $(TEST_ROOT)/include/boost/test/tools/detail/bitwise_manip.hpp
      $(TEST_ROOT)/include/boost/test/tools/detail/lexicographic_manip.hpp
      $(TEST_ROOT)/include/boost/test/tools/detail/per_element_manip.hpp
      $(TEST_ROOT)/include/boost/test/tools/detail/tolerance_manip.hpp

      # others
      $(TEST_ROOT)/include/boost/test/unit_test_parameters.hpp
    :
        <doxygen:param>EXTRACT_ALL=YES
        <doxygen:param>"PREDEFINED=\"BOOST_TEST_DECL=\" \\
                                   \"BOOST_TEST_DOXYGEN_DOC__=1\"
                                   "
        <doxygen:param>HIDE_UNDOC_MEMBERS=NO
        <doxygen:param>AUTOLINK_SUPPORT=YES
        <doxygen:param>HIDE_UNDOC_CLASSES=NO
        <doxygen:param>INLINE_INHERITED_MEMB=YES
        <doxygen:param>EXTRACT_PRIVATE=NO
        <doxygen:param>ENABLE_PREPROCESSING=YES
        <doxygen:param>MACRO_EXPANSION=YES
        <doxygen:param>EXPAND_ONLY_PREDEF=YES
        <doxygen:param>SEARCH_INCLUDES=YES
        <doxygen:param>INCLUDE_PATH=$(TEST_ROOT)/include
        <doxygen:param>EXAMPLE_PATH=$(TEST_ROOT)/doc/examples
        <doxygen:param>BRIEF_MEMBER_DESC=YES
        <doxygen:param>REPEAT_BRIEF=YES
        <doxygen:param>ALWAYS_DETAILED_SEC=YES
        <doxygen:param>MULTILINE_CPP_IS_BRIEF=YES
        <doxygen:param>CASE_SENSE_NAMES=YES
        <doxygen:param>INTERNAL_DOCS=NO
        <doxygen:param>SUBGROUPING=YES
        <doxygen:param>SHORT_NAMES=YES
    ;



########################################################################
# HTML documentation for $(BOOST_ROOT)/doc/html

xml test_doc
  :
    test.qbk
  ;

explicit test_doc ;

path-constant images_location : html ;

boostbook standalone
  :
    test_doc
  :
    <xsl:param>boost.root=../../../..
    <xsl:param>html.stylesheet=boostbook.css
    <xsl:param>chapter.autolabel=0
    <xsl:param>toc.max.depth=3
    <xsl:param>toc.section.depth=10
    <xsl:param>chunk.section.depth=4
    <xsl:param>chunk.first.sections=1
    <xsl:param>generate.section.toc.level=3
    <format>pdf:<xsl:param>img.src.path=$(images_location)/
    <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/test/doc/html
    <dependency>doxygen_reference_generated_doc
  ;

explicit test ;

###############################################################################
alias boostdoc ;
explicit boostdoc ;
alias boostrelease : standalone ;
explicit boostrelease ;
