Jamfile.v2 14 KB

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