summaryrefslogtreecommitdiff
path: root/doc/html/bbv2/reference.html
diff options
context:
space:
mode:
Diffstat (limited to 'doc/html/bbv2/reference.html')
-rw-r--r--doc/html/bbv2/reference.html267
1 files changed, 137 insertions, 130 deletions
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>