# Copyright (c) 2016-2019 Klemens D. Morgenstern, Hans Dembinski
#
# 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)

# How to set up Boost Build for building the documentation:
# https://www.boost.org/doc/libs/1_72_0/doc/html/quickbook/install.html

project doc/histogram ;

import os ;
import doxygen ;
import quickbook ;
import boostbook : boostbook ;
import notfile ;

path-constant THIS_PATH : . ;

doxygen reference
:
  $(THIS_PATH)/../../../boost/histogram.hpp
  [ glob $(THIS_PATH)/../../../boost/histogram/*.hpp ]
  [ glob $(THIS_PATH)/../../../boost/histogram/accumulators/*.hpp ]
  [ glob $(THIS_PATH)/../../../boost/histogram/algorithm/*.hpp ]
  [ glob $(THIS_PATH)/../../../boost/histogram/axis/*.hpp ]
  [ glob $(THIS_PATH)/../../../boost/histogram/utility/*.hpp ]
:
  <doxygen:param>QUIET=YES
  <doxygen:param>WARNINGS=YES
  <doxygen:param>WARN_IF_DOC_ERROR=YES
  <doxygen:param>EXTRACT_ALL=NO
  <doxygen:param>EXTRACT_PRIVATE=NO
  <doxygen:param>HIDE_UNDOC_MEMBERS=YES
  <doxygen:param>HIDE_UNDOC_CLASSES=YES
  <doxygen:param>EXPAND_ONLY_PREDEF=YES
  <doxygen:param>JAVADOC_AUTOBRIEF=YES
  <doxygen:param>EXCLUDE_SYMBOLS=detail
  <doxygen:param>"PREDEFINED=\"BOOST_HISTOGRAM_DOXYGEN_INVOKED\" \\
                             \"BOOST_ATTRIBUTE_NODISCARD\""
;

actions doxygen-postprocessing
{
  python $(THIS_PATH)/doxygen_postprocessing.py "$(>)"
}

notfile reference-pp : @doxygen-postprocessing : reference.xml ;

path-constant images_location : html ;

boostbook histogram
:
  histogram.qbk
:
  <xsl:param>boost.root=../../../..
  <xsl:param>boost.libraries=../../../libraries.htm
  <xsl:param>boost.mathjax=1
  <xsl:param>chunk.first.sections=1
  <xsl:param>generate.toc="chapter nop section toc"
  <xsl:param>toc.section.depth=3
  <dependency>reference-pp
  <format>pdf:<xsl:param>img.src.path=$(images_location)/
  <format>pdf:<xsl:param>boost.url.prefix="http://www.boost.org/doc/libs/release/doc/html"
;

alias boostdoc ;
explicit boostdoc ;
alias boostrelease : histogram ;
explicit boostrelease ;