# Distributed under the Boost Software License, Version 1.0. (See
# accomanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt

import path ;
import doxygen ;
import quickbook ;

# using auto-index ;
using doxygen ;
using quickbook ;
using boostbook ;

path-constant here : . ;

rule run_doxygen ( files * : name : expand ? )
{

    expand ?= <doxygen:param>EXPAND_ONLY_PREDEF=YES ;

    doxygen stl_interfaces_reference
      :
        $(files)
      :
        <doxygen:param>EXTRACT_ALL=YES
        # note that there is no detail::unspecified -- this is a hack to get all
        # the SFINAE code out of the API docs.
        <doxygen:param>"PREDEFINED=\"BOOST_STL_INTERFACES_DOXYGEN=1\" \\
                                   \"enable_if=detail::unspecified\""
        <doxygen:param>HIDE_UNDOC_MEMBERS=NO
        <doxygen:param>EXTRACT_PRIVATE=NO
        <doxygen:param>ENABLE_PREPROCESSING=YES
        <doxygen:param>MACRO_EXPANSION=YES
        $(expand)
        <doxygen:param>SEARCH_INCLUDES=NO
        <doxygen:param>EXAMPLE_PATH=.
        <reftitle>$(name)
  ;

}

run_doxygen [ glob $(here)/../include/boost/stl_interfaces/*.hpp ] : "Headers" ;

install images_standalone : [ glob *.png ] : <location>html/stl_interfaces/img ;
explicit images_standalone ;

install images_boostdoc : [ glob *.png ] : <location>../../../doc/html/stl_interfaces/img ;
explicit images_boostdoc ;

xml stl_interfaces
    :
        stl_interfaces.qbk
    :
        <dependency>stl_interfaces_reference
    ;

boostbook standalone
    :
        stl_interfaces
    :
        # HTML options first:
        # Use graphics not text for navigation:
        <xsl:param>navig.graphics=1
        # How far down we chunk nested sections, basically all of them:
        <xsl:param>chunk.section.depth=10
        # Don't put the first section on the same page as the TOC:
        <xsl:param>chunk.first.sections=1
        # How far down sections get TOC's
        <xsl:param>toc.section.depth=10
        # Max depth in each TOC:
        <xsl:param>toc.max.depth=4
        # How far down we go with TOC's
        <xsl:param>generate.section.toc.level=10
        # Set the path to the boost-root so we find our graphics:
        #<xsl:param>boost.root="../../../.."
        # location of the main index file so our links work:
        #<xsl:param>boost.libraries=../../../../../libs/libraries.htm

        # PDF Options:
        # TOC Generation: this is needed for FOP-0.9 and later:
        # <xsl:param>fop1.extensions=1
        <xsl:param>xep.extensions=1
        # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
        <xsl:param>fop.extensions=0
        # No indent on body text:
        <xsl:param>body.start.indent=0pt
        # Margin size:
        <xsl:param>page.margin.inner=0.5in
        # Margin size:
        <xsl:param>page.margin.outer=0.5in
        # Yes, we want graphics for admonishments:
        <xsl:param>admon.graphics=1
        # Set this one for PDF generation *only*:
        # default pnd graphics are awful in PDF form,
        # better use SVG's instead:
        # <xsl:param>admon.graphics.extension=".svg"

        # <auto-index>on
        # <auto-index-verbose>on
        # <auto-index-internal>on
        # <auto-index-script>stl_interfaces.idx
        # <quickbook-define>enable_index
        # <auto-index-prefix>..
        # <xsl:param>index.on.type=1

        <dependency>images_standalone
    ;

alias boostdoc : stl_interfaces : : : <dependency>images_boostdoc ;

explicit boostdoc ;
alias boostrelease ;
explicit boostrelease ;
