# Convert documentation Jamfile

#  Copyright (c) Vladimir Batov 2009-2022
#  Distributed under the Boost Software License, Version 1.0.
#  See copy at http://www.boost.org/LICENSE_1_0.txt.

using quickbook ;
using doxygen ;
using boostbook ;

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

import modules ;

if --enable-index in  [ modules.peek : ARGV ]
{
   ECHO "Building the convert docs with automatic index generation enabled." ;
   using auto-index ;
   project convert_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 ;
}
else
{
   project convert_doc ;
   ECHO "Building the convert docs with automatic index generation disabled. Try building with --enable-index." ;
}

doxygen convert_reference
  :
    [ glob $(here)/../include/boost/convert.hpp $(here)/../include/boost/make_default.hpp $(here)/../include/boost/convert/*.hpp ]
  :
    <doxygen:param>PROJECT_NAME="CONVERT"
    <doxygen:param>PROJECT_NUMBER=3
    <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>WARNINGS=NO # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings for undocumented members.
    # If EXTRACT_ALL is set to YES then this flag will automatically be disabled.
    <doxygen:param>WARN_IF_UNDOCUMENTED=NO # If WARN_IF_UNDOCUMENTED is set to YES,
    # then doxygen will generate warnings for undocumented members.
    <doxygen:param>WARN_IF_DOC_ERROR=YES # If WARN_IF_DOC_ERROR is set to YES, Doxygen will generate warnings for
    # potential errors in the documentation.

    #<reftitle>"Reference"
    <xsl:param>"boost.doxygen.reftitle=Boost.Convert C++ Reference"
;

xml convert
  :
    00_main.qbk
  :
    <dependency>convert_reference
;

boostbook standalone
  :
     convert
  :
  <xsl:param>boost.root=../../../..
  <xsl:param>chunk.section.depth=8
  <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=1
  # 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>convert.pdf
    ;
explicit css ;
explicit images ;

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