# ---------------------------------------------------------------------------
#  Copyright (c) 2013 Kyle Lutz <kyle.r.lutz@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
#
# ---------------------------------------------------------------------------

import quickbook ;
import boostbook ;
import doxygen ;
import modules ;

doxygen autodoc
  :
    ../include/boost/compute.hpp
    ../include/boost/compute/buffer.hpp
    ../include/boost/compute/cl.hpp
    ../include/boost/compute/closure.hpp
    ../include/boost/compute/command_queue.hpp
    ../include/boost/compute/config.hpp
    ../include/boost/compute/context.hpp
    ../include/boost/compute/core.hpp
    ../include/boost/compute/device.hpp
    ../include/boost/compute/event.hpp
    ../include/boost/compute/function.hpp
    ../include/boost/compute/kernel.hpp
    ../include/boost/compute/memory_object.hpp
    ../include/boost/compute/pipe.hpp
    ../include/boost/compute/platform.hpp
    ../include/boost/compute/program.hpp
    ../include/boost/compute/svm.hpp
    ../include/boost/compute/system.hpp
    ../include/boost/compute/user_event.hpp
    ../include/boost/compute/version.hpp

    ../include/boost/compute/algorithm.hpp
    [ glob ../include/boost/compute/algorithm/*.hpp ]

    ../include/boost/compute/allocator.hpp
    [ glob ../include/boost/compute/allocator/*.hpp ]

    ../include/boost/compute/async.hpp
    [ glob ../include/boost/compute/async/*.hpp ]

    ../include/boost/compute/container.hpp
    [ glob ../include/boost/compute/container/*.hpp ]

    ../include/boost/compute/exception.hpp
    [ glob ../include/boost/compute/exception/*.hpp ]

    ../include/boost/compute/functional.hpp
    [ glob ../include/boost/compute/functional/*.hpp ]

    ../include/boost/compute/interop/opengl.hpp
    [ glob ../include/boost/compute/interop/opengl/*.hpp ]

    ../include/boost/compute/image.hpp
    [ glob ../include/boost/compute/image/*.hpp ]

    ../include/boost/compute/iterator.hpp
    [ glob ../include/boost/compute/iterator/*.hpp ]

    ../include/boost/compute/memory.hpp
    [ glob ../include/boost/compute/memory/*.hpp ]

    ../include/boost/compute/random.hpp
    [ glob ../include/boost/compute/random/*.hpp ]

    ../include/boost/compute/types.hpp
    ../include/boost/compute/types/struct.hpp

    ../include/boost/compute/type_traits.hpp
    [ glob ../include/boost/compute/type_traits/*.hpp ]

    ../include/boost/compute/utility.hpp
    [ glob ../include/boost/compute/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>SORT_MEMBER_DOCS=NO
    <doxygen:param>TAB_SIZE=4
    <doxygen:param>EXAMPLE_PATH=../
    <doxygen:param>PREDEFINED=BOOST_COMPUTE_DOXYGEN_INVOKED
    <doxygen:param>"ALIASES= \\
      internal_=\"INTERNAL ONLY\" \\
      opencl_ref{1}=\"<a href=\"http://www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/\\1.html\">\\1()</a>\" \\
      see_opencl_ref{1}=\"See the documentation for \\opencl_ref{\\1} for more information.\" \\
      opencl2_ref{1}=\"<a href=\"http://www.khronos.org/registry/cl/sdk/2.0/docs/man/xhtml/\\1.html\">\\1()</a>\" \\
      see_opencl2_ref{1}=\"See the documentation for \\opencl2_ref{\\1} for more information.\" \\
      opencl_version_warning{2}=\"\\warning This method is only available if the OpenCL version is \\1.\\2 or later.\" \\
      "
    <xsl:param>"boost.doxygen.reftitle=Header Reference"
  ;

xml compute : compute.qbk : ;

boostbook standalone
    :
      compute
    :
      <dependency>autodoc
      <format>html:<xsl:param>boost.root=../../../..
    ;

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