aboutsummaryrefslogtreecommitdiff
path: root/build2
diff options
context:
space:
mode:
Diffstat (limited to 'build2')
-rw-r--r--build2/b.cli117
1 files changed, 70 insertions, 47 deletions
diff --git a/build2/b.cli b/build2/b.cli
index a34e336..05cce03 100644
--- a/build2/b.cli
+++ b/build2/b.cli
@@ -6,12 +6,12 @@ include <build2/types>;
"\section=1"
"\name=b"
-"\summary=build2 build driver"
+"\summary=build2 driver"
namespace build2
{
{
- "<options> <variable> <buildspec>
+ "<options> <variables> <buildspec>
<meta-operation> <operation> <target> <src-base>",
"\h|SYNOPSIS|
@@ -30,28 +30,29 @@ namespace build2
All three components can be omitted. If <meta-operation> is omitted, then
it defaults to \cb{perform}. If <operation> is omitted, then it default to
- the default operation of this meta-operation. For \cb{perform} that would
- be \cb{update}. Finally, if <target> is omitted, then it default to the
+ the default operation for this meta-operation. For \cb{perform} it is
+ \cb{update}. Finally, if <target> is omitted, then it defaults to the
current directory. For example:
\
- b # perform(update(./))
- b foo/ # perform(update(foo/))
- b foo/ bar/ # perform(update(foo/ bar/))
- b update # perform(update(./))
- b 'clean(../)' # perform(clean(../))
- b perform # perform(update(./))
- b configure # configure(?(./))
- b clean update # perform(clean(./) update(./))
- b configure update # configure(?(./)) perform(update(./))
+ b # perform(update(./))
+ b foo/ # perform(update(foo/))
+ b foo/ bar/ # perform(update(foo/ bar/))
+ b update # perform(update(./))
+ b 'clean(../)' # perform(clean(../))
+ b perform # perform(update(./))
+ b configure # configure(?(./))
+ b 'configure(../)' # configure(?(../))
+ b clean update # perform(clean(./) update(./))
+ b configure update # configure(?(./)) perform(update(./))
\
- Noice the question mark used to denote the default operation for the
- \cb{configure} meta-operation. For \cb{configure} the default operation
- is \"all operations\". That is, it will configure all the operations for
- the specified target.
+ Notice the question mark used to show the (imaginary) default operation
+ for the \cb{configure} meta-operation. For \cb{configure} the default
+ operation is \"all operations\". That is, it will configure all the
+ operations for the specified target.
- You can also \"generate\" multiple operation for the same set of targets.
+ You can also \"generate\" multiple operations for the same set of targets.
Compare:
\
@@ -62,13 +63,14 @@ namespace build2
Some more useful buildspec examples:
\
- b '{clean update clean}(...)'
- b '{clean test clean}(...)'
- b '{clean disfigure}(...)' # similar to distclean
+ b '{clean update}(...)' # rebuild
+ b '{clean update clean}(...)' # make sure builds
+ b '{clean test clean}(...)' # make sure passes tests
+ b '{clean disfigure}(...)' # similar to distclean
\
- For each <target> the driver expects to find a \cb{buildfile} either in
- the target's directory or, if the directory is part of the \cb{out} tree
+ For each <target> the driver expects to find \cb{buildfile} either in the
+ target's directory or, if the directory is part of the \cb{out} tree
(\cb{out_base}), in the corresponding \cb{src} directory (\cb{src_base}).
For example, assuming \cb{foo/} is the source directory of a project:
@@ -79,13 +81,13 @@ namespace build2
b foo-out/exe{foo} # out_base=foo-out/ src_base=foo/
\
- In the above example, we assumed that the \c{build2} driver was able to
+ In the above example, we assumed that the \cb{build2} driver was able to
determine the association between \cb{out_base} and \cb{src_base}. This is
achieved in one of two ways: the \cb{config} module (which implements the
\cb{configure} and \cb{disfigure} meta-operations) saves this association
- as part of the persistent configuration. If, however, the association
- hasn't been saved, then we have to specify \cb{src_base} explicitly using
- the following extended <target> syntax:
+ as part of the configuration process. If, however, the association hasn't
+ been saved, then we have to specify \cb{src_base} explicitly using the
+ following extended <target> syntax:
\c{<src-base>/@<target>}
@@ -95,17 +97,16 @@ namespace build2
b foo/@foo-out/exe{foo} # out_base=foo-out/ src_base=foo/
\
- Normally, you would only need to specify \cb{src_base} explicitly once,
+ Normally, you would need to specify \cb{src_base} explicitly only once,
during configuration. For example, a typical usage would be:
\
- b foo/
b 'configure(foo/@foo-out/)' # src_base is saved
b foo-out/ # no need to specify src_base
- b 'clean(foo-out/exe{foo}' # no need to specify src_base
+ b 'clean(foo-out/exe{foo})' # no need to specify src_base
\
- \cb{build2} has the following build-in and pre-defined meta-operations.
+ \cb{build2} has the following build-in and pre-defined meta-operations:
\dl|
@@ -115,20 +116,22 @@ namespace build2
\li|\cb{configure}
- Configure all operations in a project. Implemented by the \cb{config}
- module.|
+ Configure all operations supported by a project and save the result
+ in the project's \cb{build2/config.build} file. Implemented by the
+ \cb{config} module.|
\li|\cb{disfigure}
- Disfigure all operations in a project. Implemented by the \cb{config}
- module.|
+ Disfigure all operations supported by a project and remove the
+ project's \cb{build2/config.build} file. Implemented by the
+ \cb{config} module.|
\li|\cb{dist}
- Prepare a distribution for all operations in a project. Implemented
- by the \cb{dist} module.||
+ Prepare a distribution containing all files necessary to perform all
+ operations in a project. Implemented by the \cb{dist} module.||
- \cb{build2} has the following build-in and pre-defined operations.
+ \cb{build2} has the following build-in and pre-defined operations:
\dl|
@@ -151,8 +154,8 @@ namespace build2
by the \cb{install} module.||
Before <buildspec> (but after <options>) you can set one or more
- \c{build2} <variables>. This is normally used to pass the configuration
- values, for example:
+ \cb{build2} <variables>. This is normally used to specify the
+ configuration values, for example:
\
b config.cxx=clang++ config.cxx.coptions=-O3 \
@@ -183,7 +186,7 @@ namespace build2
"<level>",
"Set the diagnostics verbosity to <level> between 0 and 6. Level 0
disables any non-error messages while level 6 produces lots of
- information, with level 1 beeing the default. The following additional
+ information, with level 1 being the default. The following additional
types of diagnostics are produced at each level:
\ol|
@@ -199,10 +202,30 @@ namespace build2
\li|Information that could be helpful to the developer.|
\li|Even more detailed information, including state dumps.||"
- };
+ }
+
+ string --pager // String to allow empty value.
+ {
+ "<path>",
+ "The pager program to be used to show long text. Commonly used pager
+ programs are \cb{less} and \cb{more}. You can also specify additional
+ options that should be passed to the pager program with
+ \cb{--pager-option}. If an empty string is specified as the pager
+ program, then no pager will be used. If the pager program is not
+ explicitly specified, then \cb{b} will try to use \cb{less}. If it
+ is not available, then no pager will be used."
+ }
+
+ strings --pager-option
+ {
+ "<opt>",
+ "Additional option to be passed to the pager program. See \cb{--pager}
+ for more information on the pager program. Repeat this option to
+ specify multiple pager options."
+ }
- bool --help {"Print usage information and exit."};
- bool --version {"Print version and exit."};
+ bool --help {"Print usage information and exit."}
+ bool --version {"Print version and exit."}
};
"\h|EXIT STATUS|
@@ -214,8 +237,8 @@ namespace build2
The \cb{HOME} environment variable is used to determine the user's home
directory. If it is not set, then \cb{getpwuid(3)} is used instead. This
- value is used to shorten paths printed in diagnostics by replacing it with
- '\cb{~}'. It is also made available to the buildfiles as the \cb{build.home}
- variable.
+ value is used to shorten paths printed in diagnostics by replacing the home
+ directory with \cb{~/}. It is also made available to \cb{buildfile}'s as the
+ \cb{build.home} variable.
"
}