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 © 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"><</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">></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 <file>..." 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] <module> 335 boostdep [options] --secondary <module> 336 boostdep [options] --reverse <module> 337 boostdep [options] --subset <module> 338 boostdep [options] [--header] <header> 339 boostdep --test <module> 340 boostdep --cmake <module> 341 boostdep --pkgconfig <module> <version> [<var>=<value>] [<var>=<value>]... 342 boostdep [options] --subset-for <directory> 343 344 [options]: [--boost-root <path-to-boost>] 345 [--[no-]track-sources] [--[no-]track-tests] 346 [--html-title <title>] [--html-footer <footer>] 347 [--html-stylesheet <stylesheet>] [--html-prefix <prefix>] 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 <boost/assert.hpp> 381 from <boost/filesystem/operations.hpp> 382 from <boost/filesystem/path_traits.hpp> 383 384config: 385 <boost/config.hpp> 386 from <boost/filesystem/config.hpp> 387 from <boost/filesystem/convenience.hpp> 388 from <boost/filesystem/fstream.hpp> 389 from <boost/filesystem/operations.hpp> 390 from <boost/filesystem/path.hpp> 391 from <boost/filesystem/path_traits.hpp> 392 <span class="emphasis"><em>...</em></span> 393 394functional: 395 <boost/functional/hash_fwd.hpp> 396 from <boost/filesystem/path.hpp> 397 398io: 399 <boost/io/detail/quoted_manip.hpp> 400 from <boost/filesystem/path.hpp> 401 402iterator: 403 <boost/iterator/iterator_facade.hpp> 404 from <boost/filesystem/path.hpp> 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"><boost/assert.hpp></code> is the file that 410 is being included, and <code class="literal">from <boost/filesystem/config.hpp></code> 411 shows where <code class="literal"><boost/assert.hpp></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 <boost/filesystem.hpp> (in module filesystem): 438 439 from spirit: 440 <boost/spirit/home/x3/support/utility/testing.hpp> 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"><boost/spirit/home/x3/support/utility/testing.hpp></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 <boost/filesystem/operations.hpp> 467 from <boost/graph/distributed/adjlist/serialization.hpp> 468 <boost/filesystem/path.hpp> 469 from <boost/graph/distributed/adjlist/serialization.hpp> 470 471log: 472 <boost/filesystem/config.hpp> 473 from <boost/log/detail/config.hpp> 474 <boost/filesystem/path.hpp> 475 from <boost/log/sinks/event_log_backend.hpp> 476 from <boost/log/sinks/text_file_backend.hpp> 477 from <boost/log/sinks/text_multifile_backend.hpp> 478 479spirit: 480 <boost/filesystem.hpp> 481 from <boost/spirit/home/x3/support/utility/testing.hpp> 482 <boost/filesystem/fstream.hpp> 483 from <boost/spirit/home/x3/support/utility/testing.hpp> 484 <boost/filesystem/path.hpp> 485 from <boost/spirit/home/x3/support/utility/error_reporting.hpp> 486 487wave: 488 <boost/filesystem/operations.hpp> 489 from <boost/wave/util/cpp_include_paths.hpp> 490 from <boost/wave/util/cpp_iterator.hpp> 491 from <boost/wave/util/filesystem_compatibility.hpp> 492 <boost/filesystem/path.hpp> 493 from <boost/wave/cpp_context.hpp> 494 from <boost/wave/util/cpp_include_paths.hpp> 495 from <boost/wave/util/cpp_iterator.hpp> 496 from <boost/wave/util/cpp_macromap.hpp> 497 from <boost/wave/util/filesystem_compatibility.hpp> 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 > 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 > 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 > 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> > <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 > 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 > %OUTDIR%\list-modules.txt 574 575%BOOSTDEP% --html-footer "%FOOTER%" --html --module-overview > %OUTDIR%\module-overview.html 576%BOOSTDEP% --html-footer "%FOOTER%" --html --module-levels > %OUTDIR%\module-levels.html 577%BOOSTDEP% --html-footer "%FOOTER%" --html --module-weights > %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 > %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 -> 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 -> 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 -> array assert bind concept_check config core exception function iterator mpl range regex static_assert tuple type_traits unordered 712align -> 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 ⇢ 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"><title></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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 > 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 <boost/shared_ptr.hpp>" --html-footer "Generated on 21.05.2015 20:53:11" --html --header boost/shared_ptr.hpp > 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"><title></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"><</span><span class="identifier">body</span><span class="special">></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