NAME
bdep-projects-configs
– specifying projects and configurations
SYNOPSIS
bdep command [pkg-spec]
[cfg-spec] ...
cfg-spec = (@cfg-name |
--config|-c cfg-dir)... | --all|-a
pkg-spec = (pkg | (--directory|-d
pkg-dir))... | prj-spec
prj-spec = --directory|-d prj-dir
DESCRIPTION
Most bdep
commands operate on a project or some of
its packages as well as its build configurations. For example,
status
(bdep-status(1)
) shows the
status of one or more project packages in one or more build configurations.
While fetch
(bdep-fetch(1)
) fetches the
list of available to the project dependency packages, again, in one or more
build configurations.
Without any --directory|-d
options specified,
the current working directory is assumed to be either the project root
directory, the package root directory, or one of the package subdirectories.
This is the common bdep
usage mode where you run it from
within your project's source code directories, similar to version control
tools such as git(1)
.
Alternatively, the project or (several) package directories can be
specified with the --directory|-d
options.
Additionally, in all the commands except init
, an
initialized project package can be specified as a pkg
name. Note that bdep
operates on a single project but
potentially multiple packages belonging to said project at a time.
Some bdep
commands, such as
fetch
, operate on the whole project. If such a command
is given a package directory (either as the working directory or with
--directory|-d
), then it automatically determines
its project directory and uses that.
Other commands, such as status
, operate on one or
more packages. If such a command is given a project directory, then it
automatically determines the list of packages belonging to this project and
uses that. Note that what exactly belonging means is
command-specific. For most commands it means all the packages initialized in
a given build configuration. For init
(bdep-init(1)
), however, it
means all the packages available in the project (for example, as listed in
packages.manifest
).
A project managed by bdep
has one or more associated
build configurations (see bdep-config(1)
for
details). Some of these configurations, one per the configuration type, can
be designated as default and used if no configuration is specified
explicitly. So, for example, running status
without any
arguments in the project directory will show the status of all the project
packages initialized in the default configurations.
An associated build configuration can be assigned a name in which case we
can specify it using the @cfg-name
notation. For
example:
$ bdep status @gcc @clang
Note to Windows users: a command line argument with leading
@
has a special meaning in PowerShell. To work around
this, you can use the alternative -@gcc
syntax or the
-n gcc
option.
A configuration without a name can be specified as a directory using the
--config|-c
option. Name and directory
specifications can be mixed. For example:
$ bdep status @gcc -c ../builds/clang
Finally, we can use the --all|-a
option to
specify all the build configurations associated with the project.
BUGS
Send bug reports to the users@build2.org mailing list.