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.html144
1 files changed, 143 insertions, 1 deletions
diff --git a/doc/html/bbv2/reference.html b/doc/html/bbv2/reference.html
index 6d08f5101e..337abe970a 100644
--- a/doc/html/bbv2/reference.html
+++ b/doc/html/bbv2/reference.html
@@ -626,6 +626,57 @@ path-constant DATA : data/a.txt ;
under <span class="guimenu">Configuration Properties</span> &#8594; <span class="guisubmenu">Manifest Tool</span> &#8594; <span class="guisubmenu">Input and Output</span> &#8594; <span class="guimenuitem">Additional Manifest Files</span>.
</p>
</dd>
+<dt>
+<a name="bbv2.reference.features.relevant"></a><span class="term"><code class="literal">relevant</code></span>
+</dt>
+<dd>
+<a class="indexterm" name="id-1.4.4.8.4.4.28.2.1"></a><a class="indexterm" name="id-1.4.4.8.4.4.28.2.2"></a><p>
+ <span class="bold"><strong>Allowed values:</strong></span> the name of any feature.
+ </p>
+<p>
+ This feature is used to indicate which other features are relevant for
+ a given target. It is usually not necessary to manage it explicitly,
+ as Boost.Build can deduce it in most cases. Features which are not
+ relevant will not affect target paths, and will not cause conflicts.
+ </p>
+<p>
+ A feature will be considered relevant if any of the following are true
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">It is referenced by <code class="literal">toolset.flags</code> or <code class="literal">toolset.uses-features</code>
+</li>
+<li class="listitem">It is used by the requirements of a generator</li>
+<li class="listitem">It is a subfeature of a relevant feature</li>
+<li class="listitem">It has a subfeature which is relevant</li>
+<li class="listitem">It is a composite feature, and any composed feature is relevant</li>
+<li class="listitem">It affects target alternative selection for a main target</li>
+<li class="listitem">It is a propagated feature and is relevant for any dependency</li>
+<li class="listitem">It is relevant for any dependency created by the same main target</li>
+<li class="listitem">It is used in the condition of a conditional property and the corresponding value is relevant</li>
+<li class="listitem">It is explicitly named as relevent</li>
+</ul></div>
+<p>
+ </p>
+<p>Relevant features cannot be automatically deduced in the following cases:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">Indirect conditionals. Solution: return properties of the form
+ <code class="literal">&lt;relevant&gt;result-feature:&lt;relevant&gt;condition-feature</code><div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/src/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>This isn't really a <a class="link" href="reference.html#bbv2.reference.variants.propcond" title="Conditional properties">conditional</a>,
+ although for most purposes it functions like one. In particular, it does not support
+ multiple comma-separated elements in the condition, and it does work correctly even
+ in contexts where conditional properties are not allowed</p></td></tr>
+</table></div>
+</li>
+<li class="listitem"><p>Action rules that read properties. Solution: add <code class="literal">toolset.uses-features</code>
+ to tell Boost.Build that the feature is actually used.</p></li>
+<li class="listitem"><p>Generators and targets that manipulate property-sets directly.
+ Solution: set <code class="literal">&lt;relevant&gt;</code> manually.</p></li>
+</ul></div>
+</dd>
</dl></div>
</div>
<div class="section">
@@ -1281,6 +1332,7 @@ using vacpp ;</pre>
<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>
<dt><span class="section"><a href="reference.html#bbv2.reference.tools.libraries.bzip2">bzip2</a></span></dt>
+<dt><span class="section"><a href="reference.html#bbv2.reference.tools.libraries.python">Python</a></span></dt>
</dl></div>
<p>Boost.Build provides special support for some
third-party C++ libraries, documented below.</p>
@@ -1413,6 +1465,95 @@ using bzip2 : 1.0.6 : &lt;source&gt;C:/Devel/src/bzip2-1.0.6 : &lt;toolset&gt;ms
using bzip2 : 1.0.6 : : &lt;toolset&gt;gcc ;
</pre>
</div>
+<div class="section">
+<div class="titlepage"><div><div><h5 class="title">
+<a name="bbv2.reference.tools.libraries.python"></a>Python</h5></div></div></div>
+<a class="indexterm" name="id-1.4.4.8.5.9.6.2"></a><p>Provides support for the
+ <a href="http://www.python.org" target="_top">python</a> language
+ environment to be linked in as a library.</p>
+<p>python can be initialized using the following syntax</p>
+<pre class="programlisting">
+using python : [<span class="optional"><em class="replaceable"><code>version</code></em></span>] : [<span class="optional"><em class="replaceable"><code>command-or-prefix</code></em></span>] : [<span class="optional"><em class="replaceable"><code>includes</code></em></span>] : [<span class="optional"><em class="replaceable"><code>libraries</code></em></span>] : [<span class="optional"><em class="replaceable"><code>conditions</code></em></span>] : [<span class="optional"><em class="replaceable"><code>extension-suffix</code></em></span>] ;
+ </pre>
+<p>Options for using python:</p>
+<div class="variablelist"><dl class="variablelist">
+<dt><span class="term"><code class="literal">version</code></span></dt>
+<dd><p>the version of Python to use. Should be in Major.Minor
+ format, for example 2.3. Do not include the subminor version.
+ </p></dd>
+<dt><span class="term"><code class="literal">command-or-prefix</code></span></dt>
+<dd><p>Preferably, a command that invokes a Python interpreter.
+ Alternatively, the installation prefix for Python libraries
+ and includes. If empty, will be guessed from the version, the
+ platform's installation patterns, and the python executables
+ that can be found in PATH.</p></dd>
+<dt><span class="term"><code class="literal">includes</code></span></dt>
+<dd><p>the include path to Python headers. If empty, will be
+ guessed.</p></dd>
+<dt><span class="term"><code class="literal">libraries</code></span></dt>
+<dd><p>the path to Python library binaries. If empty, will
+ be guessed. On MacOS/Darwin, you can also pass the path of the
+ Python framework.</p></dd>
+<dt><span class="term"><code class="literal">conditions</code></span></dt>
+<dd><p>if specified, should be a set of properties that are
+ matched against the build configuration when Boost.Build
+ selects a Python configuration to use.</p></dd>
+<dt><span class="term"><code class="literal">extension-suffix</code></span></dt>
+<dd><p>A string to append to the name of extension modules
+ before the true filename extension. Ordinarily we would just
+ compute this based on the value of the &lt;python-debugging&gt;
+ feature. However ubuntu's python-dbg package uses the windows
+ convention of appending _d to debug-build extension modules. We
+ have no way of detecting ubuntu, or of probing python for the
+ "_d" requirement, and if you configure and build python using
+ --with-pydebug, you'll be using the standard *nix convention.
+ Defaults to "" (or "_d" when targeting windows and
+ &lt;python-debugging&gt; is set).</p></dd>
+</dl></div>
+<p>Examples:</p>
+<pre class="programlisting">
+# Find python in the default system location
+using python ;
+# 2.7
+using python : 2.7 ;
+# 3.5
+using python : 3.5 ;
+
+# On ubuntu 16.04
+using python
+: 2.7 # version
+: # Interpreter/path to dir
+: /usr/include/python2.7 # includes
+: /usr/lib/x86_64-linux-gnu # libs
+: # conditions
+;
+
+using python
+: 3.5 # version
+: # Interpreter/path to dir
+: /usr/include/python3.5 # includes
+: /usr/lib/x86_64-linux-gnu # libs
+: # conditions
+;
+
+# On windows
+using python
+: 2.7 # version
+: C:\\Python27-32\\python.exe # Interperter/path to dir
+: C:\\Python27-32\\include # includes
+: C:\\Python27-32\\libs # libs
+: &lt;address-model&gt;32 &lt;address-model&gt; # conditions - both 32 and unspecified
+;
+
+using python
+: 2.7 # version
+: C:\\Python27-64\\python.exe # Interperter/path to dir
+: C:\\Python27-64\\include # includes
+: C:\\Python27-64\\libs # libs
+: &lt;address-model&gt;64 # conditions
+;
+</pre>
+</div>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
@@ -2783,7 +2924,8 @@ exe a : a.cpp
the directory bin unless this is overridden by the build-dir project
attribute. Under bin is a path that depends on the properties
used to build each target. This path is uniquely determined by
- all non-free, non-incidental properties. For example,
+ all <a class="link" href="reference.html#bbv2.reference.features.relevant">relevant</a>
+ non-free, non-incidental properties. For example,
given a property set containing:
<code class="computeroutput">&lt;toolset&gt;gcc &lt;toolset-gcc:version&gt;4.6.1 &lt;variant&gt;debug
&lt;warnings&gt;all &lt;define&gt;_DEBUG &lt;include&gt;/usr/local/include