aboutsummaryrefslogtreecommitdiff
path: root/bdep/project.cli
blob: bcf5cd5b71e78168b31f2bc3432b2f6e6b195e52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
// file      : bdep/project.cli
// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
// license   : MIT; see accompanying LICENSE file

include <bdep/common.cli>;

"\name=project" // Not a man page.

namespace bdep
{
  // Common options for commands that add/create configurations.
  //
  class configuration_add_options
  {
    bool --default
    {
      "Make the added or created configuration the default."
    }

    bool --no-default
    {
      "Don't make the first added or created configuration the default."
    }

    bool --forward
    {
      "Make the added or created configuration forwarded."
    }

    bool --no-forward
    {
      "Don't make the added or created configuration forwarded."
    }

    bool --auto-sync
    {
      "Make the added or created configuration automatically synchronized."
    }

    bool --no-auto-sync
    {
      "Don't make the added or created configuration automatically
       synchronized."
    }

    // These two a really just convenience aliases since they can be specified
    // as part of <cfg-args> but would require `--`, for example:
    //
    // bdep ... -- --wipe cc config.cxx=g++

    bool --existing|-e
    {
      "Initialize a \cb{bpkg} configuration based on an existing build system
       configuration."
    }

    bool --wipe
    {
      "Wipe the configuration directory clean before creating the new
       configuration."
    }
  };

  // Common options for commands that accept --config-id and @<cfg-name>.
  //
  class configuration_name_options: common_options
  {
    // Note that this is also used as storage for configuration names
    // specified as @<name>.
    //
    strings --config-name|-n
    {
      "<name>",
      "Specify the build configuration as a name."
    };

    vector<uint64_t> --config-id
    {
      "<num>",
      "Specify the build configuration as an id."
    };
  };

  // Common options for commands that operate on project/packages (prj-spec
  // and pkg-spec) and configurations (cfg-spec).
  //
  class project_options: configuration_name_options
  {
    bool --all|-a
    {
      "Use all build configurations."
    }

    dir_paths --config|-c
    {
      "<dir>",
      "Specify the build configuration as a directory."
    }

    dir_paths --directory|-d
    {
      "<dir>",
      "Assume project/package is in the specified directory rather than in the
       current working directory."
    }
  };
}