#
# Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
#
# 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)
#
# Official repository: https://github.com/vinniefalco/url
#

project url/doc ;

import boostbook ;
import os ;
import ../../../tools/docca/docca.jam ;


docca.reference reference.qbk
    :
        xsl/custom-overrides.xsl
        [ glob-tree-ex ../include/boost/url : *.hpp *.ipp : detail impl ]
        #../include/boost/url/url_view_base.hpp
    :
        <doxygen:param>PROJECT_NAME=URL
        <doxygen:param>PROJECT_BRIEF="URL Library"
        <doxygen:param>FILE_PATTERNS=
        <doxygen:param>EXAMPLE_PATTERNS=
        <doxygen:param>DISTRIBUTE_GROUP_DOC=YES
        <doxygen:param>MACRO_EXPANSION=YES
        <doxygen:param>EXPAND_ONLY_PREDEF=YES
        <doxygen:param>"PREDEFINED=\\
            BOOST_SYMBOL_VISIBLE \\
            BOOST_URL_DOCS \\
            BOOST_URL_DECL \\
            __cpp_lib_array_constexpr \\
            \"BOOST_CONSTEXPR=constexpr\" \\
            \"BOOST_CXX14_CONSTEXPR=constexpr\" \\
            \"BOOST_STATIC_ASSERT(x)=\" \\
            \"BOOST_URL_DEPRECATED(x)=\" \\
            \"BOOST_URL_STRTOK_TPARAM=class StringToken = string_token::return_string\" \\
            \"BOOST_URL_STRTOK_RETURN=typename StringToken::result_type\" \\
            \"BOOST_URL_STRTOK_ARG(name)=StringToken&& name = {}\" \\
            "
        <doxygen:param>ABBREVIATE_BRIEF=
        <doxygen:param>INLINE_INHERITED_MEMB=YES
        <doxygen:param>JAVADOC_AUTOBRIEF=YES
        <doxygen:param>AUTOLINK_SUPPORT=NO
        <doxygen:param>EXTRACT_ALL=YES
        <doxygen:param>EXTRACT_PRIVATE=YES
        <doxygen:param>EXTRACT_LOCAL_CLASSES=NO
        <doxygen:param>SHOW_INCLUDE_FILES=NO
        <doxygen:param>INLINE_INFO=NO
        <doxygen:param>SORT_MEMBER_DOCS=NO
        <doxygen:param>SORT_MEMBERS_CTORS_1ST=YES
        <doxygen:param>SHOW_USED_FILES=NO
        <doxygen:param>SHOW_FILES=NO
        <doxygen:param>SHOW_NAMESPACES=NO
        <doxygen:param>CLASS_DIAGRAMS=NO

        # <doxygen:param>ALLOW_UNICODE_NAMES=NO
        # <doxygen:param>GROUP_NESTED_COMPOUNDS=NO
        # <doxygen:param>HIDE_COMPOUND_REFERENCE=NO
        # <doxygen:param>WARN_AS_ERROR=NO
    ;


#-------------------------------------------------------------------------------
#
# Produce the Boost.Book XML from the QuickBook
#

install images
    :
        [ glob images/*.png images/*.svg ]
    :
        <location>html/url/images
    ;

explicit images ;

xml url_doc
    :
        qbk/0.main.qbk
    :
        <dependency>reference.qbk
        <dependency>images
        # <include>$(broot)/tools/boostbook/dtd
    ;

explicit url_doc ;

#-------------------------------------------------------------------------------
#
# HTML documentation for $(BOOST_ROOT)/doc/html
#
#-------------------------------------------------------------------------------

boostbook url
    :
        url_doc
    :
        <xsl:param>boost.root=../../../..
        <xsl:param>chapter.autolabel=1
        <xsl:param>chunk.section.depth=8                # Depth to which sections should be chunked
        <xsl:param>chunk.first.sections=1               # Chunk the first top-level section?
        <xsl:param>toc.section.depth=8                  # How deep should recursive sections appear in the TOC?
        <xsl:param>toc.max.depth=8                      # How many levels should be created for each TOC?
        #<xsl:param>generate.toc=""
        <xsl:param>generate.toc="chapter toc,title section nop reference nop part toc"
        <include>../../../tools/boostbook/dtd
    :
        <dependency>images
    ;

#-------------------------------------------------------------------------------
#
# These are used to inform the build system of the
# means to build the integrated and stand-alone docs.
#

alias boostdoc ;
explicit boostdoc ;

alias boostrelease : url ;
explicit boostrelease ;
