blob: 2a7d7c98c7aed6958be104a2f3ada30e6e30c41c [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
<section id="bbv2.reference.class.typed-target">
<title>Class typed-target</title>
<indexterm>
<primary>typed-target</primary>
</indexterm>
<programlisting language="jam">
class typed-target : <link linkend="bbv2.reference.class.basic-target">basic-target</link> {
rule <link linkend="bbv2.reference.class.typed-target.__init__">__init__</link> ( name : project : type : sources * : requirements * : default-build * : usage-requirements * )
rule <link linkend="bbv2.reference.class.typed-target.type">type</link> ( )
rule <link linkend="bbv2.reference.class.typed-target.construct">construct</link> ( name : source-targets * : property-set )
# Methods inherited from <link linkend="bbv2.reference.class.abstract-target">abstract-target</link>
rule <link linkend="bbv2.reference.class.abstract-target.name">name</link> ( )
rule <link linkend="bbv2.reference.class.abstract-target.project">project</link> ( )
rule <link linkend="bbv2.reference.class.abstract-target.location">location</link> ( )
rule <link linkend="bbv2.reference.class.abstract-target.full-name">full-name</link> ( )
# Methods inherited from <link linkend="bbv2.reference.class.basic-target">basic-target</link>
rule <link linkend="bbv2.reference.class.basic-target.generate">generate</link> ( property-set )
}
</programlisting>
<para>
<link linkend="bbv2.reference.class.typed-target">typed-target</link>
is the most common kind of target alternative. Rules for creating
typed targets are defined automatically for each type.
</para>
<orderedlist>
<listitem id="bbv2.reference.class.typed-target.__init__">
<code language="jam">rule __init__ ( name : project : type : sources * : requirements * : default-build * : usage-requirements * )</code>
<para>
<variablelist>
<varlistentry>
<term><literal>name</literal></term>
<listitem><para>The name of the target</para></listitem>
</varlistentry>
<varlistentry>
<term><literal>project</literal></term>
<listitem>
<para>
The <link linkend="bbv2.reference.class.project-target">project</link>
in which the target is declared.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><literal>type</literal></term>
<listitem>
<para>
The <link linkend="bbv2.reference.modules.type">type</link>
of the target.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</listitem>
<listitem id="bbv2.reference.class.typed-target.type">
<indexterm zone="bbv2.reference.class.typed-target.type">
<primary>type</primary>
<secondary>Typed Target Method</secondary>
</indexterm>
<code language="jam">rule type ( )</code>
<para>
Returns the <link linkend="bbv2.reference.modules.type">type</link>
of the target.
</para>
</listitem>
<listitem id="bbv2.reference.class.typed-target.construct">
<indexterm zone="bbv2.reference.class.typed-target.construct">
<primary>construct</primary>
<secondary>Typed Target Method</secondary>
</indexterm>
<code language="jam">rule construct ( name : source-targets * : property-set )</code>
<para>
Implements <link linkend="bbv2.reference.class.basic-target.construct">
basic-target.construct</link>. Attempts to create a target of
the correct type using generators appropriate for the given
<link linkend="bbv2.reference.class.property-set">property-set</link>.
Returns a <link linkend="bbv2.reference.class.property-set">
property-set</link> containing the usage requirements
and a list of virtual targets.
<note>
<para>
This function is invoked automatically by
<link linkend="bbv2.reference.class.basic-target.generate">basic-target.generate</link>
and should not be called directly by users.
</para>
</note>
</para>
</listitem>
</orderedlist>
</section>