Brian Silverman | 7c33ab2 | 2018-08-04 17:14:51 -0700 | [diff] [blame^] | 1 | # Copyright 2009-2013 Karsten Ahnert |
| 2 | # Copyright 2011-2012 Mario Mulansky |
| 3 | # Copyright 2012 Daniel James |
| 4 | # Copyright 2013 Pascal Germroth |
| 5 | # Distributed under the Boost Software License, Version 1.0. |
| 6 | # (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
| 7 | |
| 8 | |
| 9 | using quickbook ; |
| 10 | using boostbook ; |
| 11 | using doxygen ; |
| 12 | import modules ; |
| 13 | path-constant here : . ; |
| 14 | |
| 15 | project : requirements |
| 16 | <include>$(BOOST_ROOT)/tools/auto_index/include |
| 17 | ; |
| 18 | |
| 19 | if --enable-index in [ modules.peek : ARGV ] |
| 20 | { |
| 21 | ECHO "Building the odeint docs with automatic index generation enabled." ; |
| 22 | |
| 23 | using auto-index ; |
| 24 | |
| 25 | project : requirements |
| 26 | |
| 27 | <auto-index>on |
| 28 | <auto-index-verbose>on |
| 29 | |
| 30 | # Choose indexing method (separately for html and pdf): |
| 31 | <format>html:<auto-index-internal>on # on (or off) to use internally generated indexes. |
| 32 | # <format>html:<xsl:param>generate.index=0 # Don't let the XSL stylesheets generate indexes. |
| 33 | |
| 34 | <format>pdf:<auto-index-internal>off # on (or off) to use internally generated indexes. |
| 35 | # <auto-index-type>index # Use <index>...</index> as the XML wrapper. |
| 36 | |
| 37 | <format>pdf:<xsl:param>index.on.type=1 # For the native stylesheets to generate the different indexes. |
| 38 | # PDF native index support is probably better for PDFs as then you actually get page numbers. |
| 39 | |
| 40 | <auto-index-script>odeint.idx # Specifies the name of the index script to load. |
| 41 | <auto-index-prefix>../include |
| 42 | |
| 43 | # Inform Quickbook that there is to be an index(es). |
| 44 | <quickbook-define>enable_index |
| 45 | ; |
| 46 | } |
| 47 | else |
| 48 | { |
| 49 | ECHO "Building the odeint docs with automatic index generation disabled. To get an auto-index, try building with --enable-index." ; |
| 50 | } |
| 51 | |
| 52 | |
| 53 | |
| 54 | doxygen reference |
| 55 | : |
| 56 | # [ glob ../include/boost/numeric/odeint/*.hpp ] |
| 57 | [ glob ../include/boost/numeric/odeint/stepper/*.hpp ] |
| 58 | [ glob ../incude/boost/numeric/odeint/stepper/base/*.hpp ] |
| 59 | # [ glob ../include/boost/numeric/odeint/stepper/generation/*.hpp ] |
| 60 | [ glob ../include/boost/numeric/odeint/integrate/*.hpp : ../include/boost/numeric/odeint/integrate/null_observer.hpp ../include/boost/numeric/odeint/integrate/observer_collection.hpp ] |
| 61 | [ glob ../include/boost/numeric/odeint/iterator/*.hpp ] |
| 62 | # [ glob ../include/boost/numeric/odeint/iterator/impl/*.hpp ] |
| 63 | # [ glob ../include/boost/numeric/odeint/algebra/*.hpp ] |
| 64 | # [ glob ../include/boost/numeric/odeint/util/*.hpp ] |
| 65 | # ../include/boost/numeric/odeint.hpp |
| 66 | : |
| 67 | |
| 68 | # Lots of parameters passed to Doxygen. You can see these in the doxygen docs, or the Wizard Expert tab displays them. |
| 69 | # If you have successfuly built your Doxygen docs standalone using the Wizard (strongly recommended as it is much quicker). |
| 70 | # The values in your project's doxyfile are what to put as the Doxygen parameters passed below. |
| 71 | <doxygen:param>WARNINGS=YES |
| 72 | <doxygen:param>WARN_LOGFILE=AutoDoxywarnings.log |
| 73 | <doxygen:param>WARN_IF_UNDOCUMENTED=NO # Default NO but useful if you aim to Doxygen document *all* members. |
| 74 | <doxygen:param>QUIET=NO |
| 75 | <doxygen:param>WARN_NO_PARAMDOC=NO # Default no, but YES useful if you aim to document all function parameters. |
| 76 | <doxygen:param>DOXYFILE_ENCODING=UTF-8 |
| 77 | <doxygen:param>PROJECT_NAME="odeint" |
| 78 | <doxygen:param>PROJECT_NUMBER=2.2 |
| 79 | <doxygen:param>TAB_SIZE=2 |
| 80 | <doxygen:param>SORT_MEMBER_DOCS=NO |
| 81 | <doxygen:param>SORT_BRIEF_DOCS=NO |
| 82 | <doxygen:param>SORT_MEMBERS_CTORS_1ST=NO |
| 83 | <doxygen:param>EXTRACT_PRIVATE=NO |
| 84 | <doxygen:param>INLINE_INHERITED_MEMB=YES |
| 85 | <doxygen:param>INHERIT_DOCS=YES |
| 86 | <doxygen:param>EXTRACT_STATIC=YES |
| 87 | <doxygen:param>EXTRACT_ANON_NSPACES=NO |
| 88 | <doxygen:param>EXTRACT_LOCAL_CLASSES=YES |
| 89 | <doxygen:param>EXTRACT_LOCAL_METHODS=YES |
| 90 | <doxygen:param>HIDE_UNDOC_MEMBERS=NO |
| 91 | <doxygen:param>HIDE_UNDOC_CLASSES=YES |
| 92 | <doxygen:param>HIDE_FRIEND_COMPOUNDS=NO |
| 93 | #<doxygen:param>HIDE_INBODY_DOCS=NO |
| 94 | <doxygen:param>INTERNAL_DOCS=YES |
| 95 | <doxygen:param>CASE_SENSE_NAMES=NO |
| 96 | <doxygen:param>HIDE_SCOPE_NAMES=NO |
| 97 | |
| 98 | # Preprocessor settings. |
| 99 | # Some ugly examples of predefined macro calls (from Boost.Units library) :( |
| 100 | <doxygen:param>"PREDEFINED= \\ |
| 101 | \"BOOST_UNITS_STATIC_CONSTANT(a,b)=static const b a\" \\ |
| 102 | \"BOOST_UNITS_TYPEOF(a)=typeof(a)\" \\ |
| 103 | \"BOOST_PREVENT_MACRO_SUBSTITUTION=\" \\ |
| 104 | \"BOOST_UNITS_HAS_TYPEOF=1\" \\ |
| 105 | \"DOXYGEN_SKIP=1\" " |
| 106 | <doxygen:param>ENABLE_PREPROCESSING=YES # Evaluates all C-preprocessor directives found in files. |
| 107 | <doxygen:param>MACRO_EXPANSION=YES # Will expand all macro names. |
| 108 | <doxygen:param>EXPAND_ONLY_PREDEF=YES # Only predefined macros expanded. See units library for an example. |
| 109 | <doxygen:param>SEARCH_INCLUDES=YES # Search #include files found. |
| 110 | <doxygen:param>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. |
| 111 | |
| 112 | <doxygen:param>SHOW_INCLUDE_FILES=NO # List of the files that are included by a file in the documentation of that file. |
| 113 | <doxygen:param>REPEAT_BRIEF=YES # Prepend the brief description of a member or function before the detailed description |
| 114 | <doxygen:param>BRIEF_MEMBER_DESC=YES # Include brief member descriptions after the members that are listed in the file and class |
| 115 | <doxygen:param>MULTILINE_CPP_IS_BRIEF=YES # Treat a multi-line C++ special comment block (i.e. a block of //! or /// comments) as a brief description. |
| 116 | # May be best to always use \brief and \details to avoid ambiguity? |
| 117 | # <doxygen:param>STRIP_FROM_PATH=NO # Most useful to leave default to strip just the directory from which Doxygen is run. |
| 118 | # Yes gives the full path, but NO is more useful, only giving enough to be |
| 119 | # <doxygen:param>CPP_CLI_SUPPORT=NO # unless, most unusually, you are compiled for a 'managed' CLI application. |
| 120 | <doxygen:param>SHOW_USED_FILES=YES # Default YES to show a list files used to generate documention. |
| 121 | <doxygen:param>SHOW_DIRECTORIES=YES # Default NO, but useful to show directory heirarchy. |
| 122 | <doxygen:param>SHOW_FILES=YES # Default YES is to include a tab for a page of files listed. Useful. |
| 123 | <doxygen:param>SHOW_NAMESPACES=YES # Default YES to include tab for list of namespaces. Useful if you have namespacess other than boost:: |
| 124 | <doxygen:param>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 |
| 125 | # Might include .qbk? |
| 126 | |
| 127 | <doxygen:param>RECURSIVE=YES # Search recursively down subdirectories. |
| 128 | <doxygen:param>EXCLUDE= # Files or directories that should be excluded from INPUT source files. |
| 129 | # Headers and footers are actually rather attractive, |
| 130 | # <doxygen:param>HTML_HEADER="doxygen/checks_doxygen_header.html" # A sample including a draft stamp and 'Not_Yet_In_Boost' logo. |
| 131 | # Take care that if you use this (recommended), you need to ensure that the html |
| 132 | # <doxygen:param>HTML_FOOTER="doxygen/checks_doxygen_footer.html" # This is very useful to add copyright, date of revision, versioning etc. |
| 133 | |
| 134 | # A custom stylesheet is also useful, as the default syntax coloring is 'unusual' ;-) |
| 135 | <doxygen:param>HTML_STYLESHEET="doxygen/doxygen.css" # Placed in the doxygen directory, |
| 136 | # this will change to your choice of C++ syntax coloring when viewing source from Doxygen. |
| 137 | # Users can place (or edit) their own personal choice CSS file here. |
| 138 | |
| 139 | # Default is just Reference but you can provide your own title for reference section here. |
| 140 | <xsl:param>"boost.doxygen.reftitle=odeint Reference" |
| 141 | ; |
| 142 | |
| 143 | |
| 144 | xml odeint |
| 145 | : |
| 146 | odeint.qbk |
| 147 | : |
| 148 | ; |
| 149 | |
| 150 | boostbook standalone |
| 151 | : |
| 152 | odeint |
| 153 | : |
| 154 | |
| 155 | # Path for links to Boost: |
| 156 | #<xsl:param>boost.root=\$(local-boost-root) # Link to Boost logo boost.png |
| 157 | # Links are relative and trying to make absolute does NOT work. |
| 158 | # And remember that all links MUST (unless in quotes) use backslash, not forward that is trip char. |
| 159 | |
| 160 | <xsl:param>boost.root=../../../../.. # OK but link to I:/boost_trunk/boost.png |
| 161 | |
| 162 | # Also control links to admonitions, so need to set separately. |
| 163 | #<xsl:param>boost.root=../../../../../../../boost_1_47_0 # OK file:///I:/boost_1_48_0/boost.png |
| 164 | # Quickbook [@boost:/boost/units/detail/utility.hpp] should make it relative to xsl parameter boost.root. |
| 165 | |
| 166 | # Use the your own local Boost stylesheet: |
| 167 | # <xsl:param>html.stylesheet=../html/boostbook.css |
| 168 | |
| 169 | # Some general style settings: |
| 170 | # see http://docbook.sourceforge.net/release/xsl/current/doc/html/index.html |
| 171 | <xsl:param>table.footnote.number.format=1 # Identifies the format used for footnote numbers in tables. |
| 172 | <xsl:param>footnote.number.format=1 # Identifies the format used for text footnote numbers. |
| 173 | |
| 174 | # Default to not including the Boost logo in the navbar, when one expressly asks to include the navbar. |
| 175 | # Boost jamroot now includes |
| 176 | # Default to not include a navbar. |
| 177 | #<xsl:param>nav.layout=none # No navigation bar (home, prev, next). |
| 178 | # defining creates a runtime error: Global parameter nav.layout already defined |
| 179 | #<xsl:param>nav.layout=horizontal # to get a horizontal navigation bar (you probably DO want this). |
| 180 | |
| 181 | <xsl:param>boost.image.src=logo.jpg # |
| 182 | <xsl:param>boost.image.width=294 # Width of logo in pixels. |
| 183 | <xsl:param>boost.image.height=127 # Height of logo in pixels. |
| 184 | |
| 185 | |
| 186 | # HTML options: |
| 187 | # ------------ |
| 188 | <xsl:param>navig.graphics=1 # Use graphics not text for navigation. |
| 189 | <xsl:param>chunk.section.depth=2 # How far down we chunk nested sections, basically all of them. |
| 190 | <xsl:param>chunk.first.sections=1 # Don't put the first section on the same page as the TOC. |
| 191 | <xsl:param>toc.section.depth=2 # How far down sections get TOCs. |
| 192 | <xsl:param>toc.max.depth=2 # Max depth in each TOC. |
| 193 | <xsl:param>generate.section.toc.level=3 # How far down we go with TOCs. |
| 194 | |
| 195 | #<format>html:<xsl:param>admon.graphics.extension=".png" # default type for admonitions (important, warning, note ...) |
| 196 | #<format>html:<xsl:param>admon.graphics.path=$(nav-images)/ # path to admonition (warning, note...) image (.png) files. |
| 197 | |
| 198 | # <xsl:param name="draft.watermark.image">http://docbook.sourceforge.net/release/images/draft.png</xsl:param> |
| 199 | # but use a local copy of draft.png. |
| 200 | |
| 201 | # PDF Options: |
| 202 | # ----------- |
| 203 | # TOC Generation |
| 204 | <xsl:param>fop1.extensions=0 # DISable extensions for FOP version 0.90 and later . |
| 205 | <format>pdf:<xsl:param>fop.extensions=0 # DISable extensions for FOP version 0.20.5 and earlier. |
| 206 | <format>pdf:<xsl:param>xep.extensions=1 # Use XEP extension- PDF bookmarks, document information and better index processing. |
| 207 | |
| 208 | # No indent on body text: |
| 209 | <format>pdf:<xsl:param>body.start.indent=0pt # |
| 210 | <format>pdf:<xsl:param>paper.type=A4 # Paper type = A4 |
| 211 | # http://xml.resource.org/public/rfc/html/rfc2346.html |
| 212 | # Making Postscript and PDF International, J Palme, RFC 2346 recommends |
| 213 | # If you are using US letter paper format, ensure that both left and right margins are at least 21 mm (0.8 in). |
| 214 | # If you are using A4 paper, ensure that both the top and bottom margins are at least 33 mm (1.3 in). |
| 215 | # Margins sizes: |
| 216 | #<format>pdf:<xsl:param>page.margin.top=1.3in |
| 217 | #<format>pdf:<xsl:param>page.margin.inner=0.8in |
| 218 | #<format>pdf:<xsl:param>page.margin.bottom=1.3in |
| 219 | #<format>pdf:<xsl:param>page.margin.outer=0.8in |
| 220 | |
| 221 | # http://docbook.sourceforge.net/release/xsl/current/doc/index.html |
| 222 | # DocBook XSL Stylesheets: Reference Documentation. |
| 223 | |
| 224 | # Yes, we want graphics for admonishments: |
| 225 | <xsl:param>admon.graphics=1 |
| 226 | # Set these one for PDF generation *only*: |
| 227 | # In PDF format, default PNG graphics are awful, so better use SVG images (type .svg) instead. |
| 228 | <format>pdf:<xsl:param>admon.graphics.extension=".svg" # |
| 229 | <format>pdf:<xsl:param>use.role.for.mediaobject=1 # Use print role on next line. |
| 230 | <format>pdf:<xsl:param>preferred.mediaobject.role=print # pdf role is to be printed. |
| 231 | <format>pdf:<xsl:param>img.src.path=$(here)/html/ # Path of image (.svg) files. (Note trailing /) ? |
| 232 | #<format>pdf:<xsl:param>admon.graphics.path=$(nav_images)/ # path to admonition (warning, note...) image (.svg) files. |
| 233 | #<format>pdf:<xsl:param>draft.mode="yes" # Yes if draft watermark wanted! |
| 234 | #<format>pdf:<xsl:param>draft.watermark.image="draft.png" # Watermark (local copy). |
| 235 | #<format>pdf:<xsl:param>draft.watermark.image=http://docbook.sourceforge.net/release/images/draft.png # Watermark. |
| 236 | |
| 237 | <dependency>reference # Doxygen reference section |
| 238 | # <dependency>pdf-install # final pdf |
| 239 | # <dependency>png-install # Boost standard icons in both png |
| 240 | # <dependency>svg-install # and svg. |
| 241 | ; |
| 242 | |
| 243 | |
| 244 | # To install a copy of 'master' boostbook.css and logo. |
| 245 | # install html : ../../../doc/html/boostbook.css ; |
| 246 | # install ../ : ../../../boost.png ; |
| 247 | |
| 248 | |
| 249 | |
| 250 | # Install (copy) the 'master' copy of boostbook Cascading Style sheet |
| 251 | # from your current Boost-root to the /doc/html folder. |
| 252 | # path-constant boost-root : [ modules.peek : BOOST ] ; |
| 253 | # install css-install : $(boost-root)/doc/src/boostbook.css : <location>html ; |
| 254 | |
| 255 | # path-constant boost-root : [ modules.peek : BOOST ] ; |
| 256 | |
| 257 | |
| 258 | # Install (copy) the 'master' copies of all icon images (both PNG and SVG) |
| 259 | # and the Boost logo from your current Boost-root |
| 260 | # to the local /doc/html/images folder so that html is complete and standalone. |
| 261 | # install png-install : [ glob $(boost-root)/doc/src/images/*.png $(boost-root)/boost.png ] : <location>html/images ; |
| 262 | # install svg-install : [ glob $(boost-root)/doc/src/images/*.svg ] : <location>html/images ; |
| 263 | |
| 264 | # install unordered_pdf : standalone/<format>pdf : <location>. ; |
| 265 | # explicit unordered_pdf ; |
| 266 | # The explicit rule is there so that it's only installed when the target is explicitly named. |
| 267 | |
| 268 | # Effectively copies the file from \bin folder to the \doc folder. |
| 269 | # install pdf-install : standalone : <location>. <install-type>PDF ; |
| 270 | # But will not work as expected if doxygen and/or autoindex is used |
| 271 | # because a modified pdf file is created, so this command below |
| 272 | # will rename the file to the expected filename, here quick_auto_dox_index.pdf. |
| 273 | # <location>. means installed in same place as this jamfile, /doc. |
| 274 | |
| 275 | install pdfinstall : standalone : <install-type>PDF <location>. <name>odeint.pdf ; |
| 276 | |
| 277 | install callouts : [ glob src/images/callouts/*.png ] : <location>html/images/callouts ; |