From d9ec475d945d3035377a0d89ed42e382d8988891 Mon Sep 17 00:00:00 2001
From: DongHun Kwak 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.
@@ -605,7 +605,7 @@ path-constant DATA : data/a.txt ;
Allowed values: on, off.
This feature is specific to the msvc toolset (see
@@ -618,7 +618,7 @@ path-constant DATA : data/a.txt ;
This feature is specific to the msvc toolset (see
+ This feature is specific to the msvc toolset (see
the section called “Microsoft Visual C++”),
and controls which manifest files should be embedded inside
executables and shared libraries. This
@@ -633,8 +633,8 @@ path-constant DATA : data/a.txt ;
Builtin tools Boost.Build comes with support for a large number of C++ compilers,
and other tools. This section documents how to use those tools.
+
variant
embed-manifest
embed-manifest-file
version
be either windres
for msvc resource compiler,
or rc
for borland's resource compiler.
address-model=64
, and the instruction-set
@@ -740,7 +740,7 @@ using gcc : [version
to that of the gcc module.
-
+
The darwin toolset can generate so called "fat"
binaries—binaries that can run support more than one
architecture, or address mode. To build a binary that can run both
@@ -850,7 +850,7 @@ using msvc : [ Starting with version 8.0, Microsoft Visual Studio can
+ 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
@@ -897,7 +897,7 @@ using msvc : [
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
@@ -1226,7 +1226,7 @@ using sun : [ Specifies additional command line options that will be
passed to the linker. The STLport library
+ The STLport library
is an alternative implementation of C++ runtime library. Boost.Build
supports using that library on Windows platfrom. Linux is
hampered by different naming of libraries in each STLport
@@ -1290,7 +1290,7 @@ using stlport : [ Provides support for the
zlib library. zlib
can be configured either to use precompiled binaries or to
build the library from source. To use xsltproc, you first need to configure it using the following syntax: To use xsltproc, you first need to configure it using the following syntax: To use boostbook, you first need to configure it using the following syntax: To use boostbook, you first need to configure it using the following syntax: To use doxygen, you first need to configure it using the following syntax: To use doxygen, you first need to configure it using the following syntax: The quickbook module provides a generator to convert from
+ The quickbook module provides a generator to convert from
Quickbook to BoostBook XML. To use quickbook, you first need to configure it using the following syntax: The fop module provides generators to convert from
+ The fop module provides generators to convert from
XSL formatting objects to Postscript and PDF. To use fop, you first need to configure it using the following syntax:
The Returns the filesystem binding of the given module. Returns the filesystem binding of the given module. For example, a module can get its own location with:
Sets the module-local value of a variable. Sets the module-local value of a variable. For example, to set a variable in the global module:
Returns the module-local value of a variable. Returns the module-local value of a variable.
For example, to read a variable from the global module:
Call the given rule locally in the given module. Use
+ 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
@@ -1678,7 +1678,7 @@ using fop : [ Load the indicated module if it is not already loaded. Load the indicated module if it is not already loaded. Name of module to load. Load the indicated module and import rule names into the
+ Load the indicated module and import rule names into the
current module. Any members of Define exported copies in Define exported copies in
Performs various path manipulations. Paths are always in a 'normalized'
representation. In it, a path may be either:
@@ -1753,25 +1753,25 @@ import path : native make :
Converts the native path into normalized form. Converts the native path into normalized form. Builds the native representation of the path. Builds the native representation of the path. Tests if a path is rooted. Tests if a path is rooted. Tests if a path has a parent. Tests if a path has a parent. Returns the path without any directory components. Returns the path without any directory components. Returns the parent directory of the path. If no parent exists, an error is issued. Returns the parent directory of the path. If no parent exists, an error is issued.
Returns
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.
If Returns the current working directory. Returns the current working directory.
+
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.
@@ -1820,7 +1820,7 @@ import path : native make :
+
Recursive version of glob.
Builds the glob of files while also searching in
the subdirectories of the given roots. An optional set of exclusion patterns
@@ -1830,10 +1830,10 @@ import path : native make :
Returns true if the specified file exists. Returns true if the specified file exists.
+
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
+
Search for
+
Assuming Returns the minimal path to path2 that is relative path1. Returns the minimal path to path2 that is relative path1.
Returns the list of paths which are used by the operating system for
looking up programs.
Creates a directory and all parent directories that do not
already exist.
Contains rules for string processing using regular expressions.
Returns a list of the following substrings:
+ Returns a list of the following substrings:
from beginning till the first occurrence of
@@ -1942,34 +1942,34 @@ import path : native make :
Returns the concatenated results of applying
+ Returns the concatenated results of applying
regex.split
to every element of the list using the separator pattern. Match Match Matches all elements of Matches all elements of Escapes all of the characters in Escapes all of the characters in Replaces occurrences of a match string in a given string and
+ Replaces occurrences of a match string in a given string and
returns the new string. The match string can be a regex expression. Replaces occurrences of a match string in a given list of strings
+ 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.
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
@@ -1990,50 +1990,50 @@ import path : native make :
Return the elements Return the elements Return a new sequence consisting of
+ Return a new sequence consisting of
Returns the elements of Returns the elements of Insertion-sort Insertion-sort Merge two ordered sequences using the BinaryPredicate
+ Merge two ordered sequences using the BinaryPredicate
Join the elements of Join the elements of Find the length of any sequence. Find the length of any sequence. Removes duplicates from Removes duplicates from Returns the maximum number in Returns the maximum number in Returns all of Returns all of
Deals with target type declaration and defines target class which supports
typed targets.
+
Registers a target type, possible derived from a
+
Specifies that files with suffix from Returns true iff type has been registered. Returns true iff type has been registered. Issues an error if Issues an error if Sets a scanner class that will be used for this type. Sets a scanner class that will be used for this type.
+
Returns a scanner instance appropriate to
Returns a base type for the given type or nothing in case the given
type is not derived.
Returns the given type and all of its base types in order of
their distance from type.
Returns the given type and all of its derived types in order
of their distance from type.
+
Returns true if
+
Sets a file suffix to be used when generating a target of
+
Change the suffix previously registered for this type/properties
combination. If suffix is not yet specified, sets it.
+
Returns the suffix used when generating a file of
+
Sets a target prefix that should be used when generating targets of
+
Change the prefix previously registered for this type/properties
combination. If prefix is not yet specified, sets it.
+
Returns the prefix used when generating a file of
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.
@@ -2189,7 +2189,7 @@ import path : native make :
Base class for all abstract targets.
Returns the name of this target. Returns the name of this target. Returns the project for this target. Returns the project for this target. Returns the location where the target was declared. Returns the location where the target was declared. Returns a user-readable name for this target. Returns a user-readable name for this target.
+
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
@@ -2261,7 +2261,7 @@ import path : native make :
+
Overrides
abstract-target.generate.
@@ -2303,26 +2303,26 @@ import path : native make :
Returns the root build directory of the project.
Returns a main-target
class instance corresponding to
+
Returns whether a main-target
with the specified name exists.
Can only be called after the project has been fully loaded.
+
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
@@ -2334,7 +2334,7 @@ import path : native make :
+
Overrides
abstract-target.generate.
@@ -2374,7 +2374,7 @@ import path : native make :
+
Overrides
abstract-target.generate.
@@ -2429,7 +2429,7 @@ import path : native make :
+
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.
@@ -2440,7 +2440,7 @@ import path : native make :
Returns the type
of the target.
+
Implements
basic-target.construct. Attempts to create a target of
the correct type using generators appropriate for the given
@@ -2518,7 +2518,7 @@ import path : native make :
Class for storing a set of properties. Class for storing a set of properties. Returns a Jam list of the stored properties. Returns a Jam list of the stored properties. Returns the string repesentation of the stored properties. Returns the string repesentation of the stored properties.
Returns a property-set
containing all the propagated
properties in this property-set.
Returns a new
property-set containing the union of the properties
in this
@@ -2572,7 +2572,7 @@ import path : native make :
+
Link
add, except that it takes a list of properties
instead of a
@@ -2580,7 +2580,7 @@ import path : native make :
Refines properties by overriding any non-free and non-conditional
properties for which a different value is specified in
Returns all the values of Several factors determine the location of a concrete
+ Several factors determine the location of a concrete
file target. All files in a project are built under
the directory bin unless this is overriden by the build-dir project
attribute. Under bin is a path that depends on the properties
--
cgit v1.2.3
version
-version
-version
address-model=64
property.
@@ -1251,7 +1251,7 @@ using vacpp ;
version
-
using xsltproc : [
@@ -1402,7 +1402,7 @@ rule xslt-dir ( target : source stylesheet : properties * : dirname )
xsltproc
] ;
using boostbook : [
@@ -1456,7 +1456,7 @@ rule boostbook ( target-name : sources * : requirements * : default-build * )
docbook-xsl-dir
] : [docbook-dtd-dir
] : [boostbook-dir
] ;
using doxygen : [
@@ -1515,7 +1515,7 @@ rule doxygen ( target : sources * : requirements * : default-build * : usage-req
name
] ;
@@ -1531,7 +1531,7 @@ using quickbook : [
command<
@@ -1568,7 +1568,7 @@ using fop : [
fop-command
-
modules
module defines basic functionality
for handling modules.
fop-command
rule binding ( module-name )
rule binding ( module-name )
me = [ modules.binding $(__name__) ] ;
@@ -1626,7 +1626,7 @@ using fop : [fop-command
rule poke ( module-name ? : variables + : value * )
rule poke ( module-name ? : variables + : value * )
modules.poke : ZLIB_INCLUDE : /usr/local/include ;
@@ -1634,7 +1634,7 @@ using fop : [fop-command
rule peek ( module-name ? : variables + )
rule peek ( module-name ? : variables + )
fop-command
rule call-in ( module-name ? : rule-name args * : * )
rule call-in ( module-name ? : rule-name args * : * )
fop-command
rule load ( module-name : filename ? : search * )
rule load ( module-name : filename ? : search * )
module-name
fop-command
rule import ( module-names + : rules-opt * : rename-opt * )
rule import ( module-names + : rules-opt * : rename-opt * )
rules-opt
will be
available without qualification in the caller's module. Any
members of rename-opt
will be taken as the names
@@ -1723,7 +1723,7 @@ import path : native make :
rule clone-rules ( source-module target-module )
$(target-module)
+rule clone-rules ( source-module target-module )
$(target-module)
of all rules exported from $(source-module)
. Also
make them available in the global module with qualification,
so that it is just as though the rules were defined originally
@@ -1734,7 +1734,7 @@ import path : native make :
rule make ( native )
rule make ( native )
rule native ( path )
rule native ( path )
rule is-rooted ( path )
rule is-rooted ( path )
rule has-parent ( path )
rule has-parent ( path )
rule basename ( path )
rule basename ( path )
rule parent ( path )
rule parent ( path )
rule reverse ( path )
path2
such that
[ join path path2 ] = "."
.
The path may not contain ".."
@@ -1779,23 +1779,23 @@ import path : native make :
rule join ( elements + )
rule root ( path root )
path
is relative, it is rooted at
root
. Otherwise, it is unchanged.
rule pwd ( )
rule pwd ( )
rule glob ( dirs * : patterns + : exclude-patterns * )
rule glob ( dirs * : patterns + : exclude-patterns * )
rule glob-tree ( roots * : patterns + : exclude-patterns * )
rule glob-tree ( roots * : patterns + : exclude-patterns * )
rule exists ( file )
rule exists ( file )
rule all-parents ( path : upper_limit ? : cwd ? )
rule all-parents ( path : upper_limit ? : cwd ? )
upper_limit
is specified, directories above it
@@ -1841,7 +1841,7 @@ import path : native make :
rule glob-in-parents ( dir : patterns + : upper-limit ? )
rule glob-in-parents ( dir : patterns + : upper-limit ? )
patterns
in parent directories
of dir
, up to and including
upper_limit
, if it is specified, or
@@ -1849,23 +1849,23 @@ import path : native make :
rule relative ( child parent : no-error ? )
rule relative ( child parent : no-error ? )
child
is a subdirectory of
parent
, return the relative path from
parent
to child
.
rule relative-to ( path1 path2 )
rule relative-to ( path1 path2 )
rule programs-path ( )
rule makedirs ( path )
@@ -1924,7 +1924,7 @@ import path : native make :
rule split ( string separator )
rule split ( string separator )
rule split-list ( list * : separator )
rule split-list ( list * : separator )
rule match ( pattern : string : indices * )
string
against
+rule match ( pattern : string : indices * )
string
against
pattern
, and return the elements
indicated by indices
.
rule transform ( list * : pattern : indices * )
list
against
+rule transform ( list * : pattern : indices * )
list
against
the pattern
and returns a list of elements
indicated by indices
of all successful
matches. If indices
is omitted returns a list
of first parenthesized groups of all successful matches.rule escape ( string : symbols : escape-symbol )
symbols
+rule escape ( string : symbols : escape-symbol )
symbols
using the escape symbol escape-symbol
for
the given string, and returns the escaped string.rule replace ( string match replacement )
rule replace ( string match replacement )
rule replace-list ( list * : match : replacement )
rule replace-list ( list * : match : replacement )
rule filter ( predicate + : sequence * )
e
of
+rule filter ( predicate + : sequence * )
e
of
$(sequence)
for which
[ $(predicate) e ]
has a non-null value.
rule transform ( function + : sequence * )
rule transform ( function + : sequence * )
[ $(function) $(e) ]
for each element
e
of $(sequence)
.
rule reverse ( s * )
s
in
+rule reverse ( s * )
s
in
reverse order.rule insertion-sort ( s * : ordered * )
s
using the
+rule insertion-sort ( s * : ordered * )
s
using the
BinaryPredicate ordered
.rule merge ( s1 * : s2 * : ordered * )
rule merge ( s1 * : s2 * : ordered * )
ordered
.rule join ( s * : joint ? )
s
into one
+rule join ( s * : joint ? )
s
into one
long string. If joint
is supplied, it
is used as a separator.rule length ( s * )
rule length ( s * )
rule unique ( list * : stable ? )
list
.
+rule unique ( list * : stable ? )
list
.
If stable
is passed, then the order
of the elements will be unchanged.rule max-element ( elements + : ordered ? )
elements
.
+rule max-element ( elements + : ordered ? )
elements
.
Uses ordered
for comparisons or
numbers.less
if none is provided.rule select-highest-ranked ( elements * : ranks * )
elements
for which
+rule select-highest-ranked ( elements * : ranks * )
elements
for which
the corresponding element in the parallel list
rank
is equal to the maximum value in
rank
.
rule register ( type : suffixes * : base-type ? )
rule register ( type : suffixes * : base-type ? )
base-type
. Providing a list
of suffixes here is a shortcut for separately calling the
@@ -2060,7 +2060,7 @@ import path : native make :
rule register-suffixes ( suffixes + : type )
rule register-suffixes ( suffixes + : type )
suffixes
be recognized as targets of type type
.
Issues an error if a different type is already specified for any
@@ -2068,47 +2068,47 @@ import path : native make :
rule registered ( type )
rule registered ( type )
rule validate ( type )
type
is unknown.rule validate ( type )
type
is unknown.rule set-scanner ( type : scanner )
rule set-scanner ( type : scanner )
rule get-scanner ( type : property-set )
rule get-scanner ( type : property-set )
type
and property-set
.
rule base ( type )
rule all-bases ( type )
rule all-derived ( type )
rule is-derived ( type base )
rule is-derived ( type base )
type
is equal to
base
or has base
as its direct or indirect base.
rule set-generated-target-suffix ( type : properties * : suffix )
rule set-generated-target-suffix ( type : properties * : suffix )
type
with the
specified properties. Can be called with no properties if no suffix has
already been specified for the type
. The suffix
parameter can be an empty
@@ -2125,19 +2125,19 @@ import path : native make :
rule change-generated-target-suffix ( type : properties * : suffix )
rule change-generated-target-suffix ( type : properties * : suffix )
rule generated-target-suffix ( type : property-set )
rule generated-target-suffix ( type : property-set )
type
with the given properties.
rule set-generated-target-prefix ( type : properties * : prefix )
rule set-generated-target-prefix ( type : properties * : prefix )
type
with the specified properties. Can
be called with empty properties if no prefix for
@@ -2154,19 +2154,19 @@ import path : native make :
rule change-generated-target-prefix ( type : properties * : prefix )
rule change-generated-target-prefix ( type : properties * : prefix )
rule generated-target-prefix ( type : property-set )
rule generated-target-prefix ( type : property-set )
type
with the given properties.
rule type ( filename )
@@ -2226,19 +2226,19 @@ import path : native make :
rule name ( )
rule name ( )
rule project ( )
rule project ( )
rule location ( )
rule location ( )
rule full-name ( )
rule full-name ( )
rule generate ( property-set )
rule generate ( property-set )
+
class project-target : abstract-target {
rule generate ( property-set )
rule build-dir ( )
@@ -2286,7 +2286,7 @@ import path : native make :
rule generate ( property-set )
rule generate ( property-set )
rule build-dir ( )
rule main-target ( name )
name
.
Can only be called after the project has been fully loaded.
rule has-main-target ( name )
rule has-main-target ( name )
rule find ( id : no-error ? )
rule find ( id : no-error ? )
+
class main-target : abstract-target {
rule generate ( property-set )
@@ -2350,7 +2350,7 @@ import path : native make :
represents a named top-level target in a Jamfile.
rule generate ( property-set )
rule generate ( property-set )
+
class basic-target : abstract-target {
rule __init__ ( name : project : sources * : requirements * : default-build * : usage-requirements * )
rule generate ( property-set )
@@ -2410,7 +2410,7 @@ import path : native make :
rule generate ( property-set )
rule generate ( property-set )
rule construct ( name : source-targets * : property-set )
rule construct ( name : source-targets * : property-set )
+
class typed-target : basic-target {
rule __init__ ( name : project : type : sources * : requirements * : default-build * : usage-requirements * )
rule type ( )
@@ -2483,13 +2483,13 @@ import path : native make :
rule type ( )
rule construct ( name : source-targets * : property-set )
rule construct ( name : source-targets * : property-set )
class property-set {
rule raw ( )
@@ -2537,20 +2537,20 @@ import path : native make :
rule raw ( )
rule raw ( )
rule str ( )
rule str ( )
rule propagated ( )
rule add ( ps )
rule add-raw ( properties * )
rule add-raw ( properties * )
rule refine ( ps )
ps
. Returns the resulting
@@ -2588,7 +2588,7 @@ import path : native make :
rule get ( feature )
feature
.