summaryrefslogtreecommitdiff
path: root/doc/html/bbv2
diff options
context:
space:
mode:
authorDongHun Kwak <dh0128.kwak@samsung.com>2017-09-13 11:05:34 +0900
committerDongHun Kwak <dh0128.kwak@samsung.com>2017-09-13 11:06:28 +0900
commit34bd32e225e2a8a94104489b31c42e5801cc1f4a (patch)
treed021b579a0c190354819974e1eaf0baa54b551f3 /doc/html/bbv2
parentf763a99a501650eff2c60288aa6f10ef916d769e (diff)
downloadboost-34bd32e225e2a8a94104489b31c42e5801cc1f4a.tar.gz
boost-34bd32e225e2a8a94104489b31c42e5801cc1f4a.tar.bz2
boost-34bd32e225e2a8a94104489b31c42e5801cc1f4a.zip
Imported Upstream version 1.63.0upstream/1.63.0
Change-Id: Iac85556a04b7e58d63ba636dedb0986e3555714a Signed-off-by: DongHun Kwak <dh0128.kwak@samsung.com>
Diffstat (limited to 'doc/html/bbv2')
-rw-r--r--doc/html/bbv2/extender.html20
-rw-r--r--doc/html/bbv2/faq.html6
-rw-r--r--doc/html/bbv2/overview.html62
-rw-r--r--doc/html/bbv2/reference.html267
-rw-r--r--doc/html/bbv2/tasks.html36
-rw-r--r--doc/html/bbv2/tutorial.html26
6 files changed, 212 insertions, 205 deletions
diff --git a/doc/html/bbv2/extender.html b/doc/html/bbv2/extender.html
index 6d52fba909..84c19751a0 100644
--- a/doc/html/bbv2/extender.html
+++ b/doc/html/bbv2/extender.html
@@ -6,7 +6,7 @@
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
-<link rel="up" href="../bbv2.html" title="Chapter&#160;45.&#160;Boost.Build User Manual">
+<link rel="up" href="../bbv2.html" title="Chapter&#160;48.&#160;Boost.Build User Manual">
<link rel="prev" href="reference.html" title="Reference">
<link rel="next" href="faq.html" title="Frequently Asked Questions">
</head>
@@ -95,7 +95,7 @@
and can be called with specific properties to generate concrete
targets. At the code level it is represented by an instance of
class derived from <a class="link" href="reference.html#bbv2.reference.class.abstract-target" title="Class abstract-target">abstract-target</a>.
- <a href="#ftn.idm45927670791344" class="footnote" name="idm45927670791344"><sup class="footnote">[14]</sup></a>
+ <a href="#ftn.idp725557936" class="footnote" name="idp725557936"><sup class="footnote">[14]</sup></a>
</p>
<p>The <a class="link" href="reference.html#bbv2.reference.class.abstract-target.generate">generate</a>
method takes the build properties
@@ -187,7 +187,7 @@ local t = [ new file-target $(name) : CPP : $(project) : $(a) ] ;
returning targets you should pass them via the <code class="computeroutput">virtual-target.register</code>
function, besides allowing Boost.Build to track which virtual targets
got created for each metatarget, this will also replace targets with previously created identical
- ones, as necessary.<a href="#ftn.idm45927670751184" class="footnote" name="idm45927670751184"><sup class="footnote">[15]</sup></a>
+ ones, as necessary.<a href="#ftn.idp725598032" class="footnote" name="idp725598032"><sup class="footnote">[15]</sup></a>
Here are a couple of examples:
</p>
<pre class="programlisting">
@@ -209,7 +209,7 @@ return [ sequence.transform virtual-target.register : $(targets) ] ;
<p>In practice, most files have specific types, and most tools
consume and produce files of specific type. To take advantage of this
fact, Boost.Build defines concept of target type and
- <a class="indexterm" name="idm45927670744912"></a>
+ <a class="indexterm" name="idp725604304"></a>
<em class="firstterm">generators</em>, and has special metatarget class
<a class="link" href="reference.html#bbv2.reference.class.typed-target" title="Class typed-target">typed-target</a>. Target type is merely an
identifier. It is associated with a set of file extensions that
@@ -494,7 +494,7 @@ generators.register-composing mex.mex : CPP LIB : MEX ;
</p>
<p>(Need a note about UNIX)</p>
<h4>
-<a name="idm45927670671760"></a>Custom generator classes</h4>
+<a name="idp725677520"></a>Custom generator classes</h4>
<p>The standard generators allows you to specify source and target
types, an action, and a set of flags. If you need anything more complex,
@@ -702,7 +702,7 @@ actions inline-file
<p>
</p>
<h4>
-<a name="idm45927670640144"></a>Steps for adding a feauture</h4>
+<a name="idp725709072"></a>Steps for adding a feauture</h4>
<p>Adding a feature requires three steps:
</p>
@@ -743,7 +743,7 @@ actions inline-file
<p>
</p>
<h4>
-<a name="idm45927670629120"></a>Another example</h4>
+<a name="idp725720096"></a>Another example</h4>
<p>Here's another example.
Let's see how we can make a feature that refers to a target. For example,
when linking dynamic libraries on Windows, one sometimes needs to
@@ -824,7 +824,7 @@ rule link
</li>
</ol></div>
<h4>
-<a name="idm45927670616672"></a>Variants and composite features.</h4>
+<a name="idp725732544"></a>Variants and composite features.</h4>
<p>Sometimes you want to create a shortcut for some set of
features. For example, <code class="computeroutput">release</code> is a value of
<code class="computeroutput">&lt;variant&gt;</code> and is a shortcut for a set of features.
@@ -1022,9 +1022,9 @@ using yfc ;
</div>
<div class="footnotes">
<br><hr style="width:100; text-align:left;margin-left: 0">
-<div id="ftn.idm45927670791344" class="footnote"><p><a href="#idm45927670791344" class="para"><sup class="para">[14] </sup></a>This name is historic, and will be eventuall changed to
+<div id="ftn.idp725557936" class="footnote"><p><a href="#idp725557936" class="para"><sup class="para">[14] </sup></a>This name is historic, and will be eventuall changed to
<code class="computeroutput">metatarget</code></p></div>
-<div id="ftn.idm45927670751184" class="footnote"><p><a href="#idm45927670751184" class="para"><sup class="para">[15] </sup></a>This create-then-register pattern is caused by limitations
+<div id="ftn.idp725598032" class="footnote"><p><a href="#idp725598032" class="para"><sup class="para">[15] </sup></a>This create-then-register pattern is caused by limitations
of the Boost.Jam language. Python port is likely to never create duplicate targets.</p></div>
</div>
</div>
diff --git a/doc/html/bbv2/faq.html b/doc/html/bbv2/faq.html
index b708e746f5..0a86bd632d 100644
--- a/doc/html/bbv2/faq.html
+++ b/doc/html/bbv2/faq.html
@@ -6,9 +6,9 @@
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
-<link rel="up" href="../bbv2.html" title="Chapter&#160;45.&#160;Boost.Build User Manual">
+<link rel="up" href="../bbv2.html" title="Chapter&#160;48.&#160;Boost.Build User Manual">
<link rel="prev" href="extender.html" title="Extender Manual">
-<link rel="next" href="../jam.html" title="Chapter&#160;46.&#160;Boost.Jam : 3.1.19">
+<link rel="next" href="../jam.html" title="Chapter&#160;49.&#160;Boost.Jam : 3.1.19">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -486,7 +486,7 @@ exe hello : hello.cpp /site-config//zlib ;
external libraries it becomes problematic to remember which libraries are
header only, and which ones you have to link to. However, with Boost.Build
a header-only library can be declared as Boost.Build target and all
- dependents can use such library without having to remeber whether it is a
+ dependents can use such library without having to remember whether it is a
header-only library or not.
</p>
<p>
diff --git a/doc/html/bbv2/overview.html b/doc/html/bbv2/overview.html
index 0ccd97f2c2..4dd78e3295 100644
--- a/doc/html/bbv2/overview.html
+++ b/doc/html/bbv2/overview.html
@@ -6,7 +6,7 @@
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
-<link rel="up" href="../bbv2.html" title="Chapter&#160;45.&#160;Boost.Build User Manual">
+<link rel="up" href="../bbv2.html" title="Chapter&#160;48.&#160;Boost.Build User Manual">
<link rel="prev" href="tutorial.html" title="Tutorial">
<link rel="next" href="tasks.html" title="Common tasks">
</head>
@@ -121,7 +121,7 @@ a.o: a.c
add_program ("a", "a.c")
</pre>
<p>
- This is a function call that creates the targets necessary to create a executable file
+ This is a function call that creates the targets necessary to create an executable file
from the source file <code class="filename">a.c</code>. Depending on configured properties,
different command lines may be used. However, <code class="computeroutput">add_program</code> is higher-level,
but rather thin level. All targets are created immediately when the build description
@@ -130,8 +130,8 @@ add_program ("a", "a.c")
</p>
<p>
In order to support true multivariant builds, Boost.Build introduces the concept of a
- <a class="indexterm" name="idm45927673204256"></a>
- <a class="indexterm" name="idm45927673202896"></a>
+ <a class="indexterm" name="idp723139760"></a>
+ <a class="indexterm" name="idp723141120"></a>
<em class="firstterm">metatarget</em>&#8212;an object that is created when the build description
is parsed and can be called later with specific build properties to generate
actual targets.
@@ -158,7 +158,7 @@ b2 toolset=gcc toolset=msvc
</p>
<p>
Another key concept is
- <a class="indexterm" name="idm45927673196544"></a>
+ <a class="indexterm" name="idp723147472"></a>
<em class="firstterm">build property</em>. A build property is a variable
that affects the build process. It can be specified on the command line, and is
passed when calling a metatarget. While all build tools have a similar mechanism,
@@ -166,7 +166,7 @@ b2 toolset=gcc toolset=msvc
and providing a large set of properties with portable semantics.
</p>
<p>
- The final concept is <a class="indexterm" name="idm45927673194192"></a>
+ The final concept is <a class="indexterm" name="idp723149824"></a>
<em class="firstterm">property propagation</em>. Boost.Build does not require that every
metatarget is called with the same properties. Instead, the
"top-level" metatargets are called with the properties specified on the command line.
@@ -191,7 +191,7 @@ b2 toolset=gcc toolset=msvc
<p>
<a class="link" href="../">Boost.Jam</a> has an interpreted, procedural
language. On the lowest level, a <a class="link" href="../">Boost.Jam
- </a> program consists of variables and <a class="indexterm" name="idm45927673184928"></a> <em class="firstterm">rules</em> (the Jam term for
+ </a> program consists of variables and <a class="indexterm" name="idp723159216"></a> <em class="firstterm">rules</em> (the Jam term for
functions). They are grouped into modules&#8212;there is one global
module and a number of named modules. Besides that, a <a class="link" href="../">Boost.Jam</a> program contains classes and class
instances.
@@ -426,7 +426,7 @@ actions create-file-from-another
are searched.
</p>
<div class="table">
-<a name="bbv2.reference.init.config"></a><p class="title"><b>Table&#160;45.1.&#160;Search paths for configuration files</b></p>
+<a name="bbv2.reference.init.config"></a><p class="title"><b>Table&#160;48.1.&#160;Search paths for configuration files</b></p>
<div class="table-contents"><table class="table" summary="Search paths for configuration files">
<colgroup>
<col>
@@ -664,7 +664,7 @@ b2 toolset=gcc variant=debug optimization=space
<dd>
<p>Changes the build directories for all project roots being built. When
this option is specified, all Jamroot files must declare a project name.
- The build directory for the project root will be computed by concatanating
+ The build directory for the project root will be computed by concatenating
the value of the <code class="option">--build-dir</code> option, the project name
specified in Jamroot, and the build dir specified in Jamroot
(or <code class="literal">bin</code>, if none is specified).
@@ -712,13 +712,13 @@ b2 toolset=gcc variant=debug optimization=space
<dd><p>Suppress all informational messages.</p></dd>
<dt><span class="term"><code class="option">-d <em class="replaceable"><code>N</code></em></code></span></dt>
<dd>
-<p>Enable cummulative debugging levels from 1 to n. Values are:
+<p>Enable cumulative debugging levels from 1 to n. Values are:
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">Show the actions taken for building targets, as they are executed (the default).</li>
<li class="listitem">Show "quiet" actions and display all action text, as they are executed.</li>
<li class="listitem">Show dependency analysis, and target/source timestamps/paths.</li>
-<li class="listitem">Show arguments and timming of shell invocations.</li>
+<li class="listitem">Show arguments and timing of shell invocations.</li>
<li class="listitem">Show rule invocations and variable expansions.</li>
<li class="listitem">Show directory/header file/archive scans, and attempts at binding to targets.</li>
<li class="listitem">Show variable settings.</li>
@@ -754,7 +754,7 @@ b2 toolset=gcc variant=debug optimization=space
The complete list of features can be found in <a class="xref" href="reference.html#bbv2.overview.builtins.features" title="Builtin features">the section called &#8220;Builtin features&#8221;</a>.
The most common features are summarized below.</p>
<div class="table">
-<a name="idm45927673004960"></a><p class="title"><b>Table&#160;45.2.&#160;</b></p>
+<a name="idp723339264"></a><p class="title"><b>Table&#160;48.2.&#160;</b></p>
<div class="table-contents"><table class="table">
<colgroup>
<col>
@@ -873,11 +873,11 @@ b2 include=static,shared
<div class="titlepage"><div><div><h3 class="title">
<a name="bbv2.overview.targets"></a>Declaring Targets</h3></div></div></div>
<div class="toc"><dl class="toc">
-<dt><span class="section"><a href="overview.html#idm45927672947984">Name</a></span></dt>
-<dt><span class="section"><a href="overview.html#idm45927672942256">Sources</a></span></dt>
+<dt><span class="section"><a href="overview.html#idp723396368">Name</a></span></dt>
+<dt><span class="section"><a href="overview.html#idp723402096">Sources</a></span></dt>
<dt><span class="section"><a href="overview.html#bbv2.overview.targets.requirements">Requirements</a></span></dt>
-<dt><span class="section"><a href="overview.html#idm45927672905984">Default Build</a></span></dt>
-<dt><span class="section"><a href="overview.html#idm45927672903168">Additional Information</a></span></dt>
+<dt><span class="section"><a href="overview.html#idp723438352">Default Build</a></span></dt>
+<dt><span class="section"><a href="overview.html#idp723441168">Additional Information</a></span></dt>
</dl></div>
<p><a name="bbv2.overview.targets.main"></a>
A <em class="firstterm">Main target</em> is a user-defined named
@@ -886,9 +886,9 @@ b2 include=static,shared
target rules described in <a class="xref" href="reference.html#bbv2.reference.rules" title="Builtin rules">the section called &#8220;Builtin rules&#8221;</a>. The user can also declare
custom main target rules as shown in <a class="xref" href="extender.html#bbv2.extending.rules" title="Main target rules">the section called &#8220;Main target rules&#8221;</a>.
</p>
-<a class="indexterm" name="idm45927672964656"></a><p>Most main target rules in Boost.Build have the same common
+<a class="indexterm" name="idp723379696"></a><p>Most main target rules in Boost.Build have the same common
signature:</p>
-<a class="indexterm" name="idm45927672963008"></a><a name="bbv2.main-target-rule-syntax"></a><pre class="programlisting">
+<a class="indexterm" name="idp723381344"></a><a name="bbv2.main-target-rule-syntax"></a><pre class="programlisting">
rule <em class="replaceable"><code>rule-name</code></em> (
main-target-name :
sources + :
@@ -936,7 +936,7 @@ rule <em class="replaceable"><code>rule-name</code></em> (
</p>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idm45927672947984"></a>Name</h4></div></div></div>
+<a name="idp723396368"></a>Name</h4></div></div></div>
<p>The name of main target has two purposes. First, it's used to refer to this target from
other targets and from command line. Second, it's used to compute the names of the generated files.
Typically, filenames are obtained from main target name by appending system-dependent suffixes and
@@ -956,7 +956,7 @@ obj test.debug : test.cpp : &lt;variant&gt;debug ;
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idm45927672942256"></a>Sources</h4></div></div></div>
+<a name="idp723402096"></a>Sources</h4></div></div></div>
<p>The list of sources specifies what should be processed to
get the resulting targets. Most of the time, it's just a list of
files. Sometimes, you'll want to automatically construct the
@@ -1003,7 +1003,7 @@ exe c : c.cpp /boost/program_options//program_options ;
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.overview.targets.requirements"></a>Requirements</h4></div></div></div>
-<a class="indexterm" name="idm45927672930480"></a><p>Requirements are the properties that should always be present when
+<a class="indexterm" name="idp723413744"></a><p>Requirements are the properties that should always be present when
building a target. Typically, they are includes and defines:
</p>
<pre class="programlisting">
@@ -1022,7 +1022,7 @@ obj main : main.cpp : &lt;optimization&gt;off ;
<p>
</p>
<p><a name="bbv2.overview.targets.requirements.conditional"></a>
- <a class="indexterm" name="idm45927672925792"></a>
+ <a class="indexterm" name="idp723418480"></a>
Sometimes, particular relationships need to be maintained
among a target's build properties. This can be achieved with
<em class="firstterm">conditional
@@ -1054,7 +1054,7 @@ lib network : network.cpp
<p>
</p>
<p><a name="bbv2.overview.targets.requirements.indirect"></a>
- <a class="indexterm" name="idm45927672916416"></a>
+ <a class="indexterm" name="idp723427920"></a>
A more powerful variant of conditional requirements
is <em class="firstterm">indirect conditional requirements</em>.
You can provide a rule that will be called with the current build properties and can compute additional properties
@@ -1111,7 +1111,7 @@ exe test3 : test3.cpp : -&lt;threading&gt;multi ;
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idm45927672905984"></a>Default Build</h4></div></div></div>
+<a name="idp723438352"></a>Default Build</h4></div></div></div>
<p>The <code class="varname">default-build</code> parameter
is a set of properties to be used if the build request does
not otherwise specify a value for features in the set. For example:
@@ -1128,7 +1128,7 @@ exe hello : hello.cpp : : &lt;threading&gt;multi ;
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idm45927672903168"></a>Additional Information</h4></div></div></div>
+<a name="idp723441168"></a>Additional Information</h4></div></div></div>
<p>
The ways a target is built can be so different that
describing them using conditional requirements would be
@@ -1221,7 +1221,7 @@ project tennis
</p>
<div class="table">
-<a name="idm45927672880608"></a><p class="title"><b>Table&#160;45.3.&#160;</b></p>
+<a name="idp723463728"></a><p class="title"><b>Table&#160;48.3.&#160;</b></p>
<div class="table-contents"><table class="table" summary="">
<colgroup>
<col>
@@ -1322,8 +1322,8 @@ project tennis
<a name="bbv2.overview.build_process"></a>The Build Process</h3></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="overview.html#bbv2.overview.build_request">Build Request</a></span></dt>
-<dt><span class="section"><a href="overview.html#idm45927672844704">Building a main target</a></span></dt>
-<dt><span class="section"><a href="overview.html#idm45927672832128">Building a Project</a></span></dt>
+<dt><span class="section"><a href="overview.html#idp723499696">Building a main target</a></span></dt>
+<dt><span class="section"><a href="overview.html#idp723512176">Building a Project</a></span></dt>
</dl></div>
<p>When you've described your targets, you want Boost.Build to run the
right tools and create the needed targets.
@@ -1380,7 +1380,7 @@ b2 app1 lib1//lib1 gcc debug optimization=full
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idm45927672844704"></a>Building a main target</h4></div></div></div>
+<a name="idp723499696"></a>Building a main target</h4></div></div></div>
<p>When you request, directly or indirectly, a build of a main target
with specific requirements, the following steps are done. Some brief
explanation is provided, and more details are given in <a class="xref" href="reference.html#bbv2.reference.buildprocess" title="Build process">the section called &#8220;Build process&#8221;</a>.
@@ -1392,7 +1392,7 @@ b2 app1 lib1//lib1 gcc debug optimization=full
<li class="listitem"><p>Selecting the main target alternative to use. For
each alternative we look how many properties are present both in
alternative's requirements, and in build request. The
- alternative with large number of matching properties is selected.
+ alternative with largest number of matching properties is selected.
</p></li>
<li class="listitem"><p>Determining "common" properties.
@@ -1440,7 +1440,7 @@ b2 app1 lib1//lib1 gcc debug optimization=full
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idm45927672832128"></a>Building a Project</h4></div></div></div>
+<a name="idp723512176"></a>Building a Project</h4></div></div></div>
<p>Often, a user builds a complete project, not just one main
target. In fact, invoking <span class="command"><strong>b2</strong></span> without
arguments
diff --git a/doc/html/bbv2/reference.html b/doc/html/bbv2/reference.html
index 3cdf3fcd3c..ca15a434f5 100644
--- a/doc/html/bbv2/reference.html
+++ b/doc/html/bbv2/reference.html
@@ -6,7 +6,7 @@
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
-<link rel="up" href="../bbv2.html" title="Chapter&#160;45.&#160;Boost.Build User Manual">
+<link rel="up" href="../bbv2.html" title="Chapter&#160;48.&#160;Boost.Build User Manual">
<link rel="prev" href="tasks.html" title="Common tasks">
<link rel="next" href="extender.html" title="Extender Manual">
</head>
@@ -75,7 +75,7 @@ boost-build build-system ;
In this case, running <span class="command"><strong>b2</strong></span> anywhere in the project tree will
automatically find the build system.</p>
<p>The default <code class="filename">bootstrap.jam</code>, after loading some standard
- definitions, loads two <code class="filename">site-config.jam</code> and <code class="filename">user-config.jam</code>.</p>
+ definitions, loads both <code class="filename">site-config.jam</code> and <code class="filename">user-config.jam</code>.</p>
</div>
</div>
<div class="section">
@@ -149,7 +149,7 @@ lib tools : [ glob *.cpp ] ;
<p>
It is possible to also pass a second argument&#8212;the list of
exclude patterns. The result will then include the list of
- files patching any of include patterns, and not matching any
+ files matching any of include patterns, and not matching any
of the exclude patterns. For example:
</p>
<pre class="programlisting">
@@ -260,7 +260,7 @@ path-constant DATA : data/a.txt ;
<p>This section documents the features that are built-in into
Boost.Build. For features with a fixed set of values, that set is
provided, with the default value listed first.</p>
-<a class="indexterm" name="idm45927672505888"></a><div class="variablelist"><dl class="variablelist">
+<a class="indexterm" name="idp723838752"></a><div class="variablelist"><dl class="variablelist">
<dt><span class="term"><code class="literal">variant</code></span></dt>
<dd>
<p>
@@ -423,7 +423,7 @@ path-constant DATA : data/a.txt ;
<dd>
The value of those features is passed without modification to the
corresponding tools. For <code class="computeroutput">cflags</code> that is both the C and
- C++ compilers, for <code class="computeroutput">cxxflags</code> that is the C++ compiler
+ C++ compilers, for <code class="computeroutput">cxxflags</code> that is the C++ compiler,
and for <code class="computeroutput">linkflags</code> that is the linker. The features are
handy when you are trying to do something special that cannot be
achieved by a higher-level feature in Boost.Build.
@@ -497,7 +497,7 @@ path-constant DATA : data/a.txt ;
<dd>
<p><span class="bold"><strong>Allowed values:</strong></span> <code class="literal">on</code>, <code class="literal">off</code>.</p>
<p>The <code class="literal">debug-symbols</code> feature specifies if
- produced object files, executables and libraries should include
+ produced object files, executables, and libraries should include
debug information.
Typically, the value of this feature is implicitly set by the
<code class="literal">variant</code> feature, but it can be explicitly
@@ -507,8 +507,8 @@ path-constant DATA : data/a.txt ;
<dt><span class="term"><code class="literal">runtime-debugging</code></span></dt>
<dd>
<p><span class="bold"><strong>Allowed values:</strong></span> <code class="literal">on</code>, <code class="literal">off</code>.</p>
-<p>The <code class="literal">runtime-debugging</code> feature specifies if
- produced object files, executables and libraries should include
+<p>The <code class="literal">runtime-debugging</code> feature specifies
+ whether produced object files, executables, and libraries should include
behaviour useful only for debugging, such as asserts.
Typically, the value of this feature is implicitly set by the
<code class="literal">variant</code> feature, but it can be explicitly
@@ -526,7 +526,7 @@ path-constant DATA : data/a.txt ;
libraries are produced for shared libraries or not.
</p>
<p>The complete list of possible values for this feature is:
- aix, bsd, cygwin, darwin, freebsd, hpux, iphone, linux, netbsd,
+ aix, appletv, bsd, cygwin, darwin, freebsd, hpux, iphone, linux, netbsd,
openbsd, osf, qnx, qnxnto, sgi, solaris, unix, unixware, windows.
</p>
<p>See <a class="xref" href="tasks.html#bbv2.tasks.crosscompile" title="Cross-compilation">the section called &#8220;Cross-compilation&#8221;</a> for details of
@@ -605,7 +605,7 @@ path-constant DATA : data/a.txt ;
</dd>
<dt><span class="term"><code class="literal">embed-manifest</code></span></dt>
<dd>
-<a class="indexterm" name="idm45927672347168"></a><a class="indexterm" name="idm45927672346064"></a><p>
+<a class="indexterm" name="idp723997568"></a><a class="indexterm" name="idp723998672"></a><p>
<span class="bold"><strong>Allowed values:</strong></span> on, off.
</p>
<p>This feature is specific to the msvc toolset (see
@@ -618,7 +618,7 @@ path-constant DATA : data/a.txt ;
</dd>
<dt><span class="term"><code class="literal">embed-manifest-file</code></span></dt>
<dd>
-<a class="indexterm" name="idm45927672337824"></a><a class="indexterm" name="idm45927672336720"></a><p>This feature is specific to the msvc toolset (see
+<a class="indexterm" name="idp724006912"></a><a class="indexterm" name="idp724008016"></a><p>This feature is specific to the msvc toolset (see
<a class="xref" href="reference.html#bbv2.reference.tools.compiler.msvc" title="Microsoft Visual C++">the section called &#8220;Microsoft Visual C++&#8221;</a>),
and controls which manifest files should be embedded inside
executables and shared libraries. This
@@ -633,8 +633,8 @@ path-constant DATA : data/a.txt ;
<a name="bbv2.reference.tools"></a>Builtin tools</h3></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.compilers">C++ Compilers</a></span></dt>
-<dt><span class="section"><a href="reference.html#idm45927672013552">Third-party libraries</a></span></dt>
-<dt><span class="section"><a href="reference.html#idm45927671977520">Documentation tools</a></span></dt>
+<dt><span class="section"><a href="reference.html#idp724333248">Third-party libraries</a></span></dt>
+<dt><span class="section"><a href="reference.html#idp724369376">Documentation tools</a></span></dt>
</dl></div>
<p>Boost.Build comes with support for a large number of C++ compilers,
and other tools. This section documents how to use those tools.</p>
@@ -716,13 +716,13 @@ using gcc : [<span class="optional"><em class="replaceable"><code>version</code>
<dd><p>Specifies the archiver command that is used to produce static
libraries. Normally, it is autodetected using gcc
<span class="command"><strong>-print-prog-name</strong></span> option or defaulted to <span class="command"><strong>ar</strong></span>,
- but in some cases you might want to override it, for example to expliitly
+ but in some cases you might want to override it, for example to explicitly
use a system version instead of one included with gcc.</p></dd>
<dt><span class="term"><code class="literal">ranlib</code></span></dt>
<dd><p>Specifies the ranlib command that is used to generated symbol table
for static libraries. Normally, it is autodetected using gcc
<span class="command"><strong>-print-prog-name</strong></span> option or defaulted to <span class="command"><strong>ranlib</strong></span>,
- but in some cases you might want to override it, for example to expliitly
+ but in some cases you might want to override it, for example to explicitly
use a system version instead of one included with gcc.</p></dd>
<dt><span class="term"><code class="literal">rc</code></span></dt>
<dd><p>Specifies the resource compiler command
@@ -735,7 +735,7 @@ using gcc : [<span class="optional"><em class="replaceable"><code>version</code>
be either <code class="computeroutput">windres</code> for msvc resource compiler,
or <code class="computeroutput">rc</code> for borland's resource compiler.</p></dd>
</dl></div>
-<a class="indexterm" name="idm45927672284576"></a>
+<a class="indexterm" name="idp724060288"></a>
In order to compile 64-bit applications, you have to specify
<code class="computeroutput">address-model=64</code>, and the <code class="computeroutput">instruction-set</code>
@@ -752,7 +752,7 @@ using gcc : [<span class="optional"><em class="replaceable"><code>version</code>
to that of the gcc module.
</p>
<p>
- <a class="indexterm" name="idm45927672276048"></a>
+ <a class="indexterm" name="idp724068816"></a>
The darwin toolset can generate so called "fat"
binaries&#8212;binaries that can run support more than one
architecture, or address mode. To build a binary that can run both
@@ -771,6 +771,9 @@ using gcc : [<span class="optional"><em class="replaceable"><code>version</code>
C++</a> command-line tools on Microsoft Windows. The supported
products and versions of command line tools are listed below:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>Visual Studio 2015&#8212;14.0</p></li>
+<li class="listitem"><p>Visual Studio 2013&#8212;12.0</p></li>
+<li class="listitem"><p>Visual Studio 2012&#8212;11.0</p></li>
<li class="listitem"><p>Visual Studio 2010&#8212;10.0</p></li>
<li class="listitem"><p>Visual Studio 2008&#8212;9.0</p></li>
<li class="listitem"><p>Visual Studio 2005&#8212;8.0</p></li>
@@ -862,7 +865,7 @@ using msvc : [<span class="optional"><em class="replaceable"><code>version</code
<div class="section">
<div class="titlepage"><div><div><h6 class="title">
<a name="v2.reference.tools.compiler.msvc.64"></a>64-bit support</h6></div></div></div>
-<a class="indexterm" name="idm45927672221072"></a><p>Starting with version 8.0, Microsoft Visual Studio can
+<a class="indexterm" name="idp724125584"></a><p>Starting with version 8.0, Microsoft Visual Studio can
generate binaries for 64-bit processor, both 64-bit flavours of x86
(codenamed AMD64/EM64T), and Itanium (codenamed IA64). In addition,
compilers that are itself run in 64-bit mode, for better
@@ -909,7 +912,7 @@ using msvc : [<span class="optional"><em class="replaceable"><code>version</code
<div class="section">
<div class="titlepage"><div><div><h6 class="title">
<a name="v2.reference.tools.compiler.msvc.winrt"></a>Windows Runtime support</h6></div></div></div>
-<a class="indexterm" name="idm45927672204944"></a><p>
+<a class="indexterm" name="idp724141712"></a><p>
Starting with version 11.0, Microsoft Visual Studio can
produce binaries for Windows Store and Phone in addition to
traditional Win32 desktop. To specify which Windows API set
@@ -1238,7 +1241,7 @@ using sun : [<span class="optional"><em class="replaceable"><code>version</code>
<dd><p>Specifies additional command line options that will be
passed to the linker.</p></dd>
</dl></div>
-<a class="indexterm" name="idm45927672022704"></a>
+<a class="indexterm" name="idp724324032"></a>
Starting with Sun Studio 12, you can create 64-bit applications
by using the <code class="computeroutput">address-model=64</code> property.
@@ -1263,7 +1266,7 @@ using vacpp ;</pre>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idm45927672013552"></a>Third-party libraries</h4></div></div></div>
+<a name="idp724333248"></a>Third-party libraries</h4></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.libraries.stlport">STLport library</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.libraries.zlib">zlib</a></span></dt>
@@ -1273,7 +1276,7 @@ using vacpp ;</pre>
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="bbv2.reference.tools.libraries.stlport"></a>STLport library</h5></div></div></div>
-<a class="indexterm" name="idm45927672011152"></a><p>The <a href="http://stlport.org" target="_top">STLport</a> library
+<a class="indexterm" name="idp724335648"></a><p>The <a href="http://stlport.org" target="_top">STLport</a> library
is an alternative implementation of C++ runtime library. Boost.Build
supports using that library on Windows platform. Linux is
hampered by different naming of libraries in each STLport
@@ -1302,7 +1305,7 @@ using stlport : [<span class="optional"><em class="replaceable"><code>version</c
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="bbv2.reference.tools.libraries.zlib"></a>zlib</h5></div></div></div>
-<a class="indexterm" name="idm45927672000128"></a><p>Provides support for the
+<a class="indexterm" name="idp724346672"></a><p>Provides support for the
<a href="http://www.zlib.net" target="_top">zlib</a> library. zlib
can be configured either to use precompiled binaries or to
build the library from source.</p>
@@ -1352,7 +1355,7 @@ using zlib : 1.2.7 : : &lt;toolset&gt;gcc ;
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
-<a name="idm45927671977520"></a>Documentation tools</h4></div></div></div>
+<a name="idp724369376"></a>Documentation tools</h4></div></div></div>
<div class="toc"><dl class="toc">
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.doc.xsltproc">xsltproc</a></span></dt>
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.doc.boostbook">boostbook</a></span></dt>
@@ -1366,7 +1369,7 @@ using zlib : 1.2.7 : : &lt;toolset&gt;gcc ;
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="bbv2.reference.tools.doc.xsltproc"></a>xsltproc</h5></div></div></div>
-<a class="indexterm" name="idm45927671975120"></a><p>To use xsltproc, you first need to configure it using the following syntax:</p>
+<a class="indexterm" name="idp724371728"></a><p>To use xsltproc, you first need to configure it using the following syntax:</p>
<pre class="programlisting">
using xsltproc : [<span class="optional"><em class="replaceable"><code>xsltproc</code></em></span>] ;
</pre>
@@ -1414,7 +1417,7 @@ rule xslt-dir ( target : source stylesheet : properties * : dirname )
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="bbv2.reference.tools.doc.boostbook"></a>boostbook</h5></div></div></div>
-<a class="indexterm" name="idm45927671949184"></a><p>To use boostbook, you first need to configure it using the following syntax:</p>
+<a class="indexterm" name="idp724397728"></a><p>To use boostbook, you first need to configure it using the following syntax:</p>
<pre class="programlisting">
using boostbook : [<span class="optional"><em class="replaceable"><code>docbook-xsl-dir</code></em></span>] : [<span class="optional"><em class="replaceable"><code>docbook-dtd-dir</code></em></span>] : [<span class="optional"><em class="replaceable"><code>boostbook-dir</code></em></span>] ;
</pre>
@@ -1468,7 +1471,7 @@ rule boostbook ( target-name : sources * : requirements * : default-build * )
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="bbv2.reference.tools.doc.doxygen"></a>doxygen</h5></div></div></div>
-<a class="indexterm" name="idm45927671913792"></a><p>To use doxygen, you first need to configure it using the following syntax:</p>
+<a class="indexterm" name="idp724433184"></a><p>To use doxygen, you first need to configure it using the following syntax:</p>
<pre class="programlisting">
using doxygen : [<span class="optional"><em class="replaceable"><code>name</code></em></span>] ;
</pre>
@@ -1527,7 +1530,7 @@ rule doxygen ( target : sources * : requirements * : default-build * : usage-req
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="bbv2.reference.tools.doc.quickbook"></a>quickbook</h5></div></div></div>
-<a class="indexterm" name="idm45927671888224"></a><p>The quickbook module provides a generator to convert from
+<a class="indexterm" name="idp724458752"></a><p>The quickbook module provides a generator to convert from
Quickbook to BoostBook XML.</p>
<p>To use quickbook, you first need to configure it using the following syntax:</p>
<pre class="programlisting">
@@ -1543,7 +1546,7 @@ using quickbook : [<span class="optional"><em class="replaceable"><code>command<
<div class="section">
<div class="titlepage"><div><div><h5 class="title">
<a name="bbv2.reference.tools.doc.fop"></a>fop</h5></div></div></div>
-<a class="indexterm" name="idm45927671882880"></a><p>The fop module provides generators to convert from
+<a class="indexterm" name="idp724464096"></a><p>The fop module provides generators to convert from
XSL formatting objects to Postscript and PDF.</p>
<p>To use fop, you first need to configure it using the following syntax:</p>
<pre class="programlisting">
@@ -1580,7 +1583,7 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.modules.modules"></a>modules</h4></div></div></div>
-<a class="indexterm" name="idm45927671873216"></a><p>
+<a class="indexterm" name="idp724473824"></a><p>
The <code class="computeroutput">modules</code> module defines basic functionality
for handling modules.
</p>
@@ -1630,7 +1633,7 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
-<a name="bbv2.reference.modules.modules.binding"></a><a class="indexterm" name="idm45927671863392"></a><code class="computeroutput"><span class="keyword">rule</span> binding <span class="special">(</span> module-name <span class="special">)</span></code><p>Returns the filesystem binding of the given module.</p>
+<a name="bbv2.reference.modules.modules.binding"></a><a class="indexterm" name="idp724483648"></a><code class="computeroutput"><span class="keyword">rule</span> binding <span class="special">(</span> module-name <span class="special">)</span></code><p>Returns the filesystem binding of the given module.</p>
<p>For example, a module can get its own location with:
</p>
<pre class="programlisting">me <span class="special">=</span> <span class="special">[</span> modules.binding $(__name__) <span class="special">]</span> <span class="special">;</span></pre>
@@ -1638,7 +1641,7 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.modules.poke"></a><a class="indexterm" name="idm45927671854512"></a><code class="computeroutput"><span class="keyword">rule</span> poke <span class="special">(</span> module-name ? <span class="special">:</span> variables + <span class="special">:</span> value * <span class="special">)</span></code><p>Sets the module-local value of a variable.</p>
+<a name="bbv2.reference.modules.modules.poke"></a><a class="indexterm" name="idp724492528"></a><code class="computeroutput"><span class="keyword">rule</span> poke <span class="special">(</span> module-name ? <span class="special">:</span> variables + <span class="special">:</span> value * <span class="special">)</span></code><p>Sets the module-local value of a variable.</p>
<p>For example, to set a variable in the global module:
</p>
<pre class="programlisting">modules.poke <span class="special">:</span> ZLIB_INCLUDE <span class="special">:</span> /usr/local/include <span class="special">;</span></pre>
@@ -1646,7 +1649,7 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.modules.peek"></a><a class="indexterm" name="idm45927671844976"></a><code class="computeroutput"><span class="keyword">rule</span> peek <span class="special">(</span> module-name ? <span class="special">:</span> variables + <span class="special">)</span></code><p>Returns the module-local value of a variable.</p>
+<a name="bbv2.reference.modules.modules.peek"></a><a class="indexterm" name="idp724502064"></a><code class="computeroutput"><span class="keyword">rule</span> peek <span class="special">(</span> module-name ? <span class="special">:</span> variables + <span class="special">)</span></code><p>Returns the module-local value of a variable.</p>
<p>
For example, to read a variable from the global module:
</p>
@@ -1655,7 +1658,7 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.modules.call-in"></a><a class="indexterm" name="idm45927671834304"></a><code class="computeroutput"><span class="keyword">rule</span> call-in <span class="special">(</span> module-name ? <span class="special">:</span> rule-name args * <span class="special">:</span> * <span class="special">)</span> </code><p>Call the given rule locally in the given module. Use
+<a name="bbv2.reference.modules.modules.call-in"></a><a class="indexterm" name="idp724512864"></a><code class="computeroutput"><span class="keyword">rule</span> call-in <span class="special">(</span> module-name ? <span class="special">:</span> rule-name args * <span class="special">:</span> * <span class="special">)</span> </code><p>Call the given rule locally in the given module. Use
this for rules accepting rule names as arguments, so that
the passed rule may be invoked in the context of the rule's
caller (for example, if the rule accesses module globals or
@@ -1690,7 +1693,7 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.modules.load"></a><a class="indexterm" name="idm45927671807632"></a><code class="computeroutput"><span class="keyword">rule</span> load <span class="special">(</span> module-name <span class="special">:</span> filename ? <span class="special">:</span> search * <span class="special">)</span></code><p>Load the indicated module if it is not already loaded.</p>
+<a name="bbv2.reference.modules.modules.load"></a><a class="indexterm" name="idp724539600"></a><code class="computeroutput"><span class="keyword">rule</span> load <span class="special">(</span> module-name <span class="special">:</span> filename ? <span class="special">:</span> search * <span class="special">)</span></code><p>Load the indicated module if it is not already loaded.</p>
<div class="variablelist"><dl class="variablelist">
<dt><span class="term"><code class="literal">module-name</code></span></dt>
<dd><p>Name of module to load.</p></dd>
@@ -1706,7 +1709,7 @@ using fop : [<span class="optional"><em class="replaceable"><code>fop-command</c
</dl></div>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.modules.import"></a><a class="indexterm" name="idm45927671793440"></a><code class="computeroutput"><span class="keyword">rule</span> import <span class="special">(</span> module-names + <span class="special">:</span> rules-opt * <span class="special">:</span> rename-opt * <span class="special">)</span></code><p>Load the indicated module and import rule names into the
+<a name="bbv2.reference.modules.modules.import"></a><a class="indexterm" name="idp724553792"></a><code class="computeroutput"><span class="keyword">rule</span> import <span class="special">(</span> module-names + <span class="special">:</span> rules-opt * <span class="special">:</span> rename-opt * <span class="special">)</span></code><p>Load the indicated module and import rule names into the
current module. Any members of <code class="computeroutput">rules-opt</code> will be
available without qualification in the caller's module. Any
members of <code class="computeroutput">rename-opt</code> will be taken as the names
@@ -1735,7 +1738,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.modules.clone-rules"></a><a class="indexterm" name="idm45927671775104"></a><code class="computeroutput"><span class="keyword">rule</span> clone-rules <span class="special">(</span> source-module target-module <span class="special">)</span></code><p>Define exported copies in <code class="computeroutput">$(target-module)</code>
+<a name="bbv2.reference.modules.modules.clone-rules"></a><a class="indexterm" name="idp724572144"></a><code class="computeroutput"><span class="keyword">rule</span> clone-rules <span class="special">(</span> source-module target-module <span class="special">)</span></code><p>Define exported copies in <code class="computeroutput">$(target-module)</code>
of all rules exported from <code class="computeroutput">$(source-module)</code>. Also
make them available in the global module with qualification,
so that it is just as though the rules were defined originally
@@ -1746,7 +1749,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.modules.path"></a>path</h4></div></div></div>
-<a class="indexterm" name="idm45927671767024"></a><p>
+<a class="indexterm" name="idp724580288"></a><p>
Performs various path manipulations. Paths are always in a 'normalized'
representation. In it, a path may be either:
@@ -1765,25 +1768,25 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
-<a name="bbv2.reference.modules.path.make"></a><a class="indexterm" name="idm45927671759600"></a><code class="computeroutput"><span class="keyword">rule</span> make <span class="special">(</span> native <span class="special">)</span></code><p>Converts the native path into normalized form.</p>
+<a name="bbv2.reference.modules.path.make"></a><a class="indexterm" name="idp724587712"></a><code class="computeroutput"><span class="keyword">rule</span> make <span class="special">(</span> native <span class="special">)</span></code><p>Converts the native path into normalized form.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.native"></a><a class="indexterm" name="idm45927671753760"></a><code class="computeroutput"><span class="keyword">rule</span> native <span class="special">(</span> path <span class="special">)</span></code><p>Builds the native representation of the path.</p>
+<a name="bbv2.reference.modules.path.native"></a><a class="indexterm" name="idp724593488"></a><code class="computeroutput"><span class="keyword">rule</span> native <span class="special">(</span> path <span class="special">)</span></code><p>Builds the native representation of the path.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.is-rooted"></a><a class="indexterm" name="idm45927671748400"></a><code class="computeroutput"><span class="keyword">rule</span> is-rooted <span class="special">(</span> path <span class="special">)</span></code><p>Tests if a path is rooted.</p>
+<a name="bbv2.reference.modules.path.is-rooted"></a><a class="indexterm" name="idp724598848"></a><code class="computeroutput"><span class="keyword">rule</span> is-rooted <span class="special">(</span> path <span class="special">)</span></code><p>Tests if a path is rooted.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.has-parent"></a><a class="indexterm" name="idm45927671742992"></a><code class="computeroutput"><span class="keyword">rule</span> has-parent <span class="special">(</span> path <span class="special">)</span></code><p>Tests if a path has a parent.</p>
+<a name="bbv2.reference.modules.path.has-parent"></a><a class="indexterm" name="idp724604256"></a><code class="computeroutput"><span class="keyword">rule</span> has-parent <span class="special">(</span> path <span class="special">)</span></code><p>Tests if a path has a parent.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.basename"></a><a class="indexterm" name="idm45927671737584"></a><code class="computeroutput"><span class="keyword">rule</span> basename <span class="special">(</span> path <span class="special">)</span></code><p>Returns the path without any directory components.</p>
+<a name="bbv2.reference.modules.path.basename"></a><a class="indexterm" name="idp724609664"></a><code class="computeroutput"><span class="keyword">rule</span> basename <span class="special">(</span> path <span class="special">)</span></code><p>Returns the path without any directory components.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.parent"></a><a class="indexterm" name="idm45927671732160"></a><code class="computeroutput"><span class="keyword">rule</span> parent <span class="special">(</span> path <span class="special">)</span></code><p>Returns the parent directory of the path. If no parent exists, an error is issued.</p>
+<a name="bbv2.reference.modules.path.parent"></a><a class="indexterm" name="idp724615024"></a><code class="computeroutput"><span class="keyword">rule</span> parent <span class="special">(</span> path <span class="special">)</span></code><p>Returns the parent directory of the path. If no parent exists, an error is issued.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.reverse"></a><a class="indexterm" name="idm45927671726704"></a><code class="computeroutput"><span class="keyword">rule</span> reverse <span class="special">(</span> path <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.reverse"></a><a class="indexterm" name="idp724620480"></a><code class="computeroutput"><span class="keyword">rule</span> reverse <span class="special">(</span> path <span class="special">)</span></code><p>
Returns <code class="computeroutput">path2</code> such that
<code class="computeroutput"><span class="special">[</span> join path path2 <span class="special">]</span> <span class="special">=</span> "."</code>.
The path may not contain <code class="computeroutput">".."</code>
@@ -1791,23 +1794,23 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.join"></a><a class="indexterm" name="idm45927671717312"></a><code class="computeroutput"><span class="keyword">rule</span> join <span class="special">(</span> elements + <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.join"></a><a class="indexterm" name="idp724629872"></a><code class="computeroutput"><span class="keyword">rule</span> join <span class="special">(</span> elements + <span class="special">)</span></code><p>
Concatenates the passed path elements. Generates an error if any
element other than the first one is rooted. Skips any empty or
undefined path elements.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.root"></a><a class="indexterm" name="idm45927671711744"></a><code class="computeroutput"><span class="keyword">rule</span> root <span class="special">(</span> path root <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.root"></a><a class="indexterm" name="idp724635440"></a><code class="computeroutput"><span class="keyword">rule</span> root <span class="special">(</span> path root <span class="special">)</span></code><p>
If <code class="computeroutput">path</code> is relative, it is rooted at
<code class="computeroutput">root</code>. Otherwise, it is unchanged.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.pwd"></a><a class="indexterm" name="idm45927671704864"></a><code class="computeroutput"><span class="keyword">rule</span> pwd <span class="special">(</span> <span class="special">)</span></code><p>Returns the current working directory.</p>
+<a name="bbv2.reference.modules.path.pwd"></a><a class="indexterm" name="idp724642304"></a><code class="computeroutput"><span class="keyword">rule</span> pwd <span class="special">(</span> <span class="special">)</span></code><p>Returns the current working directory.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.glob"></a><a class="indexterm" name="idm45927671699472"></a><code class="computeroutput"><span class="keyword">rule</span> glob <span class="special">(</span> dirs * <span class="special">:</span> patterns + <span class="special">:</span> exclude-patterns * <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.glob"></a><a class="indexterm" name="idp724647696"></a><code class="computeroutput"><span class="keyword">rule</span> glob <span class="special">(</span> dirs * <span class="special">:</span> patterns + <span class="special">:</span> exclude-patterns * <span class="special">)</span></code><p>
Returns the list of files matching the given pattern in the specified
directory. Both directories and patterns are supplied as portable paths. Each
pattern should be a non-absolute path, and can't contain "." or ".." elements.
@@ -1832,7 +1835,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.glob-tree"></a><a class="indexterm" name="idm45927671685472"></a><code class="computeroutput"><span class="keyword">rule</span> glob-tree <span class="special">(</span> roots * <span class="special">:</span> patterns + <span class="special">:</span> exclude-patterns * <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.glob-tree"></a><a class="indexterm" name="idp724661696"></a><code class="computeroutput"><span class="keyword">rule</span> glob-tree <span class="special">(</span> roots * <span class="special">:</span> patterns + <span class="special">:</span> exclude-patterns * <span class="special">)</span></code><p>
Recursive version of <a class="link" href="reference.html#bbv2.reference.modules.path.glob">glob</a>.
Builds the glob of files while also searching in
the subdirectories of the given roots. An optional set of exclusion patterns
@@ -1842,10 +1845,10 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.exists"></a><a class="indexterm" name="idm45927671677472"></a><code class="computeroutput"><span class="keyword">rule</span> exists <span class="special">(</span> file <span class="special">)</span></code><p>Returns true if the specified file exists.</p>
+<a name="bbv2.reference.modules.path.exists"></a><a class="indexterm" name="idp724669632"></a><code class="computeroutput"><span class="keyword">rule</span> exists <span class="special">(</span> file <span class="special">)</span></code><p>Returns true if the specified file exists.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.all-parents"></a><a class="indexterm" name="idm45927671672112"></a><code class="computeroutput"><span class="keyword">rule</span> all-parents <span class="special">(</span> path <span class="special">:</span> upper_limit ? <span class="special">:</span> cwd ? <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.all-parents"></a><a class="indexterm" name="idp724675056"></a><code class="computeroutput"><span class="keyword">rule</span> all-parents <span class="special">(</span> path <span class="special">:</span> upper_limit ? <span class="special">:</span> cwd ? <span class="special">)</span></code><p>
Find out the absolute name of path and return the list of all the parents,
starting with the immediate one. Parents are returned as relative names. If
<code class="computeroutput">upper_limit</code> is specified, directories above it
@@ -1853,7 +1856,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.glob-in-parents"></a><a class="indexterm" name="idm45927671664368"></a><code class="computeroutput"><span class="keyword">rule</span> glob-in-parents <span class="special">(</span> dir <span class="special">:</span> patterns + <span class="special">:</span> upper-limit ? <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.glob-in-parents"></a><a class="indexterm" name="idp724682800"></a><code class="computeroutput"><span class="keyword">rule</span> glob-in-parents <span class="special">(</span> dir <span class="special">:</span> patterns + <span class="special">:</span> upper-limit ? <span class="special">)</span></code><p>
Search for <code class="computeroutput">patterns</code> in parent directories
of <code class="computeroutput">dir</code>, up to and including
<code class="computeroutput">upper_limit</code>, if it is specified, or
@@ -1861,23 +1864,23 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.relative"></a><a class="indexterm" name="idm45927671655424"></a><code class="computeroutput"><span class="keyword">rule</span> relative <span class="special">(</span> child parent <span class="special">:</span> no-error ? <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.relative"></a><a class="indexterm" name="idp724691808"></a><code class="computeroutput"><span class="keyword">rule</span> relative <span class="special">(</span> child parent <span class="special">:</span> no-error ? <span class="special">)</span></code><p>
Assuming <code class="computeroutput">child</code> is a subdirectory of
<code class="computeroutput">parent</code>, return the relative path from
<code class="computeroutput">parent</code> to <code class="computeroutput">child</code>.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.relative-to"></a><a class="indexterm" name="idm45927671646416"></a><code class="computeroutput"><span class="keyword">rule</span> relative-to <span class="special">(</span> path1 path2 <span class="special">)</span></code><p>Returns the minimal path to path2 that is relative path1.</p>
+<a name="bbv2.reference.modules.path.relative-to"></a><a class="indexterm" name="idp724700816"></a><code class="computeroutput"><span class="keyword">rule</span> relative-to <span class="special">(</span> path1 path2 <span class="special">)</span></code><p>Returns the minimal path to path2 that is relative path1.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.programs-path"></a><a class="indexterm" name="idm45927671641056"></a><code class="computeroutput"><span class="keyword">rule</span> programs-path <span class="special">(</span> <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.programs-path"></a><a class="indexterm" name="idp724706240"></a><code class="computeroutput"><span class="keyword">rule</span> programs-path <span class="special">(</span> <span class="special">)</span></code><p>
Returns the list of paths which are used by the operating system for
looking up programs.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.path.mkdirs"></a><a class="indexterm" name="idm45927671635648"></a><code class="computeroutput"><span class="keyword">rule</span> makedirs <span class="special">(</span> path <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.path.mkdirs"></a><a class="indexterm" name="idp724711712"></a><code class="computeroutput"><span class="keyword">rule</span> makedirs <span class="special">(</span> path <span class="special">)</span></code><p>
Creates a directory and all parent directories that do not
already exist.
</p>
@@ -1887,7 +1890,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.modules.regex"></a>regex</h4></div></div></div>
-<a class="indexterm" name="idm45927671629568"></a><p>
+<a class="indexterm" name="idp724717792"></a><p>
Contains rules for string processing using regular expressions.
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
@@ -1936,7 +1939,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</ul></div>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
-<a name="bbv2.reference.modules.regex.split"></a><a class="indexterm" name="idm45927671602576"></a><code class="computeroutput"><span class="keyword">rule</span> split <span class="special">(</span> string separator <span class="special">)</span></code><p>Returns a list of the following substrings:
+<a name="bbv2.reference.modules.regex.split"></a><a class="indexterm" name="idp724744720"></a><code class="computeroutput"><span class="keyword">rule</span> split <span class="special">(</span> string separator <span class="special">)</span></code><p>Returns a list of the following substrings:
</p>
<div class="orderedlist"><ol class="orderedlist" type="a">
<li class="listitem"><p>from beginning till the first occurrence of
@@ -1954,34 +1957,34 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.regex.split-list"></a><a class="indexterm" name="idm45927671591824"></a><code class="computeroutput"><span class="keyword">rule</span> split-list <span class="special">(</span> list * <span class="special">:</span> separator <span class="special">)</span></code><p>Returns the concatenated results of applying
+<a name="bbv2.reference.modules.regex.split-list"></a><a class="indexterm" name="idp724755472"></a><code class="computeroutput"><span class="keyword">rule</span> split-list <span class="special">(</span> list * <span class="special">:</span> separator <span class="special">)</span></code><p>Returns the concatenated results of applying
<a class="link" href="reference.html#bbv2.reference.modules.regex.split">regex.split</a>
to every element of the list using the separator pattern.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.regex.match"></a><a class="indexterm" name="idm45927671584448"></a><code class="computeroutput"><span class="keyword">rule</span> match <span class="special">(</span> pattern <span class="special">:</span> string <span class="special">:</span> indices * <span class="special">)</span></code><p>Match <code class="computeroutput">string</code> against
+<a name="bbv2.reference.modules.regex.match"></a><a class="indexterm" name="idp724762912"></a><code class="computeroutput"><span class="keyword">rule</span> match <span class="special">(</span> pattern <span class="special">:</span> string <span class="special">:</span> indices * <span class="special">)</span></code><p>Match <code class="computeroutput">string</code> against
<code class="computeroutput">pattern</code>, and return the elements
indicated by <code class="computeroutput">indices</code>.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.regex.transform"></a><a class="indexterm" name="idm45927671575072"></a><code class="computeroutput"><span class="keyword">rule</span> transform <span class="special">(</span> list * <span class="special">:</span> pattern <span class="special">:</span> indices * <span class="special">)</span></code><p>Matches all elements of <code class="computeroutput">list</code> against
+<a name="bbv2.reference.modules.regex.transform"></a><a class="indexterm" name="idp724772288"></a><code class="computeroutput"><span class="keyword">rule</span> transform <span class="special">(</span> list * <span class="special">:</span> pattern <span class="special">:</span> indices * <span class="special">)</span></code><p>Matches all elements of <code class="computeroutput">list</code> against
the <code class="computeroutput">pattern</code> and returns a list of elements
indicated by <code class="computeroutput">indices</code> of all successful
matches. If <code class="computeroutput">indices</code> is omitted returns a list
of first parenthesized groups of all successful matches.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.regex.escape"></a><a class="indexterm" name="idm45927671564864"></a><code class="computeroutput"><span class="keyword">rule</span> escape <span class="special">(</span> string <span class="special">:</span> symbols <span class="special">:</span> escape-symbol <span class="special">)</span></code><p>Escapes all of the characters in <code class="computeroutput">symbols</code>
+<a name="bbv2.reference.modules.regex.escape"></a><a class="indexterm" name="idp724782496"></a><code class="computeroutput"><span class="keyword">rule</span> escape <span class="special">(</span> string <span class="special">:</span> symbols <span class="special">:</span> escape-symbol <span class="special">)</span></code><p>Escapes all of the characters in <code class="computeroutput">symbols</code>
using the escape symbol <code class="computeroutput">escape-symbol</code> for
the given string, and returns the escaped string.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.regex.replace"></a><a class="indexterm" name="idm45927671556160"></a><code class="computeroutput"><span class="keyword">rule</span> replace <span class="special">(</span> string match replacement <span class="special">)</span></code><p>Replaces occurrences of a match string in a given string and
+<a name="bbv2.reference.modules.regex.replace"></a><a class="indexterm" name="idp724791200"></a><code class="computeroutput"><span class="keyword">rule</span> replace <span class="special">(</span> string match replacement <span class="special">)</span></code><p>Replaces occurrences of a match string in a given string and
returns the new string. The match string can be a regex expression.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.regex.replace-list"></a><a class="indexterm" name="idm45927671550176"></a><code class="computeroutput"><span class="keyword">rule</span> replace-list <span class="special">(</span> list * <span class="special">:</span> match <span class="special">:</span> replacement <span class="special">)</span></code><p>Replaces occurrences of a match string in a given list of strings
+<a name="bbv2.reference.modules.regex.replace-list"></a><a class="indexterm" name="idp724797184"></a><code class="computeroutput"><span class="keyword">rule</span> replace-list <span class="special">(</span> list * <span class="special">:</span> match <span class="special">:</span> replacement <span class="special">)</span></code><p>Replaces occurrences of a match string in a given list of strings
and returns a list of new strings. The match string can be a regex
expression.
</p>
@@ -1992,7 +1995,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.modules.sequence"></a>sequence</h4></div></div></div>
-<a class="indexterm" name="idm45927671540896"></a><p>
+<a class="indexterm" name="idp724806528"></a><p>
Various useful list functions. Note that algorithms in this module
execute largely in the caller's module namespace, so that local
rules can be used as function objects. Also note that most predicates
@@ -2002,50 +2005,50 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.filter"></a><a class="indexterm" name="idm45927671537056"></a><code class="computeroutput"><span class="keyword">rule</span> filter <span class="special">(</span> predicate + <span class="special">:</span> sequence * <span class="special">)</span></code><p>Return the elements <code class="computeroutput">e</code> of
+<a name="bbv2.reference.modules.sequence.filter"></a><a class="indexterm" name="idp724810368"></a><code class="computeroutput"><span class="keyword">rule</span> filter <span class="special">(</span> predicate + <span class="special">:</span> sequence * <span class="special">)</span></code><p>Return the elements <code class="computeroutput">e</code> of
<code class="computeroutput">$(sequence)</code> for which
<code class="computeroutput"><span class="special">[</span> $(predicate) e <span class="special">]</span></code> has a non-null value.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.transform"></a><a class="indexterm" name="idm45927671527376"></a><code class="computeroutput"><span class="keyword">rule</span> transform <span class="special">(</span> function + <span class="special">:</span> sequence * <span class="special">)</span></code><p>Return a new sequence consisting of
+<a name="bbv2.reference.modules.sequence.transform"></a><a class="indexterm" name="idp724820048"></a><code class="computeroutput"><span class="keyword">rule</span> transform <span class="special">(</span> function + <span class="special">:</span> sequence * <span class="special">)</span></code><p>Return a new sequence consisting of
<code class="computeroutput"><span class="special">[</span> $(function) $(e) <span class="special">]</span></code> for each element
<code class="computeroutput">e</code> of <code class="computeroutput">$(sequence)</code>.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.reverse"></a><a class="indexterm" name="idm45927671517632"></a><code class="computeroutput"><span class="keyword">rule</span> reverse <span class="special">(</span> s * <span class="special">)</span></code><p>Returns the elements of <code class="computeroutput">s</code> in
+<a name="bbv2.reference.modules.sequence.reverse"></a><a class="indexterm" name="idp724829792"></a><code class="computeroutput"><span class="keyword">rule</span> reverse <span class="special">(</span> s * <span class="special">)</span></code><p>Returns the elements of <code class="computeroutput">s</code> in
reverse order.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.insertion-sort"></a><a class="indexterm" name="idm45927671511056"></a><code class="computeroutput"><span class="keyword">rule</span> insertion-sort <span class="special">(</span> s * <span class="special">:</span> ordered * <span class="special">)</span></code><p>Insertion-sort <code class="computeroutput">s</code> using the
+<a name="bbv2.reference.modules.sequence.insertion-sort"></a><a class="indexterm" name="idp724836304"></a><code class="computeroutput"><span class="keyword">rule</span> insertion-sort <span class="special">(</span> s * <span class="special">:</span> ordered * <span class="special">)</span></code><p>Insertion-sort <code class="computeroutput">s</code> using the
BinaryPredicate <code class="computeroutput">ordered</code>.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.merge"></a><a class="indexterm" name="idm45927671503216"></a><code class="computeroutput"><span class="keyword">rule</span> merge <span class="special">(</span> s1 * <span class="special">:</span> s2 * <span class="special">:</span> ordered * <span class="special">)</span></code><p>Merge two ordered sequences using the BinaryPredicate
+<a name="bbv2.reference.modules.sequence.merge"></a><a class="indexterm" name="idp724844208"></a><code class="computeroutput"><span class="keyword">rule</span> merge <span class="special">(</span> s1 * <span class="special">:</span> s2 * <span class="special">:</span> ordered * <span class="special">)</span></code><p>Merge two ordered sequences using the BinaryPredicate
<code class="computeroutput">ordered</code>.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.join"></a><a class="indexterm" name="idm45927671495360"></a><code class="computeroutput"><span class="keyword">rule</span> join <span class="special">(</span> s * <span class="special">:</span> joint ? <span class="special">)</span></code><p>Join the elements of <code class="computeroutput">s</code> into one
+<a name="bbv2.reference.modules.sequence.join"></a><a class="indexterm" name="idp724852000"></a><code class="computeroutput"><span class="keyword">rule</span> join <span class="special">(</span> s * <span class="special">:</span> joint ? <span class="special">)</span></code><p>Join the elements of <code class="computeroutput">s</code> into one
long string. If <code class="computeroutput">joint</code> is supplied, it
is used as a separator.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.length"></a><a class="indexterm" name="idm45927671487472"></a><code class="computeroutput"><span class="keyword">rule</span> length <span class="special">(</span> s * <span class="special">)</span></code><p>Find the length of any sequence.</p>
+<a name="bbv2.reference.modules.sequence.length"></a><a class="indexterm" name="idp724859952"></a><code class="computeroutput"><span class="keyword">rule</span> length <span class="special">(</span> s * <span class="special">)</span></code><p>Find the length of any sequence.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.unique"></a><a class="indexterm" name="idm45927671481648"></a><code class="computeroutput"><span class="keyword">rule</span> unique <span class="special">(</span> list * <span class="special">:</span> stable ? <span class="special">)</span></code><p>Removes duplicates from <code class="computeroutput">list</code>.
+<a name="bbv2.reference.modules.sequence.unique"></a><a class="indexterm" name="idp724865776"></a><code class="computeroutput"><span class="keyword">rule</span> unique <span class="special">(</span> list * <span class="special">:</span> stable ? <span class="special">)</span></code><p>Removes duplicates from <code class="computeroutput">list</code>.
If <code class="computeroutput">stable</code> is passed, then the order
of the elements will be unchanged.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.max-element"></a><a class="indexterm" name="idm45927671473600"></a><code class="computeroutput"><span class="keyword">rule</span> max-element <span class="special">(</span> elements + <span class="special">:</span> ordered ? <span class="special">)</span></code><p>Returns the maximum number in <code class="computeroutput">elements</code>.
+<a name="bbv2.reference.modules.sequence.max-element"></a><a class="indexterm" name="idp724873760"></a><code class="computeroutput"><span class="keyword">rule</span> max-element <span class="special">(</span> elements + <span class="special">:</span> ordered ? <span class="special">)</span></code><p>Returns the maximum number in <code class="computeroutput">elements</code>.
Uses <code class="computeroutput">ordered</code> for comparisons or
<a class="link" href="../">numbers.less</a>
if none is provided.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.sequence.select-highest-ranked"></a><a class="indexterm" name="idm45927671464576"></a><code class="computeroutput"><span class="keyword">rule</span> select-highest-ranked <span class="special">(</span> elements * <span class="special">:</span> ranks * <span class="special">)</span></code><p>Returns all of <code class="computeroutput">elements</code> for which
+<a name="bbv2.reference.modules.sequence.select-highest-ranked"></a><a class="indexterm" name="idp724882784"></a><code class="computeroutput"><span class="keyword">rule</span> select-highest-ranked <span class="special">(</span> elements * <span class="special">:</span> ranks * <span class="special">)</span></code><p>Returns all of <code class="computeroutput">elements</code> for which
the corresponding element in the parallel list
<code class="computeroutput">rank</code> is equal to the maximum value in
<code class="computeroutput">rank</code>.</p>
@@ -2055,13 +2058,13 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.modules.type"></a>type</h4></div></div></div>
-<a class="indexterm" name="idm45927671455248"></a><p>
+<a class="indexterm" name="idp724892176"></a><p>
Deals with target type declaration and defines target class which supports
typed targets.
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
-<a name="bbv2.reference.modules.type.register"></a><a class="indexterm" name="idm45927671451696"></a><code class="computeroutput"><span class="keyword">rule</span> register <span class="special">(</span> type <span class="special">:</span> suffixes * <span class="special">:</span> base-type ? <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.register"></a><a class="indexterm" name="idp724895728"></a><code class="computeroutput"><span class="keyword">rule</span> register <span class="special">(</span> type <span class="special">:</span> suffixes * <span class="special">:</span> base-type ? <span class="special">)</span></code><p>
Registers a target type, possible derived from a
<code class="computeroutput">base-type</code>. Providing a list
of suffixes here is a shortcut for separately calling the
@@ -2072,7 +2075,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.register-suffixes"></a><a class="indexterm" name="idm45927671441504"></a><code class="computeroutput"><span class="keyword">rule</span> register-suffixes <span class="special">(</span> suffixes + <span class="special">:</span> type <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.register-suffixes"></a><a class="indexterm" name="idp724905920"></a><code class="computeroutput"><span class="keyword">rule</span> register-suffixes <span class="special">(</span> suffixes + <span class="special">:</span> type <span class="special">)</span></code><p>
Specifies that files with suffix from <code class="computeroutput">suffixes</code>
be recognized as targets of type <code class="computeroutput">type</code>.
Issues an error if a different type is already specified for any
@@ -2080,47 +2083,47 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.registered"></a><a class="indexterm" name="idm45927671433936"></a><code class="computeroutput"><span class="keyword">rule</span> registered <span class="special">(</span> type <span class="special">)</span></code><p>Returns true iff type has been registered.</p>
+<a name="bbv2.reference.modules.type.registered"></a><a class="indexterm" name="idp724913488"></a><code class="computeroutput"><span class="keyword">rule</span> registered <span class="special">(</span> type <span class="special">)</span></code><p>Returns true iff type has been registered.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.validate"></a><a class="indexterm" name="idm45927671428576"></a><code class="computeroutput"><span class="keyword">rule</span> validate <span class="special">(</span> type <span class="special">)</span></code><p>Issues an error if <code class="computeroutput">type</code> is unknown.</p>
+<a name="bbv2.reference.modules.type.validate"></a><a class="indexterm" name="idp724918848"></a><code class="computeroutput"><span class="keyword">rule</span> validate <span class="special">(</span> type <span class="special">)</span></code><p>Issues an error if <code class="computeroutput">type</code> is unknown.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.set-scanner"></a><a class="indexterm" name="idm45927671422464"></a><code class="computeroutput"><span class="keyword">rule</span> set-scanner <span class="special">(</span> type <span class="special">:</span> scanner <span class="special">)</span></code><p>Sets a scanner class that will be used for this type.</p>
+<a name="bbv2.reference.modules.type.set-scanner"></a><a class="indexterm" name="idp724924896"></a><code class="computeroutput"><span class="keyword">rule</span> set-scanner <span class="special">(</span> type <span class="special">:</span> scanner <span class="special">)</span></code><p>Sets a scanner class that will be used for this type.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.get-scanner"></a><a class="indexterm" name="idm45927671416416"></a><code class="computeroutput"><span class="keyword">rule</span> get-scanner <span class="special">(</span> type <span class="special">:</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.get-scanner"></a><a class="indexterm" name="idp724931008"></a><code class="computeroutput"><span class="keyword">rule</span> get-scanner <span class="special">(</span> type <span class="special">:</span> property-set <span class="special">)</span></code><p>
Returns a scanner instance appropriate to <code class="computeroutput">type</code>
and <code class="computeroutput">property-set</code>.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.base"></a><a class="indexterm" name="idm45927671408864"></a><code class="computeroutput"><span class="keyword">rule</span> base <span class="special">(</span> type <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.base"></a><a class="indexterm" name="idp724938560"></a><code class="computeroutput"><span class="keyword">rule</span> base <span class="special">(</span> type <span class="special">)</span></code><p>
Returns a base type for the given type or nothing in case the given
type is not derived.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.all-bases"></a><a class="indexterm" name="idm45927671403440"></a><code class="computeroutput"><span class="keyword">rule</span> all-bases <span class="special">(</span> type <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.all-bases"></a><a class="indexterm" name="idp724944048"></a><code class="computeroutput"><span class="keyword">rule</span> all-bases <span class="special">(</span> type <span class="special">)</span></code><p>
Returns the given type and all of its base types in order of
their distance from type.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.all-derived"></a><a class="indexterm" name="idm45927671397952"></a><code class="computeroutput"><span class="keyword">rule</span> all-derived <span class="special">(</span> type <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.all-derived"></a><a class="indexterm" name="idp724949536"></a><code class="computeroutput"><span class="keyword">rule</span> all-derived <span class="special">(</span> type <span class="special">)</span></code><p>
Returns the given type and all of its derived types in order
of their distance from type.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.is-derived"></a><a class="indexterm" name="idm45927671392528"></a><code class="computeroutput"><span class="keyword">rule</span> is-derived <span class="special">(</span> type base <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.is-derived"></a><a class="indexterm" name="idp724955024"></a><code class="computeroutput"><span class="keyword">rule</span> is-derived <span class="special">(</span> type base <span class="special">)</span></code><p>
Returns true if <code class="computeroutput">type</code> is equal to
<code class="computeroutput">base</code> or has <code class="computeroutput">base</code>
as its direct or indirect base.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.set-generated-target-suffix"></a><a class="indexterm" name="idm45927671384928"></a><code class="computeroutput"><span class="keyword">rule</span> set-generated-target-suffix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> suffix <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.set-generated-target-suffix"></a><a class="indexterm" name="idp724962624"></a><code class="computeroutput"><span class="keyword">rule</span> set-generated-target-suffix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> suffix <span class="special">)</span></code><p>
Sets a file suffix to be used when generating a target of <code class="computeroutput">type</code> with the
specified properties. Can be called with no properties if no suffix has
already been specified for the <code class="computeroutput">type</code>. The <code class="computeroutput">suffix</code> parameter can be an empty
@@ -2137,19 +2140,19 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.change-generated-target-suffix"></a><a class="indexterm" name="idm45927671372048"></a><code class="computeroutput"><span class="keyword">rule</span> change-generated-target-suffix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> suffix <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.change-generated-target-suffix"></a><a class="indexterm" name="idp724975440"></a><code class="computeroutput"><span class="keyword">rule</span> change-generated-target-suffix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> suffix <span class="special">)</span></code><p>
Change the suffix previously registered for this type/properties
combination. If suffix is not yet specified, sets it.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.generated-target-suffix"></a><a class="indexterm" name="idm45927671365024"></a><code class="computeroutput"><span class="keyword">rule</span> generated-target-suffix <span class="special">(</span> type <span class="special">:</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.generated-target-suffix"></a><a class="indexterm" name="idp724982528"></a><code class="computeroutput"><span class="keyword">rule</span> generated-target-suffix <span class="special">(</span> type <span class="special">:</span> property-set <span class="special">)</span></code><p>
Returns the suffix used when generating a file of
<code class="computeroutput">type</code> with the given properties.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.set-generated-target-prefix"></a><a class="indexterm" name="idm45927671358224"></a><code class="computeroutput"><span class="keyword">rule</span> set-generated-target-prefix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> prefix <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.set-generated-target-prefix"></a><a class="indexterm" name="idp724989392"></a><code class="computeroutput"><span class="keyword">rule</span> set-generated-target-prefix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> prefix <span class="special">)</span></code><p>
Sets a target prefix that should be used when generating targets of
<code class="computeroutput">type</code> with the specified properties. Can
be called with empty properties if no prefix for
@@ -2166,19 +2169,19 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.change-generated-target-prefix"></a><a class="indexterm" name="idm45927671346688"></a><code class="computeroutput"><span class="keyword">rule</span> change-generated-target-prefix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> prefix <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.change-generated-target-prefix"></a><a class="indexterm" name="idp725000928"></a><code class="computeroutput"><span class="keyword">rule</span> change-generated-target-prefix <span class="special">(</span> type <span class="special">:</span> properties * <span class="special">:</span> prefix <span class="special">)</span></code><p>
Change the prefix previously registered for this type/properties
combination. If prefix is not yet specified, sets it.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.generated-target-prefix"></a><a class="indexterm" name="idm45927671339600"></a><code class="computeroutput"><span class="keyword">rule</span> generated-target-prefix <span class="special">(</span> type <span class="special">:</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.generated-target-prefix"></a><a class="indexterm" name="idp725008016"></a><code class="computeroutput"><span class="keyword">rule</span> generated-target-prefix <span class="special">(</span> type <span class="special">:</span> property-set <span class="special">)</span></code><p>
Returns the prefix used when generating a file of
<code class="computeroutput">type</code> with the given properties.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.modules.type.type"></a><a class="indexterm" name="idm45927671332848"></a><code class="computeroutput"><span class="keyword">rule</span> type <span class="special">(</span> filename <span class="special">)</span></code><p>
+<a name="bbv2.reference.modules.type.type"></a><a class="indexterm" name="idp725014832"></a><code class="computeroutput"><span class="keyword">rule</span> type <span class="special">(</span> filename <span class="special">)</span></code><p>
Returns file type given its name. If there are several
dots in filename, tries each suffix. E.g. for name of
"file.so.1.2" suffixes "2", "1", and "so" will be tried.
@@ -2201,7 +2204,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.class.abstract-target"></a>Class abstract-target</h4></div></div></div>
-<a class="indexterm" name="idm45927671324912"></a><p>
+<a class="indexterm" name="idp725022704"></a><p>
Base class for all abstract targets.
</p>
<pre class="programlisting">
@@ -2238,19 +2241,19 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.abstract-target.name"></a><a class="indexterm" name="idm45927671285072"></a><code class="computeroutput"><span class="keyword">rule</span> name <span class="special">(</span> <span class="special">)</span></code><p>Returns the name of this target.</p>
+<a name="bbv2.reference.class.abstract-target.name"></a><a class="indexterm" name="idp725062736"></a><code class="computeroutput"><span class="keyword">rule</span> name <span class="special">(</span> <span class="special">)</span></code><p>Returns the name of this target.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.abstract-target.project"></a><a class="indexterm" name="idm45927671279392"></a><code class="computeroutput"><span class="keyword">rule</span> project <span class="special">(</span> <span class="special">)</span></code><p>Returns the <a class="link" href="reference.html#bbv2.reference.class.project-target" title="Class project-target">project</a> for this target.</p>
+<a name="bbv2.reference.class.abstract-target.project"></a><a class="indexterm" name="idp725068416"></a><code class="computeroutput"><span class="keyword">rule</span> project <span class="special">(</span> <span class="special">)</span></code><p>Returns the <a class="link" href="reference.html#bbv2.reference.class.project-target" title="Class project-target">project</a> for this target.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.abstract-target.location"></a><a class="indexterm" name="idm45927671272816"></a><code class="computeroutput"><span class="keyword">rule</span> location <span class="special">(</span> <span class="special">)</span></code><p>Returns the location where the target was declared.</p>
+<a name="bbv2.reference.class.abstract-target.location"></a><a class="indexterm" name="idp725074992"></a><code class="computeroutput"><span class="keyword">rule</span> location <span class="special">(</span> <span class="special">)</span></code><p>Returns the location where the target was declared.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.abstract-target.full-name"></a><a class="indexterm" name="idm45927671267168"></a><code class="computeroutput"><span class="keyword">rule</span> full-name <span class="special">(</span> <span class="special">)</span></code><p>Returns a user-readable name for this target.</p>
+<a name="bbv2.reference.class.abstract-target.full-name"></a><a class="indexterm" name="idp725080640"></a><code class="computeroutput"><span class="keyword">rule</span> full-name <span class="special">(</span> <span class="special">)</span></code><p>Returns a user-readable name for this target.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.abstract-target.generate"></a><a class="indexterm" name="idm45927671261424"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.abstract-target.generate"></a><a class="indexterm" name="idp725086384"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
Generates virtual targets for this abstract target using the specified
properties, unless a different value of some feature is required by the
target. This is an abstract method which must be overriden by derived
@@ -2273,7 +2276,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.class.project-target"></a>Class project-target</h4></div></div></div>
-<a class="indexterm" name="idm45927671252224"></a><pre class="programlisting">
+<a class="indexterm" name="idp725095648"></a><pre class="programlisting">
<span class="keyword">class</span> project-target <span class="special">:</span> <a class="link" href="reference.html#bbv2.reference.class.abstract-target" title="Class abstract-target">abstract-target</a> <span class="special">{</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.project-target.generate">generate</a> <span class="special">(</span> property-set <span class="special">)</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.project-target.build-dir">build-dir</a> <span class="special">(</span> <span class="special">)</span>
@@ -2298,7 +2301,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
-<a name="bbv2.reference.class.project-target.generate"></a><a class="indexterm" name="idm45927671214800"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.project-target.generate"></a><a class="indexterm" name="idp725133008"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
Overrides
<a class="link" href="reference.html#bbv2.reference.class.abstract-target.generate">abstract-target.generate</a>.
@@ -2315,26 +2318,26 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.project-target.build-dir"></a><a class="indexterm" name="idm45927671206368"></a><code class="computeroutput"><span class="keyword">rule</span> build-dir <span class="special">(</span> <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.project-target.build-dir"></a><a class="indexterm" name="idp725141440"></a><code class="computeroutput"><span class="keyword">rule</span> build-dir <span class="special">(</span> <span class="special">)</span></code><p>
Returns the root build directory of the project.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.project-target.main-target"></a><a class="indexterm" name="idm45927671200656"></a><code class="computeroutput"><span class="keyword">rule</span> main-target <span class="special">(</span> name <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.project-target.main-target"></a><a class="indexterm" name="idp725147152"></a><code class="computeroutput"><span class="keyword">rule</span> main-target <span class="special">(</span> name <span class="special">)</span></code><p>
Returns a <a class="link" href="reference.html#bbv2.reference.class.main-target" title="Class main-target">main-target</a>
class instance corresponding to <code class="literal">name</code>.
Can only be called after the project has been fully loaded.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.project-target.has-main-target"></a><a class="indexterm" name="idm45927671193296"></a><code class="computeroutput"><span class="keyword">rule</span> has-main-target <span class="special">(</span> name <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.project-target.has-main-target"></a><a class="indexterm" name="idp725154576"></a><code class="computeroutput"><span class="keyword">rule</span> has-main-target <span class="special">(</span> name <span class="special">)</span></code><p>
Returns whether a <a class="link" href="reference.html#bbv2.reference.class.main-target" title="Class main-target">main-target</a>
with the specified name exists.
Can only be called after the project has been fully loaded.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.project-target.find"></a><a class="indexterm" name="idm45927671186624"></a><code class="computeroutput"><span class="keyword">rule</span> find <span class="special">(</span> id <span class="special">:</span> no-error ? <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.project-target.find"></a><a class="indexterm" name="idp725161248"></a><code class="computeroutput"><span class="keyword">rule</span> find <span class="special">(</span> id <span class="special">:</span> no-error ? <span class="special">)</span></code><p>
Find and return the target with the specified id, treated relative to
self. Id may specify either a target or a file name with the target taking
priority. May report an error or return nothing if the target is not found
@@ -2346,7 +2349,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.class.main-target"></a>Class main-target</h4></div></div></div>
-<a class="indexterm" name="idm45927671178704"></a><pre class="programlisting">
+<a class="indexterm" name="idp725169232"></a><pre class="programlisting">
<span class="keyword">class</span> main-target <span class="special">:</span> <a class="link" href="reference.html#bbv2.reference.class.abstract-target" title="Class abstract-target">abstract-target</a> <span class="special">{</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.main-target.generate">generate</a> <span class="special">(</span> property-set <span class="special">)</span>
@@ -2362,7 +2365,7 @@ import path <span class="special">:</span> native make <span class="special">:</
represents a named top-level target in a Jamfile.
</p>
<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
-<a name="bbv2.reference.class.main-target.generate"></a><a class="indexterm" name="idm45927671154624"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.main-target.generate"></a><a class="indexterm" name="idp725193360"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
Overrides
<a class="link" href="reference.html#bbv2.reference.class.abstract-target.generate">abstract-target.generate</a>.
@@ -2386,7 +2389,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.class.basic-target"></a>Class basic-target</h4></div></div></div>
-<a class="indexterm" name="idm45927671143648"></a><pre class="programlisting">
+<a class="indexterm" name="idp725204272"></a><pre class="programlisting">
<span class="keyword">class</span> basic-target <span class="special">:</span> <a class="link" href="reference.html#bbv2.reference.class.abstract-target" title="Class abstract-target">abstract-target</a> <span class="special">{</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.basic-target.__init__">__init__</a> <span class="special">(</span> name <span class="special">:</span> project <span class="special">:</span> sources * <span class="special">:</span> requirements * <span class="special">:</span> default-build * <span class="special">:</span> usage-requirements * <span class="special">)</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.basic-target.generate">generate</a> <span class="special">(</span> property-set <span class="special">)</span>
@@ -2422,7 +2425,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.basic-target.generate"></a><a class="indexterm" name="idm45927671097296"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.basic-target.generate"></a><a class="indexterm" name="idp725250624"></a><code class="computeroutput"><span class="keyword">rule</span> generate <span class="special">(</span> property-set <span class="special">)</span></code><p>
Overrides
<a class="link" href="reference.html#bbv2.reference.class.abstract-target.generate">abstract-target.generate</a>.
@@ -2441,7 +2444,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.basic-target.construct"></a><a class="indexterm" name="idm45927671088000"></a><code class="computeroutput"><span class="keyword">rule</span> construct <span class="special">(</span> name <span class="special">:</span> source-targets * <span class="special">:</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.basic-target.construct"></a><a class="indexterm" name="idp725259920"></a><code class="computeroutput"><span class="keyword">rule</span> construct <span class="special">(</span> name <span class="special">:</span> source-targets * <span class="special">:</span> property-set <span class="special">)</span></code><p>
Constructs virtual targets for this abstract target. Returns a
usage-requirements property-set and a list of virtual
targets. Should be overriden in derived classes.
@@ -2452,7 +2455,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.class.typed-target"></a>Class typed-target</h4></div></div></div>
-<a class="indexterm" name="idm45927671080080"></a><pre class="programlisting">
+<a class="indexterm" name="idp725267840"></a><pre class="programlisting">
<span class="keyword">class</span> typed-target <span class="special">:</span> <a class="link" href="reference.html#bbv2.reference.class.basic-target" title="Class basic-target">basic-target</a> <span class="special">{</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.typed-target.__init__">__init__</a> <span class="special">(</span> name <span class="special">:</span> project <span class="special">:</span> type <span class="special">:</span> sources * <span class="special">:</span> requirements * <span class="special">:</span> default-build * <span class="special">:</span> usage-requirements * <span class="special">)</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.typed-target.type">type</a> <span class="special">(</span> <span class="special">)</span>
@@ -2495,13 +2498,13 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.typed-target.type"></a><a class="indexterm" name="idm45927671024128"></a><code class="computeroutput"><span class="keyword">rule</span> type <span class="special">(</span> <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.typed-target.type"></a><a class="indexterm" name="idp725323840"></a><code class="computeroutput"><span class="keyword">rule</span> type <span class="special">(</span> <span class="special">)</span></code><p>
Returns the <a class="link" href="reference.html#bbv2.reference.modules.type" title="type">type</a>
of the target.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.typed-target.construct"></a><a class="indexterm" name="idm45927671017600"></a><code class="computeroutput"><span class="keyword">rule</span> construct <span class="special">(</span> name <span class="special">:</span> source-targets * <span class="special">:</span> property-set <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.typed-target.construct"></a><a class="indexterm" name="idp725330368"></a><code class="computeroutput"><span class="keyword">rule</span> construct <span class="special">(</span> name <span class="special">:</span> source-targets * <span class="special">:</span> property-set <span class="special">)</span></code><p>
Implements <a class="link" href="reference.html#bbv2.reference.class.basic-target.construct">
basic-target.construct</a>. Attempts to create a target of
the correct type using generators appropriate for the given
@@ -2530,7 +2533,7 @@ import path <span class="special">:</span> native make <span class="special">:</
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.class.property-set"></a>Class property-set</h4></div></div></div>
-<a class="indexterm" name="idm45927671005248"></a><p>Class for storing a set of properties.</p>
+<a class="indexterm" name="idp725342848"></a><p>Class for storing a set of properties.</p>
<pre class="programlisting">
<span class="keyword">class</span> property-set <span class="special">{</span>
<span class="keyword">rule</span> <a class="link" href="reference.html#bbv2.reference.class.property-set.raw">raw</a> <span class="special">(</span> <span class="special">)</span>
@@ -2549,20 +2552,20 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
-<a name="bbv2.reference.class.property-set.raw"></a><a class="indexterm" name="idm45927670977616"></a><code class="computeroutput"><span class="keyword">rule</span> raw <span class="special">(</span> <span class="special">)</span></code><p>Returns a Jam list of the stored properties.</p>
+<a name="bbv2.reference.class.property-set.raw"></a><a class="indexterm" name="idp725370608"></a><code class="computeroutput"><span class="keyword">rule</span> raw <span class="special">(</span> <span class="special">)</span></code><p>Returns a Jam list of the stored properties.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.property-set.str"></a><a class="indexterm" name="idm45927670972016"></a><code class="computeroutput"><span class="keyword">rule</span> str <span class="special">(</span> <span class="special">)</span></code><p>Returns the string repesentation of the stored properties.</p>
+<a name="bbv2.reference.class.property-set.str"></a><a class="indexterm" name="idp725376208"></a><code class="computeroutput"><span class="keyword">rule</span> str <span class="special">(</span> <span class="special">)</span></code><p>Returns the string repesentation of the stored properties.</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.property-set.propagated"></a><a class="indexterm" name="idm45927670966304"></a><code class="computeroutput"><span class="keyword">rule</span> propagated <span class="special">(</span> <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.property-set.propagated"></a><a class="indexterm" name="idp725381920"></a><code class="computeroutput"><span class="keyword">rule</span> propagated <span class="special">(</span> <span class="special">)</span></code><p>
Returns a <a class="link" href="reference.html#bbv2.reference.class.property-set" title="Class property-set">property-set</a>
containing all the <a class="link" href="reference.html#bbv2.reference.features.attributes.propagated">propagated</a>
properties in this <a class="link" href="reference.html#bbv2.reference.class.property-set" title="Class property-set">property-set</a>.
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.property-set.add"></a><a class="indexterm" name="idm45927670958080"></a><code class="computeroutput"><span class="keyword">rule</span> add <span class="special">(</span> ps <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.property-set.add"></a><a class="indexterm" name="idp725390144"></a><code class="computeroutput"><span class="keyword">rule</span> add <span class="special">(</span> ps <span class="special">)</span></code><p>
Returns a new <a class="link" href="reference.html#bbv2.reference.class.property-set" title="Class property-set">
property-set</a> containing the union of the properties
in this <a class="link" href="reference.html#bbv2.reference.class.property-set" title="Class property-set">
@@ -2584,7 +2587,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.property-set.add-raw"></a><a class="indexterm" name="idm45927670947488"></a><code class="computeroutput"><span class="keyword">rule</span> add-raw <span class="special">(</span> properties * <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.property-set.add-raw"></a><a class="indexterm" name="idp725400672"></a><code class="computeroutput"><span class="keyword">rule</span> add-raw <span class="special">(</span> properties * <span class="special">)</span></code><p>
Link <a class="link" href="reference.html#bbv2.reference.class.property-set.add">
add</a>, except that it takes a list of properties
instead of a <a class="link" href="reference.html#bbv2.reference.class.property-set" title="Class property-set">
@@ -2592,7 +2595,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.property-set.refine"></a><a class="indexterm" name="idm45927670939968"></a><code class="computeroutput"><span class="keyword">rule</span> refine <span class="special">(</span> ps <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.property-set.refine"></a><a class="indexterm" name="idp725408192"></a><code class="computeroutput"><span class="keyword">rule</span> refine <span class="special">(</span> ps <span class="special">)</span></code><p>
Refines properties by overriding any non-free and non-conditional
properties for which a different value is specified in
<code class="literal">ps</code>. Returns the resulting
@@ -2600,7 +2603,7 @@ import path <span class="special">:</span> native make <span class="special">:</
</p>
</li>
<li class="listitem">
-<a name="bbv2.reference.class.property-set.get"></a><a class="indexterm" name="idm45927670932672"></a><code class="computeroutput"><span class="keyword">rule</span> get <span class="special">(</span> feature <span class="special">)</span></code><p>
+<a name="bbv2.reference.class.property-set.get"></a><a class="indexterm" name="idp725415488"></a><code class="computeroutput"><span class="keyword">rule</span> get <span class="special">(</span> feature <span class="special">)</span></code><p>
Returns all the values of <code class="literal">feature</code>.
</p>
</li>
@@ -2712,7 +2715,7 @@ exe a : a.cpp
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="bbv2.reference.buildprocess.targetpath"></a>Target Paths</h4></div></div></div>
-<a class="indexterm" name="idm45927670902000"></a><p>Several factors determine the location of a concrete
+<a class="indexterm" name="idp725446608"></a><p>Several factors determine the location of a concrete
file target. All files in a project are built under
the directory bin unless this is overridden by the build-dir project
attribute. Under bin is a path that depends on the properties
@@ -3004,7 +3007,7 @@ exe hello : hello.cpp : &lt;os&gt;NT,&lt;toolset&gt;gcc:&lt;link&gt;static ;
<p><span class="emphasis"><em>Target identifier</em></span> is used to denote a
target. The syntax is:</p>
<pre class="programlisting">
-target-id -&gt; (project-id | target-name | file-name )
+target-id -&gt; (target-name | file-name | project-id | directory-name)
| (project-id | directory-name) "//" target-name
project-id -&gt; path
target-name -&gt; path
@@ -3017,9 +3020,6 @@ directory-name -&gt; path
</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
- project id (at this point, all project ids start with slash).
- </li>
-<li class="listitem">
name of target declared in current Jamfile (note that target
names may include slash).
</li>
@@ -3027,12 +3027,18 @@ directory-name -&gt; path
a regular file, denoted by absolute name or name relative to
project's sources location.
</li>
+<li class="listitem">
+ project id (at this point, all project ids start with slash).
+ </li>
+<li class="listitem">
+ the directory of another project, denoted by absolute name
+ or name relative to the current project's location.
+ </li>
</ul></div>
<p>
- To determine the real meaning a check is made if project-id
- by the specified name exists, and then if main target of that
- name exists. For example, valid target ids might be:
+ To determine the real meaning the possible interpretations
+ are checked in this order. For example, valid target ids might be:
</p>
<pre class="screen">
@@ -3040,6 +3046,7 @@ a -- target in current project
lib/b.cpp -- regular file
/boost/thread -- project "/boost/thread"
/home/ghost/build/lr_library//parser -- target in specific project
+../boost_1_61_0 -- project in specific directory
</pre>
<p>
diff --git a/doc/html/bbv2/tasks.html b/doc/html/bbv2/tasks.html
index 06c80d1cc8..9c0ee36315 100644
--- a/doc/html/bbv2/tasks.html
+++ b/doc/html/bbv2/tasks.html
@@ -6,7 +6,7 @@
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
-<link rel="up" href="../bbv2.html" title="Chapter&#160;45.&#160;Boost.Build User Manual">
+<link rel="up" href="../bbv2.html" title="Chapter&#160;48.&#160;Boost.Build User Manual">
<link rel="prev" href="overview.html" title="Overview">
<link rel="next" href="reference.html" title="Reference">
</head>
@@ -45,7 +45,7 @@
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="bbv2.tasks.programs"></a>Programs</h3></div></div></div>
-<a class="indexterm" name="idm45927672822368"></a><p>
+<a class="indexterm" name="idp723522000"></a><p>
Programs are created using the <code class="computeroutput">exe</code> rule, which follows the
<a class="link" href="overview.html#bbv2.main-target-rule-syntax">common syntax</a>. For
example:
@@ -81,7 +81,7 @@ exe hello : hello.cpp some_library.lib /some_project//library
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="bbv2.tasks.libraries"></a>Libraries</h3></div></div></div>
-<a class="indexterm" name="idm45927672813776"></a><p>
+<a class="indexterm" name="idp723530528"></a><p>
Library targets are created using the <code class="computeroutput">lib</code> rule, which
follows the <a class="link" href="overview.html#bbv2.main-target-rule-syntax">common syntax
</a>. For example:
@@ -308,7 +308,7 @@ exe main : main.cpp static_libraries ;
files.
</p>
<h4>
-<a name="idm45927672755168"></a>Basic install</h4>
+<a name="idp723589328"></a>Basic install</h4>
<p>
For installing a built target you should use the <code class="computeroutput">install</code>
rule, which follows the <a class="link" href="overview.html#bbv2.main-target-rule-syntax">
@@ -347,7 +347,7 @@ install dist2 : hello helpers : &lt;location&gt;$(DIST) ;
variables</a>
</p>
<h4>
-<a name="idm45927672742400"></a>Installing with all dependencies</h4>
+<a name="idp723602096"></a>Installing with all dependencies</h4>
<p>
Specifying the names of all libraries to install can be boring. The
<code class="computeroutput">install</code> allows you to specify only the top-level executable
@@ -371,8 +371,8 @@ install dist : hello
otherwise, all found target will be installed.
</p>
<h4>
-<a name="idm45927672737072"></a>Preserving Directory Hierarchy</h4>
-<a class="indexterm" name="idm45927672736688"></a><p>
+<a name="idp723607488"></a>Preserving Directory Hierarchy</h4>
+<a class="indexterm" name="idp723607872"></a><p>
By default, the <code class="computeroutput">install</code> rule will strip paths from its
sources. So, if sources include <code class="filename">a/b/c.hpp</code>, the
<code class="filename">a/b</code> part will be ignored. To make the
@@ -396,7 +396,7 @@ install headers
an entire directory tree.
</p>
<h4>
-<a name="idm45927672728304"></a>Installing into Several Directories</h4>
+<a name="idp723616192"></a>Installing into Several Directories</h4>
<p>
The <a class="link" href="tasks.html#bbv2.tasks.alias" title="Alias"><code class="computeroutput">alias</code></a> rule can be
used when targets need to be installed into several directories:
@@ -410,7 +410,7 @@ install install-lib : helper : /usr/lib ;
</p>
<p>
Because the <code class="computeroutput">install</code> rule just copies targets, most free
- features <a href="#ftn.idm45927672724368" class="footnote" name="idm45927672724368"><sup class="footnote">[13]</sup></a> have no
+ features <a href="#ftn.idp723620128" class="footnote" name="idp723620128"><sup class="footnote">[13]</sup></a> have no
effect when used in requirements of the <code class="computeroutput">install</code> rule. The
only two that matter are <a class="link" href="reference.html#bbv2.builtin.features.dependency">
<code class="varname">dependency</code></a> and, on Unix, <a class="link" href="reference.html#bbv2.reference.features.dll-path"><code class="varname">dll-path</code>
@@ -499,7 +499,7 @@ rule run ( sources + : args * : input-files * : requirements * : target-name ?
target-name</code></em>.output</code>.
</p>
<p>
- <a class="indexterm" name="idm45927672693232"></a>
+ <a class="indexterm" name="idp723651392"></a>
If the <code class="literal">preserve-test-targets</code> feature has the value
<code class="literal">off</code>, then <code class="computeroutput">run</code> and the <code class="computeroutput">run-fail</code>
rules will remove the executable after running it. This somewhat decreases
@@ -553,7 +553,7 @@ unit-test helpers_test
<p>
By default, the executable is run directly. Sometimes, it is
desirable to run the executable using some helper command. You
- should use the this property to specify the name of the helper
+ should use this property to specify the name of the helper
command. For example, if you write:
</p>
<pre class="programlisting">
@@ -600,7 +600,7 @@ unit-test helpers_test
Boost.Build's virtual targets. This is higher-level than the file names that
the <code class="computeroutput">make</code> rule operates with and allows you to
create more than one target, create differently named targets depending on
- properties or use more than one tool.
+ properties, or use more than one tool.
</p>
<p>
The <code class="computeroutput">make</code> rule is used when you want to create
@@ -761,7 +761,7 @@ exe main : main.cpp pch ;
"parser.y". The latter source is converted into "parser.c" and "parser.h".
Then, if "app.cpp" includes "parser.h", Boost.Build will detect this
dependency. Moreover, since "parser.h" will be generated into a build
- directory, the path to that directory will automatically added to include
+ directory, the path to that directory will automatically be added to the include
path.
</p>
<p>
@@ -783,7 +783,7 @@ exe app : app.cpp : &lt;implicit-dependency&gt;parser ;
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="bbv2.tasks.crosscompile"></a>Cross-compilation</h3></div></div></div>
-<a class="indexterm" name="idm45927672611008"></a><p>Boost.Build supports cross compilation with the gcc and msvc
+<a class="indexterm" name="idp723733632"></a><p>Boost.Build supports cross compilation with the gcc and msvc
toolsets.</p>
<p>
When using gcc, you first need to specify your cross compiler
@@ -794,13 +794,13 @@ using gcc : arm : arm-none-linux-gnueabi-g++ ;
</pre>
<p>
After that, if the host and target os are the same, for example Linux, you can
- just request that this compiler version to be used:
+ just request that this compiler version be used:
</p>
<pre class="screen">
b2 toolset=gcc-arm
</pre>
<p>
- If you want to target different operating system from the host, you need
+ If you want to target a different operating system from the host, you need
to additionally specify the value for the <code class="computeroutput">target-os</code> feature, for
example:
</p>
@@ -815,14 +815,14 @@ b2 toolset=gcc-mingw <span class="bold"><strong>target-os=windows</strong></span
<a class="link" href="reference.html#bbv2.reference.features.target-os">target-os feature</a>.
</p>
<p>
- When using the msvc compiler, it's only possible to cross-compiler to a 64-bit system
+ When using the msvc compiler, it's only possible to cross-compile to a 64-bit system
on a 32-bit host. Please see <a class="xref" href="reference.html#v2.reference.tools.compiler.msvc.64" title="64-bit support">the section called &#8220;64-bit support&#8221;</a> for
details.
</p>
</div>
<div class="footnotes">
<br><hr style="width:100; text-align:left;margin-left: 0">
-<div id="ftn.idm45927672724368" class="footnote"><p><a href="#idm45927672724368" class="para"><sup class="para">[13] </sup></a>see the definition of "free" in <a class="xref" href="reference.html#bbv2.reference.features.attributes" title="Feature Attributes">the section called &#8220;Feature Attributes&#8221;</a>.</p></div>
+<div id="ftn.idp723620128" class="footnote"><p><a href="#idp723620128" class="para"><sup class="para">[13] </sup></a>see the definition of "free" in <a class="xref" href="reference.html#bbv2.reference.features.attributes" title="Feature Attributes">the section called &#8220;Feature Attributes&#8221;</a>.</p></div>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
diff --git a/doc/html/bbv2/tutorial.html b/doc/html/bbv2/tutorial.html
index c96f99e872..94172bf219 100644
--- a/doc/html/bbv2/tutorial.html
+++ b/doc/html/bbv2/tutorial.html
@@ -6,8 +6,8 @@
<link rel="stylesheet" href="../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
-<link rel="up" href="../bbv2.html" title="Chapter&#160;45.&#160;Boost.Build User Manual">
-<link rel="prev" href="../bbv2.html" title="Chapter&#160;45.&#160;Boost.Build User Manual">
+<link rel="up" href="../bbv2.html" title="Chapter&#160;48.&#160;Boost.Build User Manual">
+<link rel="prev" href="../bbv2.html" title="Chapter&#160;48.&#160;Boost.Build User Manual">
<link rel="next" href="overview.html" title="Overview">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -31,7 +31,7 @@
<dt><span class="section"><a href="tutorial.html#bbv2.tutorial.properties">Properties</a></span></dt>
<dt><span class="section"><a href="tutorial.html#bbv2.tutorial.hierarchy">Project Hierarchies</a></span></dt>
<dt><span class="section"><a href="tutorial.html#bbv2.tutorial.libs">Dependent Targets</a></span></dt>
-<dt><span class="section"><a href="tutorial.html#bbv2.tutorial.linkage">Static and shared libaries</a></span></dt>
+<dt><span class="section"><a href="tutorial.html#bbv2.tutorial.linkage">Static and shared libraries</a></span></dt>
<dt><span class="section"><a href="tutorial.html#bbv2.tutorial.conditions">Conditions and alternatives</a></span></dt>
<dt><span class="section"><a href="tutorial.html#bbv2.tutorial.prebuilt">Prebuilt targets</a></span></dt>
</dl></div>
@@ -204,8 +204,8 @@ exe hello
requirements, the target requirements usually override (or, in the case
of &#8220;free&#8221;&#8221; features like
<code class="varname">&lt;include&gt;</code>,
- <a href="#ftn.idm45927673411792" class="footnote" name="idm45927673411792"><sup class="footnote">[11]</sup></a>
- augments) the build request.
+ <a href="#ftn.idp722932160" class="footnote" name="idp722932160"><sup class="footnote">[11]</sup></a>
+ augment) the build request.
</p>
<div class="tip"><table border="0" summary="Tip">
<tr>
@@ -316,7 +316,7 @@ top/
in its requirements, then all of its subprojects will have it
in their requirements, too. Of course, any project can add
- include paths to those specified by its parents. <a href="#ftn.idm45927673383648" class="footnote" name="idm45927673383648"><sup class="footnote">[12]</sup></a>
+ include paths to those specified by its parents. <a href="#ftn.idp722960368" class="footnote" name="idp722960368"><sup class="footnote">[12]</sup></a>
More details can be found in
<a class="xref" href="overview.html#bbv2.overview.projects" title="Projects">the section called &#8220;Projects&#8221;</a>.
</p>
@@ -423,7 +423,7 @@ lib foo <span class="special">:</span> foo.cpp <span class="special">;</span></p
<p>
Usage requirements are applied not to the target being declared but to its
- dependants. In this case, <code class="literal">&lt;include&gt;.</code> will be
+ dependents. In this case, <code class="literal">&lt;include&gt;.</code> will be
applied to all targets that directly depend on <code class="filename">foo</code>.
</p>
<p>
@@ -459,7 +459,7 @@ exe app : app.cpp /library-example/foo//bar ;</pre>
</tr>
<tr><td align="left" valign="top">
<p>If you want all applications in some project to link to a certain
- library, you can avoid having to specify it directly the sources of
+ library, you can avoid having to specify directly the sources of
every target by using the <code class="varname">&lt;library&gt;</code> property.
For example, if <code class="filename">/boost/filesystem//fs</code> should be
linked to all applications in your project, you can add
@@ -475,7 +475,7 @@ project
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
-<a name="bbv2.tutorial.linkage"></a>Static and shared libaries</h3></div></div></div>
+<a name="bbv2.tutorial.linkage"></a>Static and shared libraries</h3></div></div></div>
<p>
Libraries can be either <span class="emphasis"><em>static</em></span>, which means they are
included in executable files that use them, or <span class="emphasis"><em>shared</em></span>
@@ -670,8 +670,8 @@ exe app <span class="special">:</span> app.cpp ../util/lib2//lib2 <span class="s
<p>
As with any target, the alternative selected depends on the properties
- propagated from <code class="filename">lib2</code>'s dependants. If we build the
- release and debug versions of <code class="filename">app</code> will be linked
+ propagated from <code class="filename">lib2</code>'s dependents. If we build the
+ release and debug versions of <code class="filename">app</code> it will be linked
with <code class="filename">lib2_release.a</code> and <code class="filename">lib2_debug.a
</code>, respectively.
</p>
@@ -713,10 +713,10 @@ lib pythonlib <span class="special">:</span> <span class="special">:</span> &lt;
</div>
<div class="footnotes">
<br><hr style="width:100; text-align:left;margin-left: 0">
-<div id="ftn.idm45927673411792" class="footnote"><p><a href="#idm45927673411792" class="para"><sup class="para">[11] </sup></a>
+<div id="ftn.idp722932160" class="footnote"><p><a href="#idp722932160" class="para"><sup class="para">[11] </sup></a>
See <a class="xref" href="reference.html#bbv2.reference.features.attributes" title="Feature Attributes">the section called &#8220;Feature Attributes&#8221;</a>
</p></div>
-<div id="ftn.idm45927673383648" class="footnote"><p><a href="#idm45927673383648" class="para"><sup class="para">[12] </sup></a>Many
+<div id="ftn.idp722960368" class="footnote"><p><a href="#idp722960368" class="para"><sup class="para">[12] </sup></a>Many
features will be overridden,
rather than added-to, in subprojects. See <a class="xref" href="reference.html#bbv2.reference.features.attributes" title="Feature Attributes">the section called &#8220;Feature Attributes&#8221;</a> for more
information</p></div>