• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4<title>Boostdep</title>
5<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
7<link rel="home" href="index.html" title="Boostdep">
8</head>
9<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
10<table cellpadding="2" width="100%"><tr>
11<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
12<td align="center"><a href="../../../../index.html">Home</a></td>
13<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
14<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
15<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
16<td align="center"><a href="../../../../more/index.htm">More</a></td>
17</tr></table>
18<hr>
19<div class="spirit-nav"></div>
20<div class="article">
21<div class="titlepage">
22<div>
23<div><h2 class="title">
24<a name="boostdep"></a>Boostdep</h2></div>
25<div><p class="copyright">Copyright &#169; 2014-2020 Peter Dimov</p></div>
26<div><div class="legalnotice">
27<a name="boostdep.legal"></a><p>
28        Distributed under the <a href="http://boost.org/LICENSE_1_0.txt" target="_top">Boost
29        Software License, Version 1.0</a>.
30      </p>
31</div></div>
32</div>
33<hr>
34</div>
35<div class="toc">
36<p><b>Table of Contents</b></p>
37<dl class="toc">
38<dt><span class="section"><a href="index.html#boostdep.introduction">Introduction</a></span></dt>
39<dd><dl>
40<dt><span class="section"><a href="index.html#boostdep.introduction.modular_boost">Modular Boost</a></span></dt>
41<dt><span class="section"><a href="index.html#boostdep.introduction.building_boostdep">Building Boostdep</a></span></dt>
42<dt><span class="section"><a href="index.html#boostdep.introduction.running_boostdep">Running Boostdep</a></span></dt>
43</dl></dd>
44<dt><span class="section"><a href="index.html#boostdep.usage">Usage</a></span></dt>
45<dd><dl>
46<dt><span class="section"><a href="index.html#boostdep.usage.simple_queries">Simple Queries</a></span></dt>
47<dt><span class="section"><a href="index.html#boostdep.usage.html_reports">HTML reports</a></span></dt>
48</dl></dd>
49<dt><span class="section"><a href="index.html#boostdep.reference">Reference</a></span></dt>
50<dd><dl>
51<dt><span class="section"><a href="index.html#boostdep.reference.list_modules">--list-modules</a></span></dt>
52<dt><span class="section"><a href="index.html#boostdep.reference.list_buildable">--list-buildable</a></span></dt>
53<dt><span class="section"><a href="index.html#boostdep.reference.list_dependencies">--list-dependencies</a></span></dt>
54<dt><span class="section"><a href="index.html#boostdep.reference.list_exceptions">--list-exceptions</a></span></dt>
55<dt><span class="section"><a href="index.html#boostdep.reference.list_missing_headers">--list-missing-headers</a></span></dt>
56<dt><span class="section"><a href="index.html#boostdep.reference.list_buildable_dependencies">--list-buildable-dependencies</a></span></dt>
57<dt><span class="section"><a href="index.html#boostdep.reference.module_overview">--module-overview</a></span></dt>
58<dt><span class="section"><a href="index.html#boostdep.reference.module_levels">--module-levels</a></span></dt>
59<dt><span class="section"><a href="index.html#boostdep.reference.module_weights">--module-weights</a></span></dt>
60<dt><span class="section"><a href="index.html#boostdep.reference.primary">--primary</a></span></dt>
61<dt><span class="section"><a href="index.html#boostdep.reference.secondary">--secondary</a></span></dt>
62<dt><span class="section"><a href="index.html#boostdep.reference.reverse">--reverse</a></span></dt>
63<dt><span class="section"><a href="index.html#boostdep.reference.subset">--subset</a></span></dt>
64<dt><span class="section"><a href="index.html#boostdep.reference.header">--header</a></span></dt>
65<dt><span class="section"><a href="index.html#boostdep.reference.test">--test</a></span></dt>
66<dt><span class="section"><a href="index.html#boostdep.reference.cmake">--cmake</a></span></dt>
67<dt><span class="section"><a href="index.html#boostdep.reference.pkgconfig">--pkgconfig</a></span></dt>
68<dt><span class="section"><a href="index.html#boostdep.reference.subset_for">--subset-for</a></span></dt>
69<dt><span class="section"><a href="index.html#boostdep.reference.boost_root">--boost-root</a></span></dt>
70<dt><span class="section"><a href="index.html#boostdep.reference.track_sources">--track-sources</a></span></dt>
71<dt><span class="section"><a href="index.html#boostdep.reference.track_tests">--track-tests</a></span></dt>
72<dt><span class="section"><a href="index.html#boostdep.reference.html_title">--html-title</a></span></dt>
73<dt><span class="section"><a href="index.html#boostdep.reference.html_footer">--html-footer</a></span></dt>
74<dt><span class="section"><a href="index.html#boostdep.reference.html_stylesheet">--html-stylesheet</a></span></dt>
75<dt><span class="section"><a href="index.html#boostdep.reference.html_prefix">--html-prefix</a></span></dt>
76<dt><span class="section"><a href="index.html#boostdep.reference.html">--html</a></span></dt>
77</dl></dd>
78</dl>
79</div>
80<div class="section">
81<div class="titlepage"><div><div><h2 class="title" style="clear: both">
82<a name="boostdep.introduction"></a><a class="link" href="index.html#boostdep.introduction" title="Introduction">Introduction</a>
83</h2></div></div></div>
84<div class="toc"><dl class="toc">
85<dt><span class="section"><a href="index.html#boostdep.introduction.modular_boost">Modular Boost</a></span></dt>
86<dt><span class="section"><a href="index.html#boostdep.introduction.building_boostdep">Building Boostdep</a></span></dt>
87<dt><span class="section"><a href="index.html#boostdep.introduction.running_boostdep">Running Boostdep</a></span></dt>
88</dl></div>
89<p>
90      <span class="emphasis"><em>Boostdep</em></span> is a tool for generating Boost dependency reports.
91      It scans the header or source files of the Boost libraries for <code class="computeroutput"><span class="preprocessor">#include</span></code> directives, builds a dependency
92      graph from this information and outputs its findings in plain text or HTML.
93    </p>
94<div class="section">
95<div class="titlepage"><div><div><h3 class="title">
96<a name="boostdep.introduction.modular_boost"></a><a class="link" href="index.html#boostdep.introduction.modular_boost" title="Modular Boost">Modular Boost</a>
97</h3></div></div></div>
98<p>
99        <span class="emphasis"><em>Boostdep</em></span> requires the so-called "modular Boost"
100        directory structure.
101      </p>
102<p>
103        If you already have a <a href="https://svn.boost.org/trac/boost/wiki/ModularBoost" target="_top">modular
104        Boost installation</a>, you can skip this section. Otherwise, read on.
105      </p>
106<p>
107        Boost libraries reside in subdirectories under the <code class="literal">libs</code>
108        directory. For example, the contents of the Boost.Filesystem library are
109        in <code class="literal">libs/filesystem</code>. This includes the build scripts (in
110        <code class="literal">libs/filesystem/build</code>), the source files (in <code class="literal">libs/filesystem/src</code>),
111        the tests (in <code class="literal">libs/filesystem/test</code>), the documentation
112        (in <code class="literal">libs/filesystem/doc</code>), and so on.
113      </p>
114<p>
115        In the past, when Boost used SVN as its version control system, the header
116        files were an exception. The header files of all libraries resided in the
117        <code class="literal">boost</code> subdirectory, and it wasn't possible to accurately
118        determine which header belonged to which library.
119      </p>
120<p>
121        When Boost moved to Git for version control, header files were moved to their
122        corresponding libraries, into an <code class="literal">include</code> subdirectory.
123        The header files of Boost.Filesystem are now in <code class="literal">libs/filesystem/include</code>.
124      </p>
125<p>
126        For compatibility, <code class="literal">boost</code> is now a "virtual"
127        directory, containing links to the headers. It's maintained automatically
128        by Boost.Build. (The command <code class="literal">b2 headers</code> creates or recreates
129        the contents of the <code class="literal">boost</code> directory.)
130      </p>
131<p>
132        This new structure allows <span class="emphasis"><em>Boostdep</em></span> to determine that,
133        when faced with an <code class="computeroutput"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
134        directive, that this header is part of Boost.Filesystem, and that therefore,
135        the current library being scanned depends on Boost.Filesystem.
136      </p>
137<p>
138        Unfortunately, Boost releases do not have this structure. For backward compatibility,
139        they have an old-style <code class="literal">boost</code> directory containing all
140        header files, whereas the per-library <code class="literal">include</code> subdirectories
141        are missing. Therefore, <span class="emphasis"><em>Boostdep</em></span> will not work with
142        a downloaded Boost release.
143      </p>
144<p>
145        To use <span class="emphasis"><em>Boostdep</em></span>, you will have to clone the Boost Git
146        repository instead. To do that, execute the following command:
147      </p>
148<pre class="programlisting">git clone https://github.com/boostorg/boost.git boost
149</pre>
150<p>
151        This will download the Boost "superproject" (the master project,
152        without any libraries) and place it into the subdirectory <code class="literal">boost</code>
153        of the current directory. To override the directory name, pass it as a second
154        argument instead of <code class="literal">boost</code>:
155      </p>
156<pre class="programlisting">git clone https://github.com/boostorg/boost.git <span class="emphasis"><em>mydir</em></span>
157</pre>
158<p>
159        You can now <code class="literal">cd</code> into the newly created directory with
160      </p>
161<pre class="programlisting">cd <span class="emphasis"><em>mydir</em></span>
162</pre>
163<p>
164        This directory is called the "Boost root". All of the commands
165        below assume that it is the current directory.
166      </p>
167<p>
168        The above <code class="literal">git clone</code> commands download the default branch
169        of the Boost Git repository, which is <code class="literal">master</code>. This is
170        the current more-or-less stable version of Boost.
171      </p>
172<p>
173        To verify this, issue the command
174      </p>
175<pre class="programlisting">git status
176</pre>
177<p>
178        from the Boost root. This will output
179      </p>
180<pre class="programlisting"># On branch master
181nothing to commit, working directory clean
182</pre>
183<p>
184        To download a specific release instead, such as 1.58.0, issue the following
185        command after <code class="literal">git clone</code>, from the Boost root:
186      </p>
187<pre class="programlisting">git checkout boost-1.58.0
188</pre>
189<p>
190        <code class="literal">git status</code> will now say
191      </p>
192<pre class="programlisting"># HEAD detached at boost-1.58.0
193nothing to commit, working directory clean
194</pre>
195<p>
196        Then, download all the libraries:
197      </p>
198<pre class="programlisting">git submodule update --init
199</pre>
200<p>
201        This step will take a while.
202      </p>
203<p>
204        If all goes well, you will now have the complete contents of Boost's latest
205        <code class="literal">master</code> branch (if you didn't <code class="literal">checkout</code>
206        a specific release by name) or the corresponding Boost release (if you did).
207      </p>
208<p>
209        You can switch between the <code class="literal">master</code> branch, the <code class="literal">develop</code>
210        (unstable) branch, and a release, by issuing the following commands:
211      </p>
212<div class="blockquote"><blockquote class="blockquote"><p>
213          For the <code class="literal">master</code> branch:
214        </p></blockquote></div>
215<pre class="programlisting">git checkout master
216git pull
217git submodule update --init
218</pre>
219<div class="blockquote"><blockquote class="blockquote"><p>
220          (<code class="literal">git pull</code> updates your local copy of the <code class="literal">master</code>
221          branch from the server, in case it has changed since your initial checkout.)
222        </p></blockquote></div>
223<div class="blockquote"><blockquote class="blockquote"><p>
224          For the <code class="literal">develop</code> branch:
225        </p></blockquote></div>
226<pre class="programlisting">git checkout develop
227git pull
228git submodule update --init
229</pre>
230<div class="blockquote"><blockquote class="blockquote"><p>
231          For the <code class="literal">boost-1.58.0</code> release:
232        </p></blockquote></div>
233<pre class="programlisting">git checkout boost-1.58.0
234git submodule update --init
235</pre>
236<div class="blockquote"><blockquote class="blockquote"><p>
237          For the <code class="literal">boost-1.57.0</code> release:
238        </p></blockquote></div>
239<pre class="programlisting">git checkout boost-1.57.0
240git submodule update --init
241</pre>
242<p>
243        Note that, while the initial <code class="literal">git submodule update</code> is quite
244        slow, as it needs to download all the libraries, the subsequent invocations
245        are a lot faster.
246      </p>
247<p>
248        Also note that if a new Boost library (<code class="literal">libs/convert</code>, for
249        example) is present in, say, <code class="literal">master</code>, and you have it checked
250        out, when you later switch to <code class="literal">boost-1.58.0</code>, where this
251        library doesn't exist, Git will not delete <code class="literal">libs/convert</code>.
252        In this case, <code class="literal">git status</code> will output
253      </p>
254<pre class="programlisting"># HEAD detached at boost-1.58.0
255# Untracked files:
256#   (use "git add &lt;file&gt;..." to include in what will be committed)
257#
258#       libs/convert/
259nothing added to commit but untracked files present (use "git add" to track)
260</pre>
261<p>
262        and you will have to remove <code class="literal">libs/convert</code> by hand.
263      </p>
264<p>
265        Once you have the Boost contents which you want to analyze for dependencies,
266        proceed with the next step, building <span class="emphasis"><em>Boostdep</em></span>.
267      </p>
268</div>
269<div class="section">
270<div class="titlepage"><div><div><h3 class="title">
271<a name="boostdep.introduction.building_boostdep"></a><a class="link" href="index.html#boostdep.introduction.building_boostdep" title="Building Boostdep">Building Boostdep</a>
272</h3></div></div></div>
273<p>
274        To build <span class="emphasis"><em>Boostdep</em></span>, issue the following command from
275        the Boost root:
276      </p>
277<pre class="programlisting">b2 tools/boostdep/build
278</pre>
279<p>
280        This will build <span class="emphasis"><em>Boostdep</em></span> from source using the default
281        "toolset" (a Boost.Build term meaning "compiler") and
282        if successful, place it into the <code class="literal">dist/bin</code> subdirectory.
283        The command assumes that <code class="literal">b2</code> (the Boost.Build executable)
284        is somewhere in your path. If you don't have <code class="literal">b2</code>, execute
285      </p>
286<pre class="programlisting">.\bootstrap
287</pre>
288<p>
289        under Windows or
290      </p>
291<pre class="programlisting">./bootstrap.sh
292</pre>
293<p>
294        under Unix-like systems, which should build <code class="literal">b2</code> and place
295        it into the current directory. You can then use <code class="literal">./b2</code> instead
296        of <code class="literal">b2</code>.
297      </p>
298</div>
299<div class="section">
300<div class="titlepage"><div><div><h3 class="title">
301<a name="boostdep.introduction.running_boostdep"></a><a class="link" href="index.html#boostdep.introduction.running_boostdep" title="Running Boostdep">Running Boostdep</a>
302</h3></div></div></div>
303<p>
304        Once you have built <span class="emphasis"><em>Boostdep</em></span>, execute it with the following
305        command:
306      </p>
307<pre class="programlisting">dist/bin/boostdep
308</pre>
309<p>
310        or
311      </p>
312<pre class="programlisting">dist\bin\boostdep
313</pre>
314<p>
315        on Windows. The commands below are given as using <code class="literal">dist/bin/boostdep</code>;
316        if you're using Windows, use <code class="literal">dist\bin\boostdep</code> instead.
317      </p>
318<p>
319        This will print out the following help message:
320      </p>
321<pre class="programlisting">Usage:
322
323    boostdep --list-modules
324    boostdep --list-buildable
325    boostdep [--track-sources] [--track-tests] --list-dependencies
326    boostdep --list-exceptions
327    boostdep --list-missing-headers
328    boostdep --list-buildable-dependencies
329
330    boostdep [options] --module-overview
331    boostdep [options] --module-levels
332    boostdep [options] --module-weights
333
334    boostdep [options] [--primary] &lt;module&gt;
335    boostdep [options] --secondary &lt;module&gt;
336    boostdep [options] --reverse &lt;module&gt;
337    boostdep [options] --subset &lt;module&gt;
338    boostdep [options] [--header] &lt;header&gt;
339    boostdep --test &lt;module&gt;
340    boostdep --cmake &lt;module&gt;
341    boostdep --pkgconfig &lt;module&gt; &lt;version&gt; [&lt;var&gt;=&lt;value&gt;] [&lt;var&gt;=&lt;value&gt;]...
342    boostdep [options] --subset-for &lt;directory&gt;
343
344    [options]: [--boost-root &lt;path-to-boost&gt;]
345               [--[no-]track-sources] [--[no-]track-tests]
346               [--html-title &lt;title&gt;] [--html-footer &lt;footer&gt;]
347               [--html-stylesheet &lt;stylesheet&gt;] [--html-prefix &lt;prefix&gt;]
348               [--html]
349</pre>
350</div>
351</div>
352<div class="section">
353<div class="titlepage"><div><div><h2 class="title" style="clear: both">
354<a name="boostdep.usage"></a><a class="link" href="index.html#boostdep.usage" title="Usage">Usage</a>
355</h2></div></div></div>
356<div class="toc"><dl class="toc">
357<dt><span class="section"><a href="index.html#boostdep.usage.simple_queries">Simple Queries</a></span></dt>
358<dt><span class="section"><a href="index.html#boostdep.usage.html_reports">HTML reports</a></span></dt>
359</dl></div>
360<div class="section">
361<div class="titlepage"><div><div><h3 class="title">
362<a name="boostdep.usage.simple_queries"></a><a class="link" href="index.html#boostdep.usage.simple_queries" title="Simple Queries">Simple Queries</a>
363</h3></div></div></div>
364<p>
365        To list the dependencies of a specific library, use the command
366      </p>
367<pre class="programlisting">dist/bin/boostdep <span class="emphasis"><em>library</em></span>
368</pre>
369<p>
370        For Boost.Filesystem, for example, type
371      </p>
372<pre class="programlisting">dist/bin/boostdep filesystem
373</pre>
374<p>
375        This will print out something similar to the following:
376      </p>
377<pre class="programlisting">Primary dependencies for filesystem:
378
379assert:
380    &lt;boost/assert.hpp&gt;
381        from &lt;boost/filesystem/operations.hpp&gt;
382        from &lt;boost/filesystem/path_traits.hpp&gt;
383
384config:
385    &lt;boost/config.hpp&gt;
386        from &lt;boost/filesystem/config.hpp&gt;
387        from &lt;boost/filesystem/convenience.hpp&gt;
388        from &lt;boost/filesystem/fstream.hpp&gt;
389        from &lt;boost/filesystem/operations.hpp&gt;
390        from &lt;boost/filesystem/path.hpp&gt;
391        from &lt;boost/filesystem/path_traits.hpp&gt;
392    <span class="emphasis"><em>...</em></span>
393
394functional:
395    &lt;boost/functional/hash_fwd.hpp&gt;
396        from &lt;boost/filesystem/path.hpp&gt;
397
398io:
399    &lt;boost/io/detail/quoted_manip.hpp&gt;
400        from &lt;boost/filesystem/path.hpp&gt;
401
402iterator:
403    &lt;boost/iterator/iterator_facade.hpp&gt;
404        from &lt;boost/filesystem/path.hpp&gt;
405    <span class="emphasis"><em>...</em></span>
406</pre>
407<p>
408        This lists the immediate dependencies of Boost.Filesystem. <code class="literal">assert:</code>
409        is the library, <code class="literal">&lt;boost/assert.hpp&gt;</code> is the file that
410        is being included, and <code class="literal">from &lt;boost/filesystem/config.hpp&gt;</code>
411        shows where <code class="literal">&lt;boost/assert.hpp&gt;</code> is being included.
412      </p>
413<p>
414        <span class="emphasis"><em>Boostdep</em></span> names libraries (or modules) after their directory
415        name. The <code class="literal">libs/filesystem</code> directory, for example, is the
416        <code class="literal">filesystem</code> module. The <code class="literal">libs/numeric/conversion</code>
417        directory is the <code class="literal">numeric~conversion</code> module, according
418        to the <span class="emphasis"><em>Boostdep</em></span> naming convention.
419      </p>
420<p>
421        The reason forward slashes are replaced with tildes is that <code class="literal">numeric~conversion</code>
422        is a valid file name, which makes generating HTML reports a bit easier.
423      </p>
424<p>
425        To see where a given header resides and who includes it, type
426      </p>
427<pre class="programlisting">dist/bin/boostdep <span class="emphasis"><em>header</em></span>
428</pre>
429<p>
430        For <code class="literal">boost/filesystem.hpp</code>, for example, type
431      </p>
432<pre class="programlisting">dist/bin/boostdep boost/filesystem.hpp
433</pre>
434<p>
435        This will print something along the lines of
436      </p>
437<pre class="programlisting">Inclusion report for &lt;boost/filesystem.hpp&gt; (in module filesystem):
438
439    from spirit:
440        &lt;boost/spirit/home/x3/support/utility/testing.hpp&gt;
441</pre>
442<p>
443        What this tells you is that <code class="literal">boost/filesystem.hpp</code> is part
444        of Boost.Filesystem and is only included once, from <code class="literal">&lt;boost/spirit/home/x3/support/utility/testing.hpp&gt;</code>.
445        Other headers, such as <code class="literal">boost/shared_ptr.hpp</code>, are more
446        widely used, as you can see if you try
447      </p>
448<pre class="programlisting">dist/bin/boostdep boost/shared_ptr.hpp
449</pre>
450<p>
451        To print the reverse dependencies of a library, use
452      </p>
453<pre class="programlisting">dist/bin/boostdep --reverse <span class="emphasis"><em>library</em></span>
454</pre>
455<p>
456        For example,
457      </p>
458<pre class="programlisting">dist/bin/boostdep --reverse filesystem
459</pre>
460<p>
461        will list which libraries depend on Boost.Filesystem:
462      </p>
463<pre class="programlisting">Reverse dependencies for filesystem:
464
465graph_parallel:
466    &lt;boost/filesystem/operations.hpp&gt;
467        from &lt;boost/graph/distributed/adjlist/serialization.hpp&gt;
468    &lt;boost/filesystem/path.hpp&gt;
469        from &lt;boost/graph/distributed/adjlist/serialization.hpp&gt;
470
471log:
472    &lt;boost/filesystem/config.hpp&gt;
473        from &lt;boost/log/detail/config.hpp&gt;
474    &lt;boost/filesystem/path.hpp&gt;
475        from &lt;boost/log/sinks/event_log_backend.hpp&gt;
476        from &lt;boost/log/sinks/text_file_backend.hpp&gt;
477        from &lt;boost/log/sinks/text_multifile_backend.hpp&gt;
478
479spirit:
480    &lt;boost/filesystem.hpp&gt;
481        from &lt;boost/spirit/home/x3/support/utility/testing.hpp&gt;
482    &lt;boost/filesystem/fstream.hpp&gt;
483        from &lt;boost/spirit/home/x3/support/utility/testing.hpp&gt;
484    &lt;boost/filesystem/path.hpp&gt;
485        from &lt;boost/spirit/home/x3/support/utility/error_reporting.hpp&gt;
486
487wave:
488    &lt;boost/filesystem/operations.hpp&gt;
489        from &lt;boost/wave/util/cpp_include_paths.hpp&gt;
490        from &lt;boost/wave/util/cpp_iterator.hpp&gt;
491        from &lt;boost/wave/util/filesystem_compatibility.hpp&gt;
492    &lt;boost/filesystem/path.hpp&gt;
493        from &lt;boost/wave/cpp_context.hpp&gt;
494        from &lt;boost/wave/util/cpp_include_paths.hpp&gt;
495        from &lt;boost/wave/util/cpp_iterator.hpp&gt;
496        from &lt;boost/wave/util/cpp_macromap.hpp&gt;
497        from &lt;boost/wave/util/filesystem_compatibility.hpp&gt;
498</pre>
499</div>
500<div class="section">
501<div class="titlepage"><div><div><h3 class="title">
502<a name="boostdep.usage.html_reports"></a><a class="link" href="index.html#boostdep.usage.html_reports" title="HTML reports">HTML reports</a>
503</h3></div></div></div>
504<p>
505        The primary purpose of <span class="emphasis"><em>Boostdep</em></span> is to generate HTML
506        dependency reports. In the typical case, two types of reports are generated:
507        overviews that contain information for all modules, and per-module ones that
508        list information for a specific library.
509      </p>
510<p>
511        <span class="emphasis"><em>Boostdep</em></span> can generate three types of the first kind
512        of report: module overview, module levels and module weights. To generate
513        a module overview, use the command
514      </p>
515<pre class="programlisting">dist/bin/boostdep --html --module-overview &gt; module-overview.html
516</pre>
517<p>
518        For a module level report, use
519      </p>
520<pre class="programlisting">dist/bin/boostdep --html --module-levels &gt; module-levels.html
521</pre>
522<p>
523        For a module weight report, use
524      </p>
525<pre class="programlisting">dist/bin/boostdep --html --module-weights &gt; module-weights.html
526</pre>
527<p>
528        In these reports, module names such as <span class="emphasis"><em>module</em></span> are HTML
529        links to <code class="literal"><span class="emphasis"><em>module</em></span>.html</code>.
530      </p>
531<p>
532        To make these links work as expected, you can generate HTML reports for each
533        module as follows:
534      </p>
535<pre class="programlisting">dist/bin/boostdep --html-title "Dependency Report for <span class="emphasis"><em>module</em></span>" --html --primary <span class="emphasis"><em>module</em></span> --secondary <span class="emphasis"><em>module</em></span> --reverse <span class="emphasis"><em>module</em></span> &gt; <span class="emphasis"><em>module</em></span>.html
536</pre>
537<p>
538        This step can be automated if you generate a module list first with
539      </p>
540<pre class="programlisting">dist/bin/boostdep --list-modules &gt; list-modules.txt
541</pre>
542<p>
543        that will contain one module name per line, and then use a script to issue
544        the previous command for each module name.
545      </p>
546<p>
547        For more information about the <span class="emphasis"><em>Boostdep</em></span> options and
548        commands, see the <a class="link" href="index.html#boostdep.reference" title="Reference">Reference</a> section.
549      </p>
550<p>
551        For an example of a report generation script, see the file <code class="literal">tools/boostdep/examples/report.bat</code>.
552        This is a Windows batch file, but translating it to a Unix-style shell script
553        should be straightforward.
554      </p>
555<p>
556        For convenience, the contents of <code class="literal">tools/boostdep/examples/report.bat</code>
557        are given below:
558      </p>
559<pre class="programlisting">SET BOOSTDEP=dist\bin\boostdep.exe
560
561FOR /f %%i IN ('git rev-parse HEAD') DO @SET REV=%%i
562
563FOR /f %%i IN ('git rev-parse --short HEAD') DO @SET SHREV=%%i
564
565FOR /f %%i IN ('git rev-parse --abbrev-ref HEAD') DO @SET BRANCH=%%i
566
567SET FOOTER=Generated on %DATE% %TIME% from revision %REV% on branch '%BRANCH%'
568
569SET OUTDIR=..\report-%BRANCH%-%SHREV%
570
571mkdir %OUTDIR%
572
573%BOOSTDEP% --list-modules &gt; %OUTDIR%\list-modules.txt
574
575%BOOSTDEP% --html-footer "%FOOTER%" --html --module-overview &gt; %OUTDIR%\module-overview.html
576%BOOSTDEP% --html-footer "%FOOTER%" --html --module-levels &gt; %OUTDIR%\module-levels.html
577%BOOSTDEP% --html-footer "%FOOTER%" --html --module-weights &gt; %OUTDIR%\module-weights.html
578
579FOR /f %%i IN (%OUTDIR%\list-modules.txt) DO %BOOSTDEP% --html-title "Dependency Report for %%i" --html-footer "%FOOTER%" --html --primary %%i --secondary %%i --reverse %%i &gt; %OUTDIR%%%i.html
580</pre>
581</div>
582</div>
583<div class="section">
584<div class="titlepage"><div><div><h2 class="title" style="clear: both">
585<a name="boostdep.reference"></a><a class="link" href="index.html#boostdep.reference" title="Reference">Reference</a>
586</h2></div></div></div>
587<div class="toc"><dl class="toc">
588<dt><span class="section"><a href="index.html#boostdep.reference.list_modules">--list-modules</a></span></dt>
589<dt><span class="section"><a href="index.html#boostdep.reference.list_buildable">--list-buildable</a></span></dt>
590<dt><span class="section"><a href="index.html#boostdep.reference.list_dependencies">--list-dependencies</a></span></dt>
591<dt><span class="section"><a href="index.html#boostdep.reference.list_exceptions">--list-exceptions</a></span></dt>
592<dt><span class="section"><a href="index.html#boostdep.reference.list_missing_headers">--list-missing-headers</a></span></dt>
593<dt><span class="section"><a href="index.html#boostdep.reference.list_buildable_dependencies">--list-buildable-dependencies</a></span></dt>
594<dt><span class="section"><a href="index.html#boostdep.reference.module_overview">--module-overview</a></span></dt>
595<dt><span class="section"><a href="index.html#boostdep.reference.module_levels">--module-levels</a></span></dt>
596<dt><span class="section"><a href="index.html#boostdep.reference.module_weights">--module-weights</a></span></dt>
597<dt><span class="section"><a href="index.html#boostdep.reference.primary">--primary</a></span></dt>
598<dt><span class="section"><a href="index.html#boostdep.reference.secondary">--secondary</a></span></dt>
599<dt><span class="section"><a href="index.html#boostdep.reference.reverse">--reverse</a></span></dt>
600<dt><span class="section"><a href="index.html#boostdep.reference.subset">--subset</a></span></dt>
601<dt><span class="section"><a href="index.html#boostdep.reference.header">--header</a></span></dt>
602<dt><span class="section"><a href="index.html#boostdep.reference.test">--test</a></span></dt>
603<dt><span class="section"><a href="index.html#boostdep.reference.cmake">--cmake</a></span></dt>
604<dt><span class="section"><a href="index.html#boostdep.reference.pkgconfig">--pkgconfig</a></span></dt>
605<dt><span class="section"><a href="index.html#boostdep.reference.subset_for">--subset-for</a></span></dt>
606<dt><span class="section"><a href="index.html#boostdep.reference.boost_root">--boost-root</a></span></dt>
607<dt><span class="section"><a href="index.html#boostdep.reference.track_sources">--track-sources</a></span></dt>
608<dt><span class="section"><a href="index.html#boostdep.reference.track_tests">--track-tests</a></span></dt>
609<dt><span class="section"><a href="index.html#boostdep.reference.html_title">--html-title</a></span></dt>
610<dt><span class="section"><a href="index.html#boostdep.reference.html_footer">--html-footer</a></span></dt>
611<dt><span class="section"><a href="index.html#boostdep.reference.html_stylesheet">--html-stylesheet</a></span></dt>
612<dt><span class="section"><a href="index.html#boostdep.reference.html_prefix">--html-prefix</a></span></dt>
613<dt><span class="section"><a href="index.html#boostdep.reference.html">--html</a></span></dt>
614</dl></div>
615<div class="section">
616<div class="titlepage"><div><div><h3 class="title">
617<a name="boostdep.reference.list_modules"></a><a class="link" href="index.html#boostdep.reference.list_modules" title="--list-modules">--list-modules</a>
618</h3></div></div></div>
619<p>
620        <code class="literal">boostdep --list-modules</code> prints the module list. <span class="emphasis"><em>Boostdep</em></span>
621        considers a subdirectory of <code class="literal">libs</code> a module if it contains
622        an <code class="literal">include</code> subdirectory.
623      </p>
624<p>
625        This command is typically used from scripts which then use the list to execute
626        a command for each module.
627      </p>
628</div>
629<div class="section">
630<div class="titlepage"><div><div><h3 class="title">
631<a name="boostdep.reference.list_buildable"></a><a class="link" href="index.html#boostdep.reference.list_buildable" title="--list-buildable">--list-buildable</a>
632</h3></div></div></div>
633<p>
634        <code class="literal">boostdep --list-buildable</code> prints a list of the modules
635        that require building. <span class="emphasis"><em>Boostdep</em></span> considers a module to
636        require building if it contains subdirectories named <code class="literal">build</code>
637        and <code class="literal">src</code>.
638      </p>
639<p>
640        This command is typically used from scripts.
641      </p>
642</div>
643<div class="section">
644<div class="titlepage"><div><div><h3 class="title">
645<a name="boostdep.reference.list_dependencies"></a><a class="link" href="index.html#boostdep.reference.list_dependencies" title="--list-dependencies">--list-dependencies</a>
646</h3></div></div></div>
647<p>
648        <code class="literal">boostdep --list-dependencies</code> prints a module list in which
649        each line is of the form
650      </p>
651<pre class="programlisting">module -&gt; dependency1 dependency2 <span class="emphasis"><em>...</em></span>
652</pre>
653<p>
654        By default, only the <code class="literal">include</code> directory is scanned for
655        <code class="computeroutput"><span class="preprocessor">#include</span></code> directives. If
656        the option <code class="literal">--track-sources</code> is given, the <code class="literal">src</code>
657        directory is also scanned. If the option <code class="literal">--track-tests</code>
658        is given, the <code class="literal">test</code> directory is also scanned.
659      </p>
660<p>
661        This command is typically used from scripts. The output is virtually identical
662        to <code class="literal">--module-overview</code> in plain text, but slightly more
663        machine-friendly.
664      </p>
665</div>
666<div class="section">
667<div class="titlepage"><div><div><h3 class="title">
668<a name="boostdep.reference.list_exceptions"></a><a class="link" href="index.html#boostdep.reference.list_exceptions" title="--list-exceptions">--list-exceptions</a>
669</h3></div></div></div>
670<p>
671        <code class="literal">boostdep --list-exceptions</code> prints a list of the headers
672        that are not contained into the include directory ot their corresponding
673        module.
674      </p>
675</div>
676<div class="section">
677<div class="titlepage"><div><div><h3 class="title">
678<a name="boostdep.reference.list_missing_headers"></a><a class="link" href="index.html#boostdep.reference.list_missing_headers" title="--list-missing-headers">--list-missing-headers</a>
679</h3></div></div></div>
680<p>
681        <code class="literal">boostdep --list-missing-headers</code> prints a list of the headers
682        that are included by another header, but are missing.
683      </p>
684</div>
685<div class="section">
686<div class="titlepage"><div><div><h3 class="title">
687<a name="boostdep.reference.list_buildable_dependencies"></a><a class="link" href="index.html#boostdep.reference.list_buildable_dependencies" title="--list-buildable-dependencies">--list-buildable-dependencies</a>
688</h3></div></div></div>
689<p>
690        <code class="literal">boostdep --list-buildable-dependencies</code> prints a list of
691        the dependencies of the buildable libraries, in the form
692      </p>
693<pre class="programlisting">module = dependency1 dependency2 <span class="emphasis"><em>...</em></span> ;
694</pre>
695<p>
696        This is valid Boost.Build syntax, so the output can be used as a Boost.Build
697        module. All header-only libraries are considered one library named <code class="literal">headers</code>.
698      </p>
699</div>
700<div class="section">
701<div class="titlepage"><div><div><h3 class="title">
702<a name="boostdep.reference.module_overview"></a><a class="link" href="index.html#boostdep.reference.module_overview" title="--module-overview">--module-overview</a>
703</h3></div></div></div>
704<p>
705        <code class="literal">boostdep --module-overview</code> generates a module overview,
706        in plain text or HTML. The plain text output is of the form
707      </p>
708<pre class="programlisting">Module Overview:
709
710accumulators -&gt; array assert circular_buffer concept_check config core fusion iterator mpl numeric~conversion numeric~ublas parameter preprocessor range static_assert throw_exception tuple type_traits typeof
711algorithm -&gt; array assert bind concept_check config core exception function iterator mpl range regex static_assert tuple type_traits unordered
712align -&gt; assert config core static_assert throw_exception
713</pre>
714<p>
715        whereas the HTML output is similar to
716      </p>
717<div class="blockquote"><blockquote class="blockquote">
718<p>
719          <span class="bold"><strong>Module Overview</strong></span>
720        </p>
721<p>
722          <span class="bold"><strong><span class="emphasis"><em>accumulators</em></span></strong></span>
723        </p>
724<p>
725          &#8674; array assert circular_buffer concept_check config core fusion
726          iterator mpl numeric~conversion numeric~ublas parameter preprocessor range
727          static_assert throw_exception tuple type_traits typeof
728        </p>
729</blockquote></div>
730<p>
731        where <span class="emphasis"><em>accumulators</em></span> is a link to <code class="literal">accumulators.html</code>.
732      </p>
733<p>
734        As before, if <code class="literal">--track-sources</code> is given, the <code class="literal">src</code>
735        subdirectory is scanned for <code class="computeroutput"><span class="preprocessor">#include</span></code>
736        directives.
737      </p>
738<p>
739        HTML output is enabled by the <code class="literal">--html</code> option. The <code class="literal">--html-title</code>
740        and <code class="literal">--html-footer</code> options set the HTML <code class="literal">&lt;title&gt;</code>
741        and the page footer and need to precede <code class="literal">--html</code>, like in
742        the following example:
743      </p>
744<pre class="programlisting">dist/bin/boostdep --html-title "Module Overview" --html-footer "Generated on 21.05.2015 20:53:11" --html --module-overview &gt; module-overview.html
745</pre>
746</div>
747<div class="section">
748<div class="titlepage"><div><div><h3 class="title">
749<a name="boostdep.reference.module_levels"></a><a class="link" href="index.html#boostdep.reference.module_levels" title="--module-levels">--module-levels</a>
750</h3></div></div></div>
751<p>
752        <code class="literal">boostdep --module-levels</code> generates a report that groups
753        modules by level. Levels are determined in such a way so that a module of
754        level <code class="literal">N</code> never depends on modules of levels greater than
755        <code class="literal">N</code>, and in the absence of cyclic dependencies, doesn't
756        depend on other modules of level <code class="literal">N</code>. It takes the same
757        options as <code class="literal">--module-overview</code>.
758      </p>
759<pre class="programlisting">dist/bin/boostdep --html-title "Module Levels" --html-footer "Generated on 21.05.2015 20:53:11" --html --module-levels &gt; module-levels.html
760</pre>
761</div>
762<div class="section">
763<div class="titlepage"><div><div><h3 class="title">
764<a name="boostdep.reference.module_weights"></a><a class="link" href="index.html#boostdep.reference.module_weights" title="--module-weights">--module-weights</a>
765</h3></div></div></div>
766<p>
767        <code class="literal">boostdep --module-weights</code> generates a report that lists
768        modules by weight. A module weight is the total number of its dependencies.
769        This includes the indirect dependencies.
770      </p>
771<p>
772        <code class="literal">--module-weights</code> takes the same options as <code class="literal">--module-overview</code>.
773      </p>
774<pre class="programlisting">dist/bin/boostdep --html-title "Module Weights" --html-footer "Generated on 21.05.2015 20:53:11" --html --module-weights &gt; module-weights.html
775</pre>
776</div>
777<div class="section">
778<div class="titlepage"><div><div><h3 class="title">
779<a name="boostdep.reference.primary"></a><a class="link" href="index.html#boostdep.reference.primary" title="--primary">--primary</a>
780</h3></div></div></div>
781<p>
782        <code class="literal">boostdep --primary <span class="emphasis"><em>module</em></span></code> lists the
783        primary (direct) dependencies of <span class="emphasis"><em>module</em></span>. It takes the
784        same options as <code class="literal">--module-overview</code>.
785      </p>
786<pre class="programlisting">dist/bin/boostdep --html-title "Primary Dependencies of filesystem" --html-footer "Generated on 21.05.2015 20:53:11" --html --primary filesystem &gt; filesystem-primary.html
787</pre>
788</div>
789<div class="section">
790<div class="titlepage"><div><div><h3 class="title">
791<a name="boostdep.reference.secondary"></a><a class="link" href="index.html#boostdep.reference.secondary" title="--secondary">--secondary</a>
792</h3></div></div></div>
793<p>
794        <code class="literal">boostdep --secondary <span class="emphasis"><em>module</em></span></code> lists
795        the secondary (indirect) dependencies of <span class="emphasis"><em>module</em></span>. It
796        takes the same options as <code class="literal">--module-overview</code>.
797      </p>
798<pre class="programlisting">dist/bin/boostdep --html-title "Secondary Dependencies of filesystem" --html-footer "Generated on 21.05.2015 20:53:11" --html --secondary filesystem &gt; filesystem-secondary.html
799</pre>
800<p>
801        You can combine <code class="literal">--primary</code> and <code class="literal">--secondary</code>
802        in one invocation.
803      </p>
804<pre class="programlisting">dist/bin/boostdep --html-title "Dependencies of filesystem" --html-footer "Generated on 21.05.2015 20:53:11" --html --primary filesystem --secondary filesystem &gt; filesystem.html
805</pre>
806</div>
807<div class="section">
808<div class="titlepage"><div><div><h3 class="title">
809<a name="boostdep.reference.reverse"></a><a class="link" href="index.html#boostdep.reference.reverse" title="--reverse">--reverse</a>
810</h3></div></div></div>
811<p>
812        <code class="literal">boostdep --reverse <span class="emphasis"><em>module</em></span></code> lists the
813        reverse dependencies of <span class="emphasis"><em>module</em></span>, that is, it lists which
814        modules depend on <span class="emphasis"><em>module</em></span>. It takes the same options
815        as <code class="literal">--module-overview</code>.
816      </p>
817<pre class="programlisting">dist/bin/boostdep --html-title "Reverse Dependencies of filesystem" --html-footer "Generated on 21.05.2015 20:53:11" --html --reverse filesystem &gt; filesystem-reverse.html
818</pre>
819<p>
820        You can combine <code class="literal">--reverse</code> with <code class="literal">--primary</code>
821        and <code class="literal">--secondary</code> for a complete module report.
822      </p>
823<pre class="programlisting">dist/bin/boostdep --html-title "Dependency Report for filesystem" --html-footer "Generated on 21.05.2015 20:53:11" --html --primary filesystem --secondary filesystem --reverse filesystem &gt; filesystem.html
824</pre>
825</div>
826<div class="section">
827<div class="titlepage"><div><div><h3 class="title">
828<a name="boostdep.reference.subset"></a><a class="link" href="index.html#boostdep.reference.subset" title="--subset">--subset</a>
829</h3></div></div></div>
830<p>
831        <code class="literal">boostdep --subset <span class="emphasis"><em>module</em></span></code> lists the
832        subset dependencies of <span class="emphasis"><em>module</em></span>, that is, it lists which
833        modules comprise the subset which <span class="emphasis"><em>module</em></span> requires in
834        order to be usable. The dependencies are determined by tracing the <code class="literal">#include</code>
835        directives starting from <span class="emphasis"><em>module</em></span>'s headers.
836      </p>
837<p>
838        The difference between using the modules reported by <code class="literal">--subset</code>
839        and those reported by the sum of <code class="literal">--primary</code> and <code class="literal">--secondary</code>
840        is that the former only guarantees that <span class="emphasis"><em>module</em></span> will
841        be usable, whereas the latter guarantees it for every module in the subset.
842      </p>
843<p>
844        <code class="literal">--subset</code> takes the same options as <code class="literal">--module-overview</code>.
845      </p>
846<pre class="programlisting">dist/bin/boostdep --html-title "Subset Dependencies of filesystem" --html-footer "Generated on 21.05.2015 20:53:11" --html --subset filesystem &gt; filesystem-subset.html
847</pre>
848<p>
849        You can combine <code class="literal">--subset</code> with the other module report
850        options.
851      </p>
852</div>
853<div class="section">
854<div class="titlepage"><div><div><h3 class="title">
855<a name="boostdep.reference.header"></a><a class="link" href="index.html#boostdep.reference.header" title="--header">--header</a>
856</h3></div></div></div>
857<p>
858        <code class="literal">boostdep --header <span class="emphasis"><em>header</em></span></code> creates
859        an inclusion report for <span class="emphasis"><em>header</em></span>. It takes the same options
860        as <code class="literal">--module-overview</code>.
861      </p>
862<pre class="programlisting">dist/bin/boostdep --html-title "Inclusion Report for &lt;boost/shared_ptr.hpp&gt;" --html-footer "Generated on 21.05.2015 20:53:11" --html --header boost/shared_ptr.hpp &gt; header-boost-shared_ptr.html
863</pre>
864</div>
865<div class="section">
866<div class="titlepage"><div><div><h3 class="title">
867<a name="boostdep.reference.test"></a><a class="link" href="index.html#boostdep.reference.test" title="--test">--test</a>
868</h3></div></div></div>
869<p>
870        <code class="literal">boostdep --test <span class="emphasis"><em>module</em></span></code> lists the
871        test dependencies of <span class="emphasis"><em>module</em></span>, that is, it lists which
872        modules need to be present so that the tests of <span class="emphasis"><em>module</em></span>
873        can be run.
874      </p>
875<pre class="programlisting">dist/bin/boostdep --test filesystem
876</pre>
877</div>
878<div class="section">
879<div class="titlepage"><div><div><h3 class="title">
880<a name="boostdep.reference.cmake"></a><a class="link" href="index.html#boostdep.reference.cmake" title="--cmake">--cmake</a>
881</h3></div></div></div>
882<p>
883        <code class="literal">boostdep --cmake <span class="emphasis"><em>module</em></span></code> generates
884        a <code class="literal">CMakeLists.txt</code> file for <span class="emphasis"><em>module</em></span>.
885      </p>
886</div>
887<div class="section">
888<div class="titlepage"><div><div><h3 class="title">
889<a name="boostdep.reference.pkgconfig"></a><a class="link" href="index.html#boostdep.reference.pkgconfig" title="--pkgconfig">--pkgconfig</a>
890</h3></div></div></div>
891<p>
892        <code class="literal">boostdep --pkgconfig <span class="emphasis"><em>module</em></span> <span class="emphasis"><em>version</em></span>
893        <span class="emphasis"><em>var</em></span>=<span class="emphasis"><em>value</em></span>...</code> outputs
894        a <code class="literal">pkg-config</code> <code class="literal">.pc</code> file for <span class="emphasis"><em>module</em></span>.
895      </p>
896<pre class="programlisting">dist/bin/boostdep --pkgconfig system 1.65.0 prefix=/usr/local includedir=${prefix}/include libdir=${prefix}/lib
897</pre>
898</div>
899<div class="section">
900<div class="titlepage"><div><div><h3 class="title">
901<a name="boostdep.reference.subset_for"></a><a class="link" href="index.html#boostdep.reference.subset_for" title="--subset-for">--subset-for</a>
902</h3></div></div></div>
903<p>
904        <code class="literal">boostdep --subset-for <span class="emphasis"><em>directory</em></span></code> scans
905        <span class="emphasis"><em>directory</em></span> for <code class="computeroutput"><span class="preprocessor">#include</span></code>
906        directives and lists which Boost modules are reachable through these <code class="computeroutput"><span class="preprocessor">#include</span></code>s.
907      </p>
908<p>
909        Its use is in determining what subset of Boost is needed by a user application
910        or library.
911      </p>
912<pre class="programlisting">dist/bin/boostdep --subset-for d:\my_app
913</pre>
914</div>
915<div class="section">
916<div class="titlepage"><div><div><h3 class="title">
917<a name="boostdep.reference.boost_root"></a><a class="link" href="index.html#boostdep.reference.boost_root" title="--boost-root">--boost-root</a>
918</h3></div></div></div>
919<p>
920        <code class="literal">--boost-root <span class="emphasis"><em>path-to-boost</em></span></code> instructs
921        <span class="emphasis"><em>Boostdep</em></span> to look for the Boost root directory at <span class="emphasis"><em>path-to-boost</em></span>.
922        If this option is not given, the current directory and its parents are searched
923        for the presence of a file named <code class="literal">Jamroot</code>. If one is found,
924        that directory is assumed to be the root. If not, the environment variable
925        <code class="literal">BOOST_ROOT</code> is assumed to contain the path to the Boost
926        root.
927      </p>
928</div>
929<div class="section">
930<div class="titlepage"><div><div><h3 class="title">
931<a name="boostdep.reference.track_sources"></a><a class="link" href="index.html#boostdep.reference.track_sources" title="--track-sources">--track-sources</a>
932</h3></div></div></div>
933<p>
934        The <code class="literal">--track-sources</code> option instructs <span class="emphasis"><em>Boostdep</em></span>
935        to scan the <code class="literal">src</code> library subdirectory for <code class="computeroutput"><span class="preprocessor">#include</span></code> directives. By default, only
936        the <code class="literal">include</code> subdirectory is scanned.
937      </p>
938</div>
939<div class="section">
940<div class="titlepage"><div><div><h3 class="title">
941<a name="boostdep.reference.track_tests"></a><a class="link" href="index.html#boostdep.reference.track_tests" title="--track-tests">--track-tests</a>
942</h3></div></div></div>
943<p>
944        The <code class="literal">--track-tests</code> option instructs <span class="emphasis"><em>Boostdep</em></span>
945        to scan the <code class="literal">test</code> library subdirectory for <code class="computeroutput"><span class="preprocessor">#include</span></code> directives. By default, only
946        the <code class="literal">include</code> subdirectory is scanned.
947      </p>
948</div>
949<div class="section">
950<div class="titlepage"><div><div><h3 class="title">
951<a name="boostdep.reference.html_title"></a><a class="link" href="index.html#boostdep.reference.html_title" title="--html-title">--html-title</a>
952</h3></div></div></div>
953<p>
954        <code class="literal">--html-title <span class="emphasis"><em>title</em></span></code> sets the contents
955        of the HTML <code class="literal">&lt;title&gt;</code> tag. It must precede <code class="literal">--html</code>
956        to have an effect.
957      </p>
958</div>
959<div class="section">
960<div class="titlepage"><div><div><h3 class="title">
961<a name="boostdep.reference.html_footer"></a><a class="link" href="index.html#boostdep.reference.html_footer" title="--html-footer">--html-footer</a>
962</h3></div></div></div>
963<p>
964        <code class="literal">--html-footer <span class="emphasis"><em>footer</em></span></code> sets the HTML
965        page footer text. It has no effect if <code class="literal">--html</code> is not given.
966      </p>
967</div>
968<div class="section">
969<div class="titlepage"><div><div><h3 class="title">
970<a name="boostdep.reference.html_stylesheet"></a><a class="link" href="index.html#boostdep.reference.html_stylesheet" title="--html-stylesheet">--html-stylesheet</a>
971</h3></div></div></div>
972<p>
973        <code class="literal">--html-stylesheet <span class="emphasis"><em>stylesheet</em></span></code> sets
974        the HTML stylesheet URL. It has no effect if <code class="literal">--html</code> is
975        not given.
976      </p>
977</div>
978<div class="section">
979<div class="titlepage"><div><div><h3 class="title">
980<a name="boostdep.reference.html_prefix"></a><a class="link" href="index.html#boostdep.reference.html_prefix" title="--html-prefix">--html-prefix</a>
981</h3></div></div></div>
982<p>
983        <code class="literal">--html-prefix <span class="emphasis"><em>prefix</em></span></code> sets the HTML
984        prefix; the prefix is output immediately after the <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">body</span><span class="special">&gt;</span></code>
985        tag. It has no effect if <code class="literal">--html</code> is not given.
986      </p>
987</div>
988<div class="section">
989<div class="titlepage"><div><div><h3 class="title">
990<a name="boostdep.reference.html"></a><a class="link" href="index.html#boostdep.reference.html" title="--html">--html</a>
991</h3></div></div></div>
992<p>
993        <code class="literal">--html</code> switches to HTML output mode (the default is plain
994        text). It must precede the commands that generate output.
995      </p>
996</div>
997</div>
998</div>
999<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
1000<td align="left"><p><small>Last revised: January 14, 2020 at 17:59:02 GMT</small></p></td>
1001<td align="right"><div class="copyright-footer"></div></td>
1002</tr></table>
1003<hr>
1004<div class="spirit-nav"></div>
1005</body>
1006</html>
1007