#  (C) Copyright Edward Diener 2010-2015
#  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).
#
# VariadicMacroData documentation Jamfile
#

using quickbook ;
using doxygen ;

path-constant here : . ; # convenient to refer to files in the same directory as this jamfile.v2
path-constant boost-images : $(BOOST_ROOT)/doc/src/images ;

import modules ;

ECHO "Building the variadic_macro_data docs with automatic index generation enabled." ;
using auto-index ;
project vmd_doc : requirements
             <auto-index>on
             <auto-index-script>index.idx
             <auto-index-prefix>../../../
             <auto-index-verbose>on
             <format>html:<auto-index-internal>on
             <format>html:<xsl:param>generate.index=0
             <format>pdf:<auto-index-internal>on
             <format>pdf:<xsl:param>index.on.type=1
             <quickbook-define>enable_index ;

doxygen vmd_reference
  :
    $(here)/../../../boost/vmd/assert.hpp
    $(here)/../../../boost/vmd/assert_is_array.hpp
    $(here)/../../../boost/vmd/assert_is_empty.hpp
    $(here)/../../../boost/vmd/assert_is_identifier.hpp
    $(here)/../../../boost/vmd/assert_is_list.hpp
    $(here)/../../../boost/vmd/assert_is_number.hpp
    $(here)/../../../boost/vmd/assert_is_seq.hpp
    $(here)/../../../boost/vmd/assert_is_tuple.hpp
    $(here)/../../../boost/vmd/assert_is_type.hpp
    $(here)/../../../boost/vmd/elem.hpp
    $(here)/../../../boost/vmd/empty.hpp
    $(here)/../../../boost/vmd/enum.hpp
    $(here)/../../../boost/vmd/equal.hpp
    $(here)/../../../boost/vmd/get_type.hpp
    $(here)/../../../boost/vmd/identity.hpp
    $(here)/../../../boost/vmd/is_array.hpp
    $(here)/../../../boost/vmd/is_empty.hpp
    $(here)/../../../boost/vmd/is_empty_array.hpp
    $(here)/../../../boost/vmd/is_empty_list.hpp
    $(here)/../../../boost/vmd/is_general_identifier.hpp
    $(here)/../../../boost/vmd/is_identifier.hpp
    $(here)/../../../boost/vmd/is_list.hpp
    $(here)/../../../boost/vmd/is_multi.hpp
    $(here)/../../../boost/vmd/is_number.hpp
    $(here)/../../../boost/vmd/is_parens_empty.hpp
    $(here)/../../../boost/vmd/is_seq.hpp
    $(here)/../../../boost/vmd/is_tuple.hpp
    $(here)/../../../boost/vmd/is_type.hpp
    $(here)/../../../boost/vmd/is_unary.hpp
    $(here)/../../../boost/vmd/not_equal.hpp
    $(here)/../../../boost/vmd/size.hpp
    $(here)/../../../boost/vmd/to_array.hpp
    $(here)/../../../boost/vmd/to_list.hpp
    $(here)/../../../boost/vmd/to_seq.hpp
    $(here)/../../../boost/vmd/to_tuple.hpp
    $(here)/../../../boost/vmd/array/to_seq.hpp
    $(here)/../../../boost/vmd/array/to_tuple.hpp
    $(here)/../../../boost/vmd/list/to_seq.hpp
    $(here)/../../../boost/vmd/list/to_tuple.hpp
    $(here)/../../../boost/vmd/seq/is_vmd_seq.hpp
    $(here)/../../../boost/vmd/seq/pop_back.hpp
    $(here)/../../../boost/vmd/seq/pop_front.hpp
    $(here)/../../../boost/vmd/seq/push_back.hpp
    $(here)/../../../boost/vmd/seq/push_front.hpp
    $(here)/../../../boost/vmd/seq/remove.hpp
    $(here)/../../../boost/vmd/seq/size.hpp
    $(here)/../../../boost/vmd/seq/to_array.hpp
    $(here)/../../../boost/vmd/seq/to_list.hpp
    $(here)/../../../boost/vmd/seq/to_tuple.hpp
    $(here)/../../../boost/vmd/tuple/is_vmd_tuple.hpp
    $(here)/../../../boost/vmd/tuple/pop_back.hpp
    $(here)/../../../boost/vmd/tuple/pop_front.hpp
    $(here)/../../../boost/vmd/tuple/push_back.hpp
    $(here)/../../../boost/vmd/tuple/push_front.hpp
    $(here)/../../../boost/vmd/tuple/remove.hpp
    $(here)/../../../boost/vmd/tuple/size.hpp
    $(here)/../../../boost/vmd/tuple/to_array.hpp
    $(here)/../../../boost/vmd/tuple/to_list.hpp
    $(here)/../../../boost/vmd/tuple/to_seq.hpp
  : 
    <doxygen:param>PROJECT_NAME="VMD"
    <doxygen:param>PROJECT_NUMBER=1
    <doxygen:param>SORT_MEMBER_DOCS=NO
    <doxygen:param>SHOW_INCLUDE_FILES=NO
    <doxygen:param>MAX_INITIALIZER_LINES=0
    <doxygen:param>VERBATIM_HEADERS=NO
    <doxygen:param>PREDEFINED=BOOST_PP_VARIADICS
    <reftitle>"Variadic Macro Data Reference"
;

xml vmd
  :
    vmd.qbk
  :
    <dependency>vmd_reference
;

boostbook standalone
  :
     vmd
  :
  <flags>"--maxdepth 100000"
  <xsl:param>boost.root="../../../.."
  <xsl:param>chunk.section.depth=8  # How far down we chunk nested sections, basically all of them.
  <xsl:param>toc.section.depth=8  # How far down sections get TOCs.
  <xsl:param>toc.max.depth=4  # Max depth in each TOC.
  
  # PDF Options:
  # TOC Generation: this is needed for FOP-0.9 and later:
  <xsl:param>fop1.extensions=0
  <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
  # Paper type = A4
  <xsl:param>paper.type=A4
  # 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:
  <format>pdf:<xsl:param>admon.graphics.extension=".svg"
  <format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
  ;

install pdfinstall
    : standalone
    : <location>.. <install-type>PDF <name>vmd.pdf
    ;

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