summaryrefslogtreecommitdiff
path: root/libs/numeric/odeint/doc/Jamfile.v2
blob: a81142c5c4a51198f1155310d1f758e959619502 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
# 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
        <include>$(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

        <auto-index>on
        <auto-index-verbose>on
        
        # Choose indexing method (separately for html and pdf):
        <format>html:<auto-index-internal>on  # on (or off) to use internally generated indexes.
        # <format>html:<xsl:param>generate.index=0 # Don't let the XSL stylesheets generate indexes.
        
        <format>pdf:<auto-index-internal>off # on (or off) to use internally generated indexes.
        # <auto-index-type>index  # Use <index>...</index> as the XML wrapper.
        
        <format>pdf:<xsl:param>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.

        <auto-index-script>odeint.idx # Specifies the name of the index script to load. 
        <auto-index-prefix>../../../.. 
        
        # Inform Quickbook that there is to be an index(es).
        <quickbook-define>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.
    <doxygen:param>WARNINGS=YES
    <doxygen:param>WARN_LOGFILE=AutoDoxywarnings.log
    <doxygen:param>WARN_IF_UNDOCUMENTED=NO # Default NO but useful if you aim to Doxygen document *all* members.
    <doxygen:param>QUIET=NO
    <doxygen:param>WARN_NO_PARAMDOC=NO # Default no, but YES useful if you aim to document all function parameters.
    <doxygen:param>DOXYFILE_ENCODING=UTF-8
    <doxygen:param>PROJECT_NAME="odeint"
    <doxygen:param>PROJECT_NUMBER=2.2
    <doxygen:param>TAB_SIZE=2
    <doxygen:param>SORT_MEMBER_DOCS=NO
    <doxygen:param>SORT_BRIEF_DOCS=NO
    <doxygen:param>SORT_MEMBERS_CTORS_1ST=NO
    <doxygen:param>EXTRACT_PRIVATE=NO 
    <doxygen:param>INLINE_INHERITED_MEMB=YES
    <doxygen:param>INHERIT_DOCS=YES
    <doxygen:param>EXTRACT_STATIC=YES
    <doxygen:param>EXTRACT_ANON_NSPACES=NO
    <doxygen:param>EXTRACT_LOCAL_CLASSES=YES
    <doxygen:param>EXTRACT_LOCAL_METHODS=YES
    <doxygen:param>HIDE_UNDOC_MEMBERS=NO
    <doxygen:param>HIDE_UNDOC_CLASSES=YES
    <doxygen:param>HIDE_FRIEND_COMPOUNDS=NO
    #<doxygen:param>HIDE_INBODY_DOCS=NO
    <doxygen:param>INTERNAL_DOCS=YES
    <doxygen:param>CASE_SENSE_NAMES=NO
    <doxygen:param>HIDE_SCOPE_NAMES=NO

    # Preprocessor settings.
    # Some ugly examples of predefined macro calls (from Boost.Units library) :(
    <doxygen:param>"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\" "
    <doxygen:param>ENABLE_PREPROCESSING=YES # Evaluates all C-preprocessor directives found in files.
    <doxygen:param>MACRO_EXPANSION=YES # Will expand all macro names.
    <doxygen:param>EXPAND_ONLY_PREDEF=YES # Only predefined macros expanded.  See units library for an example.
    <doxygen:param>SEARCH_INCLUDES=YES # Search #include files found.
    <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.

    <doxygen:param>SHOW_INCLUDE_FILES=NO # List of the files that are included by a file in the documentation of that file.
    <doxygen:param>REPEAT_BRIEF=YES # Prepend the brief description of a member or function before the detailed description
    <doxygen:param>BRIEF_MEMBER_DESC=YES # Include brief member descriptions after the members that are listed in the file and class
    <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.
    # May be best to always use \brief and \details to avoid ambiguity?
    # <doxygen:param>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
    # <doxygen:param>CPP_CLI_SUPPORT=NO # unless, most unusually, you are compiled for a 'managed' CLI application.
    <doxygen:param>SHOW_USED_FILES=YES # Default YES to show a list files used to generate documention.
    <doxygen:param>SHOW_DIRECTORIES=YES # Default NO, but useful to show directory heirarchy.
    <doxygen:param>SHOW_FILES=YES # Default YES is to include a tab for a page of files listed.  Useful.
    <doxygen:param>SHOW_NAMESPACES=YES # Default YES to include tab for list of namespaces.  Useful if you have namespacess other than boost::
    <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
    #  Might include .qbk?

    <doxygen:param>RECURSIVE=YES # Search recursively down subdirectories.
    <doxygen:param>EXCLUDE= # Files or directories that should be excluded from INPUT source files.
    #  Headers and footers are actually rather attractive,
    #     <doxygen:param>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
    #    <doxygen:param>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' ;-)
    <doxygen:param>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.
    <xsl:param>"boost.doxygen.reftitle=odeint Reference"
;


xml odeint 
    :
    odeint.qbk
    :
;

boostbook standalone
    :
    odeint
    :

    # Path for links to Boost:
    #<xsl:param>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.

    <xsl:param>boost.root=../../../../.. # OK but link to I:/boost_trunk/boost.png

    # Also control links to admonitions, so need to set separately.
    #<xsl:param>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:
    # <xsl:param>html.stylesheet=../html/boostbook.css

    # Some general style settings:
    #   see http://docbook.sourceforge.net/release/xsl/current/doc/html/index.html
    <xsl:param>table.footnote.number.format=1 # Identifies the format used for footnote numbers in tables.
    <xsl:param>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.
    #<xsl:param>nav.layout=none # No navigation bar (home, prev, next).
    # defining creates a runtime error: Global parameter nav.layout already defined
    #<xsl:param>nav.layout=horizontal # to get a horizontal navigation bar (you probably DO want this).

    <xsl:param>boost.image.src=logo.jpg #
    <xsl:param>boost.image.width=294 # Width of logo in pixels.
    <xsl:param>boost.image.height=127 # Height of logo in pixels.


    # HTML options:
    # ------------
    <xsl:param>navig.graphics=1  # Use graphics not text for navigation.
    <xsl:param>chunk.section.depth=2  # How far down we chunk nested sections, basically all of them.
    <xsl:param>chunk.first.sections=1  # Don't put the first section on the same page as the TOC.
    <xsl:param>toc.section.depth=2  # How far down sections get TOCs.
    <xsl:param>toc.max.depth=2  # Max depth in each TOC.
    <xsl:param>generate.section.toc.level=3  # How far down we go with TOCs.

    #<format>html:<xsl:param>admon.graphics.extension=".png"  # default type for admonitions (important, warning, note ...)
    #<format>html:<xsl:param>admon.graphics.path=$(nav-images)/ # path to admonition (warning, note...) image (.png) files.

    # <xsl:param name="draft.watermark.image">http://docbook.sourceforge.net/release/images/draft.png</xsl:param>
    # but use a local copy of draft.png.

    # PDF Options:
    # -----------
    # TOC Generation
    <xsl:param>fop1.extensions=0 # DISable extensions for FOP version 0.90 and later .
    <format>pdf:<xsl:param>fop.extensions=0 # DISable extensions for FOP version 0.20.5 and earlier.
    <format>pdf:<xsl:param>xep.extensions=1 # Use XEP extension- PDF bookmarks, document information and better index processing.

    # No indent on body text:
    <format>pdf:<xsl:param>body.start.indent=0pt #
    <format>pdf:<xsl:param>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:
    #<format>pdf:<xsl:param>page.margin.top=1.3in
    #<format>pdf:<xsl:param>page.margin.inner=0.8in
    #<format>pdf:<xsl:param>page.margin.bottom=1.3in
    #<format>pdf:<xsl:param>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:
    <xsl:param>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.
    <format>pdf:<xsl:param>admon.graphics.extension=".svg"  #
    <format>pdf:<xsl:param>use.role.for.mediaobject=1 # Use print role on next line.
    <format>pdf:<xsl:param>preferred.mediaobject.role=print # pdf role is to be printed.
    <format>pdf:<xsl:param>img.src.path=$(here)/html/ # Path of image (.svg) files. (Note trailing /) ? 
    #<format>pdf:<xsl:param>admon.graphics.path=$(nav_images)/ # path to admonition (warning, note...) image (.svg) files.
    #<format>pdf:<xsl:param>draft.mode="yes" # Yes if draft watermark wanted!
    #<format>pdf:<xsl:param>draft.watermark.image="draft.png" # Watermark (local copy).
    #<format>pdf:<xsl:param>draft.watermark.image=http://docbook.sourceforge.net/release/images/draft.png # Watermark.

    <dependency>reference # Doxygen  reference section
    # <dependency>pdf-install # final pdf
    #  <dependency>png-install # Boost standard icons in both png
    #	<dependency>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 : <location>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 ] : <location>html/images ;
# install svg-install : [ glob $(boost-root)/doc/src/images/*.svg ] : <location>html/images ;

#   install unordered_pdf : standalone/<format>pdf : <location>. ;
#   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 : <location>. <install-type>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.
# <location>. means installed in same place as this jamfile, /doc.

install pdfinstall : standalone : <install-type>PDF <location>. <name>odeint.pdf ;

install callouts : [ glob src/images/callouts/*.png ] : <location>html/images/callouts ;