1bdep-projects-configs(1) General Commands Manual bdep-projects-configs(1)
2
3
4
6 bdep-projects-configs - specifying projects and configurations
7
9 bdep command [pkg-spec] [cfg-spec] ...
10
11 cfg-spec = (@cfg-name | --config|-c cfg-dir)... | --all|-a
12 pkg-spec = (--directory|-d pkg-dir)... | prj-spec
13 prj-spec = --directory|-d prj-dir
14
16 Most bdep commands operate on a project or some of its packages as well
17 as its build configurations. For example, status (bdep-status(1)) shows
18 the status of one or more project packages in one or more build config‐
19 urations. While fetch (bdep-fetch(1)) fetches the list of available to
20 the project dependency packages, again, in one or more build configura‐
21 tions.
22
23 Without any --directory|-d options specified, the current working di‐
24 rectory is assumed to be either the project root directory, the package
25 root directory, or one of the package subdirectories. This is the com‐
26 mon bdep usage mode where you run it from within your project's source
27 code directories, similar to version control tools such as git(1).
28
29 Alternatively, the project or (several) package directories can be
30 specified with the --directory|-d options. Note that bdep operates on a
31 single project but potentially multiple packages belonging to said
32 project at a time.
33
34 Some bdep commands, such as fetch, operate on the whole project. If
35 such a command is given a package directory (either as the working di‐
36 rectory or with --directory|-d), then it automatically determines its
37 project directory and uses that.
38
39 Other commands, such as status, operate on one or more packages. If
40 such a command is given a project directory, then it automatically de‐
41 termines the list of packages belonging to this project and uses that.
42 Note that what exactly belonging means is command-specific. For most
43 commands it means all the packages initialized in a given build config‐
44 uration. For init (bdep-init(1)), however, it means all the packages
45 available in the project (for example, as listed in packages.manifest).
46
47 A project managed by bdep has one or more associated build configura‐
48 tions (see bdep-config(1) for details). Some of these configurations,
49 one per the configuration type, can be designated as default and used
50 if no configuration is specified explicitly. So, for example, running
51 status without any arguments in the project directory will show the
52 status of all the project packages initialized in the default configu‐
53 rations.
54
55 An associated build configuration can be assigned a name in which case
56 we can specify it using the @cfg-name notation. For example:
57
58 $ bdep status @gcc @clang
59
60 Note to Windows users: a command line argument with leading @ has a
61 special meaning in PowerShell. To work around this, you can use the al‐
62 ternative -@gcc syntax or the -n gcc option.
63
64 A configuration without a name can be specified as a directory using
65 the --config|-c option. Name and directory specifications can be mixed.
66 For example:
67
68 $ bdep status @gcc -c ../builds/clang
69
70 Finally, we can use the --all|-a option to specify all the build con‐
71 figurations associated with the project.
72
74 Send bug reports to the users@build2.org mailing list.
75
77 Copyright (c) 2014-2023 the build2 authors.
78
79 Permission is granted to copy, distribute and/or modify this document
80 under the terms of the MIT License.
81
82
83
84bdep 0.16.0 June 2023 bdep-projects-configs(1)