• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Spreadsort documentation Jamfile
2# Copyright (c) 2014 Steven Ross
3#
4# Distributed under the Boost Software License,
5# Version 1.0. (See accompanying file LICENSE_1_0.txt
6# or copy at http://boost.org/LICENSE_1_0.txt)
7
8# Reminder: whitespace MUST terminate variable name!
9# so spaces or newlines BEFORE ; and : and AFTER too.
10# (because : and ; are keywords!)
11
12import doxygen ;
13import quickbook ;
14import os ; # Needed to get environment variables.
15import modules ;
16
17path-constant here : . ; # convenient to refer to files in the same directory as this jamfile.v2
18path-constant boost-images : ../../../doc/src/images ;
19path-constant images_location : ./doc ; # location of SVG and PNG images referenced by Quickbook.
20# http://docbook.sourceforge.net/release/xsl/1.77.1/doc/html/img.src.path.html
21# relative to /doc ?
22
23path-constant parent : .. ;  # Beman Dawes - so that inspect.exe will start in boost-root/libs/timer
24                             # when run from another directory, such as boost-root/status
25using auto-index ;
26using doxygen ;  # Required if you want to use Doxygen.
27using quickbook ;
28using boostbook ;
29
30if --enable-index in  [ modules.peek : ARGV ]
31{
32   ECHO "Building the Spreadsort docs with automatic index generation enabled." ;
33   using auto-index ;
34   project sort_doc : requirements
35             <auto-index>on
36             <auto-index-script>sort.idx
37             <auto-index-prefix>.
38             <auto-index-verbose>on
39             <format>html:<auto-index-internal>on
40             <format>html:<xsl:param>generate.index=0
41             <format>pdf:<auto-index-internal>on
42             <format>pdf:<xsl:param>index.on.type=1
43             <quickbook-define>enable_index ;
44}
45else
46{
47   project sort_doc ;
48   ECHO "Building the Spreadsort docs with automatic index generation disabled. Try building with --enable-index." ;
49}
50
51doxygen autodoc
52  :
53    [ glob $(here)/../include/boost/sort.hpp ]
54    [ glob $(here)/../include/boost/sort/spreadsort/*.hpp ]
55    # [ glob $(here)/../include/boost/sort/detail/spreadsort/*.hpp ] # Hide implementation/detail for now.
56    # but could also include this and switch Boost.Sort C++ reference info to include implementation/detail or not using Doxygen macro DETAIL.
57    # See http://www.stack.nl/~dimitri/doxygen/manual/commands.html#cmdcond
58    # and http://www.stack.nl/~dimitri/doxygen/manual/config.html#cfg_enabled_sections
59    # by adding this line below with other Doxygen parameters
60    #     <doxygen:param>ENABLED_SECTIONS="DETAIL"
61    #  Or setting this macro value ENABLED_SECTIONS="DETAIL" in /doxygen/sort_doxyfile.txt for Standalone Doxygen documentaation.
62    # This might be useful for maintainers.
63
64  :
65    <doxygen:param>PROJECT_NAME="Sort"
66    <doxygen:param>RECURSIVE=NO
67    <doxygen:param>ENABLE_PREPROCESSING=YES
68    <doxygen:param>EXPAND_ONLY_PREDEF=YES
69    <doxygen:param>EXTRACT_ALL=NO
70    <doxygen:param>EXTRACT_PRIVATE=NO
71    <doxygen:param>HIDE_UNDOC_MEMBERS=YES
72    <doxygen:param>MACRO_EXPANSION=YES
73    <doxygen:param>SORT_MEMBER_DOCS=NO
74    <doxygen:param>SHOW_INCLUDE_FILES=NO
75    <doxygen:param>MAX_INITIALIZER_LINES=0
76    <doxygen:param>VERBATIM_HEADERS=NO
77    <doxygen:param>WARNINGS=NO # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings for undocumented members.
78    # If EXTRACT_ALL is set to YES then this flag will automatically be disabled.
79    <doxygen:param>WARN_IF_UNDOCUMENTED=NO # If WARN_IF_UNDOCUMENTED is set to YES,
80    # then doxygen will generate warnings for all undocumented members.
81    <doxygen:param>WARN_IF_DOC_ERROR=YES # If WARN_IF_DOC_ERROR is set to YES, Doxygen will generate warnings for
82    # potential errors in the documentation.
83    <doxygen:param>WARN_LOGFILE=AutoDoxywarnings.log # This may not be empty (usually not a good sign!), depending on options chosen.
84    # Much better to send message to a logfile than the default stderr.
85    # and make sure that there are no Doxygen errors or significant warnings in the log file.
86
87    #<reftitle>"Reference" # Default is "Reference" but helpful to specify library.
88    <xsl:param>"boost.doxygen.reftitle=Boost.Sort C++ Reference"
89    # See Doxygen configuration for detailed explanation of these options.
90  ;
91
92xml sort
93  :
94    sort.qbk # This is your 'root' Quickbook file (that may include other .qbk files).
95  ;
96
97boostbook standalone
98  :
99    sort
100  :
101  # http://www.sagehill.net/docbookxsl/SectionNumbering.html
102  <xsl:param>boost.root=../../../.. # modular-boost
103  <xsl:param>chapter.autolabel=0 # No Chapter numbering.
104  <xsl:param>chunk.section.depth=8
105  <xsl:param>toc.section.depth=8  # How far down sections get TOCs.
106  <xsl:param>toc.max.depth=4  # Max depth in each TOC.
107  <xsl:param>generate.section.toc.level=1
108
109
110  # PDF Options:
111  # TOC Generation: this is needed for FOP-0.9 and later:
112  <xsl:param>fop1.extensions=0
113  <xsl:param>xep.extensions=1
114  # TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
115  <xsl:param>fop.extensions=1
116  # No indent on body text:
117  <xsl:param>body.start.indent=0pt
118  # Margin size:
119  <xsl:param>page.margin.inner=0.5in
120  # Margin size:
121  <xsl:param>page.margin.outer=0.5in
122  # Paper type = A4
123  <xsl:param>paper.type=A4
124  # Yes, we want graphics for admonishments:
125  <xsl:param>admon.graphics=1
126  #<format>html:<xsl:param>img.src.path=$(images_location)/
127  # Default works for html, need ./doc for PDF
128  # Set this one for PDF generation *only*:
129  # default png graphics are awful in PDF form,
130  # better use SVGs instead, if available:
131
132  <format>pdf:<xsl:param>img.src.path=$(images_location)/
133  <format>pdf:<xsl:param>admon.graphics.extension=".svg"
134  <format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
135
136  <dependency>autodoc #
137
138  ;
139
140install pdfinstall
141    : standalone
142    : <location>. <install-type>PDF <name>sort.pdf
143    ;
144explicit css ;
145explicit images ;
146
147# This will run the inspect tool automatically from the doc folder
148# but sadly seems to build the tool each time so is very slow.
149#  Also it produces lots of output from the original docs.
150#  So not very useful yet.
151
152#  Run inspect tool.
153# run /boost/tools/inspect//inspect/<variant>release
154#  : $(parent) -text -brief # command line
155#  : # input files
156#  : <dependency>/boost/filesystem//boost_filesystem
157#    <test-info>always_show_run_output # requirements
158#  : inspect # test name
159# ;
160
161###############################################################################
162alias boostdoc ;
163explicit boostdoc ;
164alias boostrelease : standalone ;
165explicit boostrelease ;
166