aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BuildEventStreamOptions.java
blob: 9e0c2773d4f0d651ca7d57ce37c5729c28b13c27 (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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
// Copyright 2016 The Bazel Authors. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package com.google.devtools.build.lib.buildeventstream.transports;

import com.google.devtools.common.options.Option;
import com.google.devtools.common.options.OptionDocumentationCategory;
import com.google.devtools.common.options.OptionEffectTag;
import com.google.devtools.common.options.OptionsBase;

/** Options used to configure BuildEventStreamer and its BuildEventTransports. */
public class BuildEventStreamOptions extends OptionsBase {

  @Option(
      name = "build_event_text_file",
      oldName = "experimental_build_event_text_file",
      defaultValue = "",
      documentationCategory = OptionDocumentationCategory.LOGGING,
      effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
      help =
          "If non-empty, write a textual representation of the build event protocol to that file")
  public String buildEventTextFile;

  @Option(
      name = "build_event_binary_file",
      oldName = "experimental_build_event_binary_file",
      defaultValue = "",
      documentationCategory = OptionDocumentationCategory.LOGGING,
      effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
      help =
          "If non-empty, write a varint delimited binary representation of representation of the"
              + " build event protocol to that file.")
  public String buildEventBinaryFile;

  @Option(
      name = "build_event_json_file",
      oldName = "experimental_build_event_json_file",
      defaultValue = "",
      documentationCategory = OptionDocumentationCategory.LOGGING,
      effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
      help = "If non-empty, write a JSON serialisation of the build event protocol to that file.")
  public String buildEventJsonFile;

  @Option(
      name = "build_event_text_file_path_conversion",
      oldName = "experimental_build_event_text_file_path_conversion",
      defaultValue = "true",
      documentationCategory = OptionDocumentationCategory.LOGGING,
      effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
      help = "Convert paths in the text file representation of the build event protocol to more "
          + "globally valid URIs whenever possible; if disabled, the file:// uri scheme will "
          + "always be used")
  public boolean buildEventTextFilePathConversion;

  @Option(
      name = "build_event_binary_file_path_conversion",
      oldName = "experimental_build_event_binary_file_path_conversion",
      defaultValue = "true",
      documentationCategory = OptionDocumentationCategory.LOGGING,
      effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
      help = "Convert paths in the binary file representation of the build event protocol to more "
          + "globally valid URIs whenever possible; if disabled, the file:// uri scheme will "
          + "always be used")
  public boolean buildEventBinaryFilePathConversion;

  @Option(
      name = "experimental_build_event_json_file_path_conversion",
      oldName = "build_event_json_file_path_conversion",
      defaultValue = "true",
      documentationCategory = OptionDocumentationCategory.LOGGING,
      effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
      help = "Convert paths in the json file representation of the build event protocol to more "
          + "globally valid URIs whenever possible; if disabled, the file:// uri scheme will "
          + "always be used")
  public boolean buildEventJsonFilePathConversion;

  @Option(
      name = "build_event_publish_all_actions",
      defaultValue = "false",
      documentationCategory = OptionDocumentationCategory.LOGGING,
      effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
      help = "Whether all actions should be published.")
  public boolean publishAllActions;

  @Option(
      name = "build_event_max_named_set_of_file_entries",
      defaultValue = "-1",
      documentationCategory = OptionDocumentationCategory.LOGGING,
      effectTags = {OptionEffectTag.AFFECTS_OUTPUTS},
      help =
          "The maximum number of entries for a single named_set_of_files event; values smaller "
              + "than 2 are ignored and no event splitting is performed. This is intended for "
              + "limiting the maximum event size in the build event protocol, although it does not "
              + "directly control event size. The total event size is a function of the structure "
              + "of the set as well as the file and uri lengths, which may in turn depend on the "
              + "hash function.")
  public int maxNamedSetEntries;

  // TODO(ruperts): Remove these public getter methods for consistency with other options classes?
  public String getBuildEventTextFile() {
    return buildEventTextFile;
  }

  public String getBuildEventBinaryFile() {
    return buildEventBinaryFile;
  }

  public String getBuildEventJsonFile() {
    return buildEventJsonFile;
  }

  public boolean getBuildEventTextFilePathConversion() {
    return buildEventTextFilePathConversion;
  }

  public boolean getBuildEventBinaryFilePathConversion() {
    return buildEventBinaryFilePathConversion;
  }

  public boolean getBuildEventJsonFilePathConversion() {
    return buildEventJsonFilePathConversion;
  }
}