# Copyright 2009-2013 Karsten Ahnert # Copyright 2011-2012 Mario Mulansky # Copyright 2012 Daniel James # Copyright 2013 Pascal Germroth # 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) using quickbook ; using boostbook ; using doxygen ; import modules ; path-constant here : . ; project : requirements $(BOOST_ROOT)/tools/auto_index/include ; if --enable-index in [ modules.peek : ARGV ] { ECHO "Building the odeint docs with automatic index generation enabled." ; using auto-index ; project : requirements on on # Choose indexing method (separately for html and pdf): html:on # on (or off) to use internally generated indexes. # html:generate.index=0 # Don't let the XSL stylesheets generate indexes. pdf:off # on (or off) to use internally generated indexes. # index # Use ... as the XML wrapper. pdf:index.on.type=1 # For the native stylesheets to generate the different indexes. # PDF native index support is probably better for PDFs as then you actually get page numbers. odeint.idx # Specifies the name of the index script to load. ../include # Inform Quickbook that there is to be an index(es). enable_index ; } else { ECHO "Building the odeint docs with automatic index generation disabled. To get an auto-index, try building with --enable-index." ; } doxygen reference : # [ glob ../include/boost/numeric/odeint/*.hpp ] [ glob ../include/boost/numeric/odeint/stepper/*.hpp ] [ glob ../incude/boost/numeric/odeint/stepper/base/*.hpp ] # [ glob ../include/boost/numeric/odeint/stepper/generation/*.hpp ] [ glob ../include/boost/numeric/odeint/integrate/*.hpp : ../include/boost/numeric/odeint/integrate/null_observer.hpp ../include/boost/numeric/odeint/integrate/observer_collection.hpp ] [ glob ../include/boost/numeric/odeint/iterator/*.hpp ] # [ glob ../include/boost/numeric/odeint/iterator/impl/*.hpp ] # [ glob ../include/boost/numeric/odeint/algebra/*.hpp ] # [ glob ../include/boost/numeric/odeint/util/*.hpp ] # ../include/boost/numeric/odeint.hpp : # Lots of parameters passed to Doxygen. You can see these in the doxygen docs, or the Wizard Expert tab displays them. # If you have successfuly built your Doxygen docs standalone using the Wizard (strongly recommended as it is much quicker). # The values in your project's doxyfile are what to put as the Doxygen parameters passed below. WARNINGS=YES WARN_LOGFILE=AutoDoxywarnings.log WARN_IF_UNDOCUMENTED=NO # Default NO but useful if you aim to Doxygen document *all* members. QUIET=NO WARN_NO_PARAMDOC=NO # Default no, but YES useful if you aim to document all function parameters. DOXYFILE_ENCODING=UTF-8 PROJECT_NAME="odeint" PROJECT_NUMBER=2.2 TAB_SIZE=2 SORT_MEMBER_DOCS=NO SORT_BRIEF_DOCS=NO SORT_MEMBERS_CTORS_1ST=NO EXTRACT_PRIVATE=NO INLINE_INHERITED_MEMB=YES INHERIT_DOCS=YES EXTRACT_STATIC=YES EXTRACT_ANON_NSPACES=NO EXTRACT_LOCAL_CLASSES=YES EXTRACT_LOCAL_METHODS=YES HIDE_UNDOC_MEMBERS=NO HIDE_UNDOC_CLASSES=YES HIDE_FRIEND_COMPOUNDS=NO #HIDE_INBODY_DOCS=NO INTERNAL_DOCS=YES CASE_SENSE_NAMES=NO HIDE_SCOPE_NAMES=NO # Preprocessor settings. # Some ugly examples of predefined macro calls (from Boost.Units library) :( "PREDEFINED= \\ \"BOOST_UNITS_STATIC_CONSTANT(a,b)=static const b a\" \\ \"BOOST_UNITS_TYPEOF(a)=typeof(a)\" \\ \"BOOST_PREVENT_MACRO_SUBSTITUTION=\" \\ \"BOOST_UNITS_HAS_TYPEOF=1\" \\ \"DOXYGEN_SKIP=1\" " ENABLE_PREPROCESSING=YES # Evaluates all C-preprocessor directives found in files. MACRO_EXPANSION=YES # Will expand all macro names. EXPAND_ONLY_PREDEF=YES # Only predefined macros expanded. See units library for an example. SEARCH_INCLUDES=YES # Search #include files found. INLINE_INFO=YES # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] is inserted in the documentation for inline members. SHOW_INCLUDE_FILES=NO # List of the files that are included by a file in the documentation of that file. REPEAT_BRIEF=YES # Prepend the brief description of a member or function before the detailed description BRIEF_MEMBER_DESC=YES # Include brief member descriptions after the members that are listed in the file and class MULTILINE_CPP_IS_BRIEF=YES # Treat a multi-line C++ special comment block (i.e. a block of //! or /// comments) as a brief description. # May be best to always use \brief and \details to avoid ambiguity? # STRIP_FROM_PATH=NO # Most useful to leave default to strip just the directory from which Doxygen is run. # Yes gives the full path, but NO is more useful, only giving enough to be # CPP_CLI_SUPPORT=NO # unless, most unusually, you are compiled for a 'managed' CLI application. SHOW_USED_FILES=YES # Default YES to show a list files used to generate documention. SHOW_DIRECTORIES=YES # Default NO, but useful to show directory heirarchy. SHOW_FILES=YES # Default YES is to include a tab for a page of files listed. Useful. SHOW_NAMESPACES=YES # Default YES to include tab for list of namespaces. Useful if you have namespacess other than boost:: FILE_PATTERNS= # Types of files to be used as input. Default includes *.c *.cc *.cxx *.cpp *.c++ *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp *.h++ *.py # Might include .qbk? RECURSIVE=YES # Search recursively down subdirectories. EXCLUDE= # Files or directories that should be excluded from INPUT source files. # Headers and footers are actually rather attractive, # HTML_HEADER="doxygen/checks_doxygen_header.html" # A sample including a draft stamp and 'Not_Yet_In_Boost' logo. # Take care that if you use this (recommended), you need to ensure that the html # HTML_FOOTER="doxygen/checks_doxygen_footer.html" # This is very useful to add copyright, date of revision, versioning etc. # A custom stylesheet is also useful, as the default syntax coloring is 'unusual' ;-) HTML_STYLESHEET="doxygen/doxygen.css" # Placed in the doxygen directory, # this will change to your choice of C++ syntax coloring when viewing source from Doxygen. # Users can place (or edit) their own personal choice CSS file here. # Default is just Reference but you can provide your own title for reference section here. "boost.doxygen.reftitle=odeint Reference" ; xml odeint : odeint.qbk : ; boostbook standalone : odeint : # Path for links to Boost: #boost.root=\$(local-boost-root) # Link to Boost logo boost.png # Links are relative and trying to make absolute does NOT work. # And remember that all links MUST (unless in quotes) use backslash, not forward that is trip char. boost.root=../../../../.. # OK but link to I:/boost_trunk/boost.png # Also control links to admonitions, so need to set separately. #boost.root=../../../../../../../boost_1_47_0 # OK file:///I:/boost_1_48_0/boost.png # Quickbook [@boost:/boost/units/detail/utility.hpp] should make it relative to xsl parameter boost.root. # Use the your own local Boost stylesheet: # html.stylesheet=../html/boostbook.css # Some general style settings: # see http://docbook.sourceforge.net/release/xsl/current/doc/html/index.html table.footnote.number.format=1 # Identifies the format used for footnote numbers in tables. footnote.number.format=1 # Identifies the format used for text footnote numbers. # Default to not including the Boost logo in the navbar, when one expressly asks to include the navbar. # Boost jamroot now includes # Default to not include a navbar. #nav.layout=none # No navigation bar (home, prev, next). # defining creates a runtime error: Global parameter nav.layout already defined #nav.layout=horizontal # to get a horizontal navigation bar (you probably DO want this). boost.image.src=logo.jpg # boost.image.width=294 # Width of logo in pixels. boost.image.height=127 # Height of logo in pixels. # HTML options: # ------------ navig.graphics=1 # Use graphics not text for navigation. chunk.section.depth=2 # How far down we chunk nested sections, basically all of them. chunk.first.sections=1 # Don't put the first section on the same page as the TOC. toc.section.depth=2 # How far down sections get TOCs. toc.max.depth=2 # Max depth in each TOC. generate.section.toc.level=3 # How far down we go with TOCs. #html:admon.graphics.extension=".png" # default type for admonitions (important, warning, note ...) #html:admon.graphics.path=$(nav-images)/ # path to admonition (warning, note...) image (.png) files. # http://docbook.sourceforge.net/release/images/draft.png # but use a local copy of draft.png. # PDF Options: # ----------- # TOC Generation fop1.extensions=0 # DISable extensions for FOP version 0.90 and later . pdf:fop.extensions=0 # DISable extensions for FOP version 0.20.5 and earlier. pdf:xep.extensions=1 # Use XEP extension- PDF bookmarks, document information and better index processing. # No indent on body text: pdf:body.start.indent=0pt # pdf:paper.type=A4 # Paper type = A4 # http://xml.resource.org/public/rfc/html/rfc2346.html # Making Postscript and PDF International, J Palme, RFC 2346 recommends # If you are using US letter paper format, ensure that both left and right margins are at least 21 mm (0.8 in). # If you are using A4 paper, ensure that both the top and bottom margins are at least 33 mm (1.3 in). # Margins sizes: #pdf:page.margin.top=1.3in #pdf:page.margin.inner=0.8in #pdf:page.margin.bottom=1.3in #pdf:page.margin.outer=0.8in # http://docbook.sourceforge.net/release/xsl/current/doc/index.html # DocBook XSL Stylesheets: Reference Documentation. # Yes, we want graphics for admonishments: admon.graphics=1 # Set these one for PDF generation *only*: # In PDF format, default PNG graphics are awful, so better use SVG images (type .svg) instead. pdf:admon.graphics.extension=".svg" # pdf:use.role.for.mediaobject=1 # Use print role on next line. pdf:preferred.mediaobject.role=print # pdf role is to be printed. pdf:img.src.path=$(here)/html/ # Path of image (.svg) files. (Note trailing /) ? #pdf:admon.graphics.path=$(nav_images)/ # path to admonition (warning, note...) image (.svg) files. #pdf:draft.mode="yes" # Yes if draft watermark wanted! #pdf:draft.watermark.image="draft.png" # Watermark (local copy). #pdf:draft.watermark.image=http://docbook.sourceforge.net/release/images/draft.png # Watermark. reference # Doxygen reference section # pdf-install # final pdf # png-install # Boost standard icons in both png # svg-install # and svg. ; # To install a copy of 'master' boostbook.css and logo. # install html : ../../../doc/html/boostbook.css ; # install ../ : ../../../boost.png ; # Install (copy) the 'master' copy of boostbook Cascading Style sheet # from your current Boost-root to the /doc/html folder. # path-constant boost-root : [ modules.peek : BOOST ] ; # install css-install : $(boost-root)/doc/src/boostbook.css : html ; # path-constant boost-root : [ modules.peek : BOOST ] ; # Install (copy) the 'master' copies of all icon images (both PNG and SVG) # and the Boost logo from your current Boost-root # to the local /doc/html/images folder so that html is complete and standalone. # install png-install : [ glob $(boost-root)/doc/src/images/*.png $(boost-root)/boost.png ] : html/images ; # install svg-install : [ glob $(boost-root)/doc/src/images/*.svg ] : html/images ; # install unordered_pdf : standalone/pdf : . ; # explicit unordered_pdf ; # The explicit rule is there so that it's only installed when the target is explicitly named. # Effectively copies the file from \bin folder to the \doc folder. # install pdf-install : standalone : . PDF ; # But will not work as expected if doxygen and/or autoindex is used # because a modified pdf file is created, so this command below # will rename the file to the expected filename, here quick_auto_dox_index.pdf. # . means installed in same place as this jamfile, /doc. install pdfinstall : standalone : PDF . odeint.pdf ; install callouts : [ glob src/images/callouts/*.png ] : html/images/callouts ;