
# Copyright (C) 2008-2018 Lorenzo Caminiti
# Distributed under the Boost Software License, Version 1.0 (see accompanying
# file LICENSE_1_0.txt or a copy at http://www.boost.org/LICENSE_1_0.txt).
# See: http://www.boost.org/doc/libs/release/libs/contract/doc/html/index.html

using quickbook ;
using boostbook ;
using doxygen ;

path-constant images_location : html ;
path-constant here : . ;

doxygen reference
:
    [ glob
    ../include/boost/contract.hpp
    ../include/boost/contract_macro.hpp

    ../include/boost/contract/assert.hpp
    ../include/boost/contract/base_types.hpp
    ../include/boost/contract/call_if.hpp
    ../include/boost/contract/check.hpp
    ../include/boost/contract/constructor.hpp
    ../include/boost/contract/destructor.hpp
    ../include/boost/contract/function.hpp
    ../include/boost/contract/old.hpp
    ../include/boost/contract/override.hpp
    ../include/boost/contract/public_function.hpp

    ../include/boost/contract/core/access.hpp
    ../include/boost/contract/core/check_macro.hpp
    ../include/boost/contract/core/config.hpp
    ../include/boost/contract/core/constructor_precondition.hpp
    ../include/boost/contract/core/exception.hpp
    ../include/boost/contract/core/specify.hpp
    ../include/boost/contract/core/virtual.hpp
    ]
:
    <reftitle>"Reference"
    # Quickbook's Doxygen does not show destructor exception specs.
    <doxygen:param>PREDEFINED="BOOST_CONTRACT_DETAIL_DOXYGEN BOOST_PP_VARIADICS"
    <doxygen:param>MACRO_EXPANSION=YES
    <doxygen:param>INCLUDE_PATH="../include"
    <doxygen:param>QUIET=YES
    <doxygen:param>JAVADOC_AUTOBRIEF=YES
    <doxygen:param>WARN_IF_UNDOCUMENTED=NO
    <doxygen:param>EXCLUDE_SYMBOLS=std
    # Following does not work for XML output... use @cond and/or
    # #ifdef BOOST_CONTRACT_DETAIL_DOXYGEN in code instead.
    <doxygen:param>EXTRACT_PRIVATE=NO
    <doxygen:param>HIDE_UNDOC_MEMBERS=YES
    <doxygen:param>HIDE_UNDOC_CLASSES=YES
    <doxygen:param>SHORT_NAMES=NO
    <doxygen:param>ALIASES=" RefSect{2}=\"\\xmlonly<link linkend='boost_contract.\\1'>\\2</link>\\endxmlonly\" RefClass{1}=\"\\xmlonly<computeroutput><classname alt='\\1'>\\1</classname></computeroutput>\\endxmlonly\" RefFunc{1}=\"\\xmlonly<computeroutput><functionname alt='\\1'>\\1</functionname></computeroutput>\\endxmlonly\" RefMacro{1}=\"\\xmlonly<computeroutput><macroname alt='\\1'>\\1</macroname></computeroutput>\\endxmlonly\" RefEnum{1}=\"\\xmlonly<computeroutput><enumname alt='\\1'>\\1</enumname></computeroutput>\\endxmlonly\" "
;

xml contract : main.qbk : <dependency>reference ;

boostbook boostrelease : contract
:

    <flags>"--maxdepth 100000"
    <flags>"--maxvars 300000"
    <location>html
    <xsl:param>boost.defaults=Boost
    <xsl:param>boost.root=../../../..
    <xsl:param>toc.max.depth=1
    <format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/contract/doc/html
    <format>pdf:<xsl:param>admon.graphics.extension=".svg"
    <format>pdf:<xsl:param>img.src.path=$(images_location)/
    <format>pdf:<xsl:param>draft.mode="no"

;

install pdfinstall : doc/<format>pdf :
        <location>. <install-type>PDF <name>local_function.pdf ;
explicit pdfinstall ;

explicit [ alias boostdoc ] ;
