aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar gregce <gregce@google.com>2017-10-04 18:11:22 +0200
committerGravatar Klaus Aehlig <aehlig@google.com>2017-10-06 19:44:32 +0200
commite1b09f2f072231ed882c1de364fe3ea5c1f7d5af (patch)
tree9ce72e65e4f46153c743481d20e2ddc4bd580723 /src
parentf8c5520a20cdc31363ee7e37fce12f0e23adf39e (diff)
Categorize build options for BuildConfiguration.
PiperOrigin-RevId: 171017483
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java178
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/query2/output/QueryOptions.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftCommandLineOptions.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java34
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java4
-rw-r--r--src/main/java/com/google/devtools/common/options/OptionDocumentationCategory.java6
-rw-r--r--src/main/java/com/google/devtools/common/options/OptionEffectTag.java6
-rw-r--r--src/main/java/com/google/devtools/common/options/OptionFilterDescriptions.java31
-rw-r--r--src/main/protobuf/option_filters.proto2
-rw-r--r--src/test/java/com/google/devtools/common/options/OptionsUsageTest.java5
-rw-r--r--src/test/java/com/google/devtools/common/options/TestOptions.java2
15 files changed, 177 insertions, 123 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
index bc0ba445a6..bbb7393eb6 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
@@ -449,18 +449,19 @@ public final class BuildConfiguration implements BuildEvent {
category = "semantics",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
effectTags = { OptionEffectTag.AFFECTS_OUTPUTS },
+ metadataTags = { OptionMetadataTag.EXPERIMENTAL },
help = "Whether to have a separate genfiles directory or fold it into the bin directory"
)
-
public boolean separateGenfilesDirectory;
+
@Option(
name = "define",
converter = Converters.AssignmentConverter.class,
defaultValue = "",
category = "semantics",
allowMultiple = true,
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = { OptionEffectTag.CHANGES_INPUTS, OptionEffectTag.AFFECTS_OUTPUTS },
help = "Each --define option specifies an assignment for a build variable."
)
public List<Map.Entry<String, String>> commandLineBuildVariables;
@@ -470,8 +471,8 @@ public final class BuildConfiguration implements BuildEvent {
defaultValue = "",
category = "semantics",
converter = AutoCpuConverter.class,
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = { OptionEffectTag.CHANGES_INPUTS, OptionEffectTag.AFFECTS_OUTPUTS },
help = "The target CPU."
)
public String cpu;
@@ -480,7 +481,10 @@ public final class BuildConfiguration implements BuildEvent {
name = "min_param_file_size",
defaultValue = "32768",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ effectTags = {
+ OptionEffectTag.LOADING_AND_ANALYSIS,
+ OptionEffectTag.EXECUTION,
+ OptionEffectTag.ACTION_COMMAND_LINES},
help = "Minimum command line length before creating a parameter file."
)
public int minParamFileSize;
@@ -489,7 +493,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "experimental_extended_sanity_checks",
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ effectTags = { OptionEffectTag.BAZEL_INTERNAL_CONFIGURATION },
+ metadataTags = { OptionMetadataTag.EXPERIMENTAL },
help =
"Enables internal validation checks to make sure that configured target "
+ "implementations only access things they should. Causes a performance hit."
@@ -500,7 +505,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "experimental_allow_runtime_deps_on_neverlink",
defaultValue = "true",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ effectTags = { OptionEffectTag.BUILD_FILE_SEMANTICS },
+ metadataTags = { OptionMetadataTag.EXPERIMENTAL },
help =
"Flag to help transition from allowing to disallowing runtime_deps on neverlink"
+ " Java archives. The depot needs to be cleaned up to roll this out by default."
@@ -511,8 +517,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "strict_filesets",
defaultValue = "false",
category = "semantics",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.INPUT_STRICTNESS,
+ effectTags = { OptionEffectTag.BUILD_FILE_SEMANTICS, OptionEffectTag.EAGERNESS_TO_EXIT },
help =
"If this option is enabled, filesets crossing package boundaries are reported "
+ "as errors. It does not work when check_fileset_dependencies_recursively is "
@@ -524,8 +530,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "stamp",
defaultValue = "false",
category = "semantics",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = { OptionEffectTag.AFFECTS_OUTPUTS },
help = "Stamp binaries with the date, username, hostname, workspace information, etc."
)
public boolean stampBinaries;
@@ -537,8 +543,8 @@ public final class BuildConfiguration implements BuildEvent {
converter = RegexFilter.RegexFilterConverter.class,
defaultValue = "-/javatests[/:],-/test/java[/:]",
category = "semantics",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = { OptionEffectTag.AFFECTS_OUTPUTS },
help =
"When coverage is enabled, only rules with names included by the "
+ "specified regex-based filter will be instrumented. Rules prefixed "
@@ -551,8 +557,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "instrument_test_targets",
defaultValue = "false",
category = "semantics",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = { OptionEffectTag.AFFECTS_OUTPUTS },
help =
"When coverage is enabled, specifies whether to consider instrumenting test rules. "
+ "When set, test rules included by --instrumentation_filter are instrumented. "
@@ -565,8 +571,8 @@ public final class BuildConfiguration implements BuildEvent {
defaultValue = "",
category = "semantics",
converter = AutoCpuConverter.class,
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = { OptionEffectTag.CHANGES_INPUTS, OptionEffectTag.AFFECTS_OUTPUTS },
help = "The host CPU."
)
public String hostCpu;
@@ -577,8 +583,8 @@ public final class BuildConfiguration implements BuildEvent {
converter = CompilationMode.Converter.class,
defaultValue = "fastbuild",
category = "semantics", // Should this be "flags"?
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = { OptionEffectTag.AFFECTS_OUTPUTS, OptionEffectTag.ACTION_COMMAND_LINES },
help = "Specify the mode the binary will be built in. " + "Values: 'fastbuild', 'dbg', 'opt'."
)
public CompilationMode compilationMode;
@@ -592,8 +598,12 @@ public final class BuildConfiguration implements BuildEvent {
name = "output directory name",
defaultValue = "null",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.UNKNOWN},
- metadataTags = {OptionMetadataTag.INTERNAL}
+ effectTags = {
+ OptionEffectTag.LOSES_INCREMENTAL_STATE,
+ OptionEffectTag.AFFECTS_OUTPUTS,
+ OptionEffectTag.LOADING_AND_ANALYSIS
+ },
+ metadataTags = { OptionMetadataTag.INTERNAL }
)
public String outputDirectoryName;
@@ -601,8 +611,12 @@ public final class BuildConfiguration implements BuildEvent {
name = "platform_suffix",
defaultValue = "null",
category = "misc",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = {
+ OptionEffectTag.LOSES_INCREMENTAL_STATE,
+ OptionEffectTag.AFFECTS_OUTPUTS,
+ OptionEffectTag.LOADING_AND_ANALYSIS
+ },
help = "Specifies a suffix to be added to the configuration directory."
)
public String platformSuffix;
@@ -616,8 +630,8 @@ public final class BuildConfiguration implements BuildEvent {
allowMultiple = true,
defaultValue = "",
category = "testing",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.TESTING,
+ effectTags = { OptionEffectTag.TEST_RUNNER },
help =
"Specifies additional environment variables to be injected into the test runner "
+ "environment. Variables can be either specified by name, in which case its value "
@@ -636,8 +650,8 @@ public final class BuildConfiguration implements BuildEvent {
allowMultiple = true,
defaultValue = "",
category = "semantics",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = { OptionEffectTag.ACTION_COMMAND_LINES},
help =
"Specifies the set of environment variables available to actions. "
+ "Variables can be either specified by name, in which case the value will be "
@@ -652,8 +666,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "collect_code_coverage",
defaultValue = "false",
category = "testing",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = { OptionEffectTag.AFFECTS_OUTPUTS },
help =
"If specified, Bazel will instrument code (using offline instrumentation where "
+ "possible) and will collect coverage information during tests. Only targets that "
@@ -667,8 +681,12 @@ public final class BuildConfiguration implements BuildEvent {
converter = LabelConverter.class,
defaultValue = "@bazel_tools//tools/test:coverage_support",
category = "testing",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
+ effectTags = {
+ OptionEffectTag.CHANGES_INPUTS,
+ OptionEffectTag.AFFECTS_OUTPUTS,
+ OptionEffectTag.LOADING_AND_ANALYSIS
+ },
help =
"Location of support files that are required on the inputs of every test action "
+ "that collects code coverage. Defaults to '//tools/test:coverage_support'."
@@ -680,8 +698,12 @@ public final class BuildConfiguration implements BuildEvent {
converter = LabelConverter.class,
defaultValue = "@bazel_tools//tools/test:coverage_report_generator",
category = "testing",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
+ effectTags = {
+ OptionEffectTag.CHANGES_INPUTS,
+ OptionEffectTag.AFFECTS_OUTPUTS,
+ OptionEffectTag.LOADING_AND_ANALYSIS
+ },
help =
"Location of the binary that is used to generate coverage reports. This must "
+ "currently be a filegroup that contains a single file, the binary. Defaults to "
@@ -693,8 +715,13 @@ public final class BuildConfiguration implements BuildEvent {
name = "experimental_use_llvm_covmap",
defaultValue = "false",
category = "experimental",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = {
+ OptionEffectTag.CHANGES_INPUTS,
+ OptionEffectTag.AFFECTS_OUTPUTS,
+ OptionEffectTag.LOADING_AND_ANALYSIS
+ },
+ metadataTags = { OptionMetadataTag.EXPERIMENTAL },
help =
"If specified, Bazel will generate llvm-cov coverage map information rather than "
+ "gcov when collect_code_coverage is enabled."
@@ -705,8 +732,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "build_runfile_manifests",
defaultValue = "true",
category = "strategy",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_SELECTION,
+ effectTags = { OptionEffectTag.AFFECTS_OUTPUTS },
help =
"If true, write runfiles manifests for all targets. "
+ "If false, omit them."
@@ -717,8 +744,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "build_runfile_links",
defaultValue = "true",
category = "strategy",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_SELECTION,
+ effectTags = { OptionEffectTag.AFFECTS_OUTPUTS },
help =
"If true, build runfiles symlink forests for all targets. "
+ "If false, write only manifests when possible."
@@ -729,8 +756,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "legacy_external_runfiles",
defaultValue = "true",
category = "strategy",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_SELECTION,
+ effectTags = { OptionEffectTag.AFFECTS_OUTPUTS },
help =
"If true, build runfiles symlink forests for external repositories under "
+ ".runfiles/wsname/external/repo (in addition to .runfiles/repo)."
@@ -741,8 +768,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "check_fileset_dependencies_recursively",
defaultValue = "true",
category = "semantics",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_SELECTION,
+ effectTags = { OptionEffectTag.AFFECTS_OUTPUTS },
help =
"If false, fileset targets will, whenever possible, create "
+ "symlinks to directories instead of creating one symlink for each "
@@ -757,8 +784,9 @@ public final class BuildConfiguration implements BuildEvent {
name = "experimental_skyframe_native_filesets",
defaultValue = "false",
category = "experimental",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.BUILD_TIME_OPTIMIZATION,
+ effectTags = { OptionEffectTag.BAZEL_INTERNAL_CONFIGURATION },
+ metadataTags = { OptionMetadataTag.EXPERIMENTAL },
help =
"If true, Blaze will use the skyframe-native implementation of the Fileset rule."
+ " This offers improved performance in incremental builds of Filesets as well as"
@@ -772,8 +800,8 @@ public final class BuildConfiguration implements BuildEvent {
category = "run",
defaultValue = "null",
converter = RunUnderConverter.class,
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = { OptionEffectTag.ACTION_COMMAND_LINES},
help =
"Prefix to insert in front of command before running. "
+ "Examples:\n"
@@ -790,8 +818,12 @@ public final class BuildConfiguration implements BuildEvent {
name = "distinct_host_configuration",
defaultValue = "true",
category = "strategy",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.BUILD_TIME_OPTIMIZATION,
+ effectTags = {
+ OptionEffectTag.LOSES_INCREMENTAL_STATE,
+ OptionEffectTag.BAZEL_INTERNAL_CONFIGURATION,
+ OptionEffectTag.LOADING_AND_ANALYSIS,
+ },
help =
"Build all the tools used during the build for a distinct configuration from that used "
+ "for the target program. When this is disabled, the same configuration is used for "
@@ -811,8 +843,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "check_visibility",
defaultValue = "true",
category = "checking",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.INPUT_STRICTNESS,
+ effectTags = { OptionEffectTag.BUILD_FILE_SEMANTICS },
help = "If disabled, visibility errors are demoted to warnings."
)
public boolean checkVisibility;
@@ -824,8 +856,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "check_licenses",
defaultValue = "false",
category = "checking",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.INPUT_STRICTNESS,
+ effectTags = { OptionEffectTag.BUILD_FILE_SEMANTICS },
help =
"Check that licensing constraints imposed by dependent packages "
+ "do not conflict with distribution modes of the targets being built. "
@@ -836,8 +868,8 @@ public final class BuildConfiguration implements BuildEvent {
@Option(
name = "enforce_constraints",
defaultValue = "true",
- documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.INPUT_STRICTNESS,
+ effectTags = { OptionEffectTag.BUILD_FILE_SEMANTICS },
help =
"Checks the environments each target is compatible with and reports errors if any "
+ "target has dependencies that don't support the same environments",
@@ -851,8 +883,9 @@ public final class BuildConfiguration implements BuildEvent {
defaultValue = "",
category = "experimental",
converter = LabelListConverter.class,
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = { OptionEffectTag.EXECUTION },
+ metadataTags = { OptionMetadataTag.EXPERIMENTAL },
help = "Use action_listener to attach an extra_action to existing build actions."
)
public List<Label> actionListeners;
@@ -864,7 +897,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "experimental_transparent_compression",
defaultValue = "true",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ effectTags = { OptionEffectTag.BAZEL_INTERNAL_CONFIGURATION },
+ metadataTags = { OptionMetadataTag.EXPERIMENTAL },
help =
"Enables gzip compression for the contents of FileWriteActions, which reduces "
+ "memory usage in the analysis phase at the expense of additional time overhead."
@@ -875,8 +909,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "is host configuration",
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.UNKNOWN},
- metadataTags = {OptionMetadataTag.INTERNAL},
+ effectTags = { OptionEffectTag.BAZEL_INTERNAL_CONFIGURATION },
+ metadataTags = { OptionMetadataTag.INTERNAL },
help = "Shows whether these options are set for host configuration."
)
public boolean isHost;
@@ -886,8 +920,8 @@ public final class BuildConfiguration implements BuildEvent {
allowMultiple = true,
defaultValue = "",
category = "flags",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ effectTags = { OptionEffectTag.CHANGES_INPUTS, OptionEffectTag.AFFECTS_OUTPUTS },
help =
"The given features will be enabled or disabled by default for all packages. "
+ "Specifying -<feature> will disable the feature globally. "
@@ -903,8 +937,8 @@ public final class BuildConfiguration implements BuildEvent {
allowMultiple = true,
defaultValue = "",
category = "flags",
- documentationCategory = OptionDocumentationCategory.EXECUTION_STRATEGY,
- effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
+ documentationCategory = OptionDocumentationCategory.INPUT_STRICTNESS,
+ effectTags = { OptionEffectTag.CHANGES_INPUTS },
help =
"Declares this build's target environment. Must be a label reference to an "
+ "\"environment\" rule. If specified, all top-level targets must be "
@@ -918,7 +952,7 @@ public final class BuildConfiguration implements BuildEvent {
defaultValue = "",
category = "flags",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
+ effectTags = { OptionEffectTag.CHANGES_INPUTS, OptionEffectTag.LOADING_AND_ANALYSIS },
metadataTags = {OptionMetadataTag.EXPERIMENTAL},
help =
"Declare the environment_group to use for automatically mapping cpu values to "
@@ -950,7 +984,12 @@ public final class BuildConfiguration implements BuildEvent {
defaultValue = "notrim",
converter = ConfigsModeConverter.class,
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ effectTags = {
+ OptionEffectTag.LOSES_INCREMENTAL_STATE,
+ OptionEffectTag.BAZEL_INTERNAL_CONFIGURATION,
+ OptionEffectTag.LOADING_AND_ANALYSIS,
+ },
+ metadataTags = { OptionMetadataTag.EXPERIMENTAL },
help =
"Instantiates build configurations with the specified properties"
)
@@ -960,7 +999,8 @@ public final class BuildConfiguration implements BuildEvent {
name = "experimental_enable_runfiles",
defaultValue = "auto",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ effectTags = { OptionEffectTag.AFFECTS_OUTPUTS },
+ metadataTags = { OptionMetadataTag.EXPERIMENTAL },
help = "Enable runfiles; off on Windows, on on other platforms"
)
public TriState enableRunfiles;
@@ -969,7 +1009,7 @@ public final class BuildConfiguration implements BuildEvent {
name = "windows_exe_launcher",
defaultValue = "true",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ effectTags = { OptionEffectTag.CHANGES_INPUTS, OptionEffectTag.AFFECTS_OUTPUTS },
help =
"Build a Windows exe launcher for sh_binary rule, "
+ "it has no effect on other platforms than Windows"
diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java
index fc12d55597..c25da6283f 100644
--- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java
+++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildRequest.java
@@ -241,7 +241,6 @@ public class BuildRequest implements OptionsClassProvider {
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
effectTags = {
OptionEffectTag.LOADING_AND_ANALYSIS,
- OptionEffectTag.EAGERNESS_TO_EXIT,
OptionEffectTag.AFFECTS_OUTPUTS
},
help =
@@ -258,7 +257,6 @@ public class BuildRequest implements OptionsClassProvider {
documentationCategory = OptionDocumentationCategory.OUTPUT_SELECTION,
effectTags = {
OptionEffectTag.EXECUTION,
- OptionEffectTag.EAGERNESS_TO_EXIT,
OptionEffectTag.AFFECTS_OUTPUTS
},
help =
diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/QueryOptions.java b/src/main/java/com/google/devtools/build/lib/query2/output/QueryOptions.java
index f4e003dd7d..86b7ac356a 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/output/QueryOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/output/QueryOptions.java
@@ -250,7 +250,7 @@ public class QueryOptions extends OptionsBase {
defaultValue = "false",
category = "query",
documentationCategory = OptionDocumentationCategory.QUERY,
- effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS},
+ effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS, OptionEffectTag.EAGERNESS_TO_EXIT},
help =
"If true, the tests() expression gives an error if it encounters a test_suite containing "
+ "non-test targets."
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java
index 23c998ae6f..f9bc78b799 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleCommandLineOptions.java
@@ -345,7 +345,7 @@ public class AppleCommandLineOptions extends FragmentOptions {
defaultValue = "null",
category = "flags",
documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
- effectTags = {OptionEffectTag.ACTION_OPTIONS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES},
help =
"The identifier of an Xcode toolchain to use for builds. Currently only the toolchains "
+ "that ship with Xcode are supported. For example, in addition to the default "
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftCommandLineOptions.java
index 3b3ffcc060..9803e22a5e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftCommandLineOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftCommandLineOptions.java
@@ -29,7 +29,7 @@ public class SwiftCommandLineOptions extends FragmentOptions {
defaultValue = "",
category = "flags",
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES},
help = "Additional options to pass to Swift compilation."
)
public List<String> copts;
@@ -39,7 +39,7 @@ public class SwiftCommandLineOptions extends FragmentOptions {
defaultValue = "false",
category = "flags",
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES},
help = "Whether to enable Whole Module Optimization"
)
public boolean enableWholeModuleOptimization;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
index 3cdd90d896..1a2b3b715d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppOptions.java
@@ -221,7 +221,7 @@ public class CppOptions extends FragmentOptions {
documentationCategory = OptionDocumentationCategory.OUTPUT_SELECTION,
effectTags = {
OptionEffectTag.LOADING_AND_ANALYSIS,
- OptionEffectTag.ACTION_OPTIONS,
+ OptionEffectTag.ACTION_COMMAND_LINES,
OptionEffectTag.AFFECTS_OUTPUTS
},
help =
@@ -329,7 +329,7 @@ public class CppOptions extends FragmentOptions {
defaultValue = "",
category = "flags",
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS, OptionEffectTag.AFFECTS_OUTPUTS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS},
help = "Additional options to pass to gcc."
)
public List<String> coptList;
@@ -340,7 +340,7 @@ public class CppOptions extends FragmentOptions {
category = "flags",
allowMultiple = true,
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS, OptionEffectTag.AFFECTS_OUTPUTS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS},
help = "Additional option to pass to gcc when compiling C++ source files."
)
public List<String> cxxoptList;
@@ -351,7 +351,7 @@ public class CppOptions extends FragmentOptions {
defaultValue = "",
category = "flags",
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS, OptionEffectTag.AFFECTS_OUTPUTS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS},
help = "Additional option to pass to gcc when compiling C source files."
)
public List<String> conlyoptList;
@@ -362,7 +362,7 @@ public class CppOptions extends FragmentOptions {
category = "flags",
allowMultiple = true,
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS, OptionEffectTag.AFFECTS_OUTPUTS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS},
help = "Additional option to pass to gcc when linking."
)
public List<String> linkoptList;
@@ -373,7 +373,7 @@ public class CppOptions extends FragmentOptions {
category = "flags",
allowMultiple = true,
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS, OptionEffectTag.AFFECTS_OUTPUTS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS},
help = "Additional option to pass to the LTO indexing step (under --features=thin_lto)."
)
public List<String> ltoindexoptList;
@@ -384,7 +384,7 @@ public class CppOptions extends FragmentOptions {
defaultValue = "",
category = "flags",
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS, OptionEffectTag.AFFECTS_OUTPUTS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS},
help = "Additional options to pass to strip when generating a '<name>.stripped' binary."
)
public List<String> stripoptList;
@@ -407,7 +407,7 @@ public class CppOptions extends FragmentOptions {
defaultValue = "true",
category = "semantics",
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS, OptionEffectTag.AFFECTS_OUTPUTS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS},
help =
"When on, use --whole-archive for cc_binary rules that have "
+ "linkshared=1 and either linkstatic=1 or '-static' in linkopts. "
@@ -661,7 +661,7 @@ public class CppOptions extends FragmentOptions {
defaultValue = "null",
category = "version",
documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
- effectTags = {OptionEffectTag.AFFECTS_OUTPUTS, OptionEffectTag.ACTION_OPTIONS},
+ effectTags = {OptionEffectTag.AFFECTS_OUTPUTS, OptionEffectTag.ACTION_COMMAND_LINES},
metadataTags = {OptionMetadataTag.EXPERIMENTAL},
help =
"If set, use this label instead of the default STL implementation. "
@@ -689,7 +689,7 @@ public class CppOptions extends FragmentOptions {
defaultValue = "",
category = "semantics",
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS, OptionEffectTag.AFFECTS_OUTPUTS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS},
help =
"Additional options to selectively pass to gcc when compiling certain files. "
+ "This option can be passed multiple times. "
@@ -729,7 +729,7 @@ public class CppOptions extends FragmentOptions {
defaultValue = "",
category = "flags",
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS, OptionEffectTag.AFFECTS_OUTPUTS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS},
help = "Additional options to pass to gcc for host tools."
)
public List<String> hostCoptList;
@@ -740,7 +740,7 @@ public class CppOptions extends FragmentOptions {
defaultValue = "",
category = "flags",
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS, OptionEffectTag.AFFECTS_OUTPUTS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS},
help = "Additional options to pass to gcc for host tools."
)
public List<String> hostCxxoptList;
@@ -751,7 +751,7 @@ public class CppOptions extends FragmentOptions {
category = "version",
converter = LibcTopLabelConverter.class,
documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
- effectTags = {OptionEffectTag.ACTION_OPTIONS, OptionEffectTag.AFFECTS_OUTPUTS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS},
help =
"A label to a checked-in libc library. The default value is selected by the crosstool "
+ "toolchain, and you almost never need to override it."
@@ -764,7 +764,7 @@ public class CppOptions extends FragmentOptions {
category = "version",
converter = LibcTopLabelConverter.class,
documentationCategory = OptionDocumentationCategory.TOOLCHAIN,
- effectTags = {OptionEffectTag.ACTION_OPTIONS, OptionEffectTag.AFFECTS_OUTPUTS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS},
help =
"If specified, this setting overrides the libc top-level directory (--grte_top) "
+ "for the host configuration."
@@ -776,7 +776,7 @@ public class CppOptions extends FragmentOptions {
defaultValue = "false",
category = "flags",
documentationCategory = OptionDocumentationCategory.OUTPUT_SELECTION,
- effectTags = {OptionEffectTag.ACTION_OPTIONS, OptionEffectTag.AFFECTS_OUTPUTS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS},
help =
"If enabled, for every C++ binary linked with gold, the number of defined symbols "
+ "and the number of used symbols per input file is stored in a .sc file."
@@ -831,7 +831,7 @@ public class CppOptions extends FragmentOptions {
defaultValue = "false",
category = "semantics",
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS, OptionEffectTag.AFFECTS_OUTPUTS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES, OptionEffectTag.AFFECTS_OUTPUTS},
metadataTags = {OptionMetadataTag.EXPERIMENTAL},
help =
"If true, use libunwind for stack unwinding, and compile with "
@@ -855,7 +855,7 @@ public class CppOptions extends FragmentOptions {
name = "strict_system_includes",
defaultValue = "false",
category = "strategy",
- documentationCategory = OptionDocumentationCategory.BUILD_TIME_OPTIMIZATION,
+ documentationCategory = OptionDocumentationCategory.INPUT_STRICTNESS,
effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS, OptionEffectTag.EAGERNESS_TO_EXIT},
help =
"If true, headers found through system include paths (-isystem) are also required to be "
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
index 1a608a5e8f..2475099a5f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaOptions.java
@@ -233,8 +233,8 @@ public class JavaOptions extends FragmentOptions {
defaultValue = "default",
converter = StrictDepsConverter.class,
category = "semantics",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ documentationCategory = OptionDocumentationCategory.INPUT_STRICTNESS,
+ effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS, OptionEffectTag.EAGERNESS_TO_EXIT},
help =
"If true, checks that a Java target explicitly declares all directly used "
+ "targets as dependencies.",
@@ -462,7 +462,7 @@ public class JavaOptions extends FragmentOptions {
name = "strict_deps_java_protos",
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.UNDOCUMENTED,
- effectTags = {OptionEffectTag.UNKNOWN},
+ effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS, OptionEffectTag.EAGERNESS_TO_EXIT},
help =
"When 'strict-deps' is on, .java files that depend on classes not declared in their rule's "
+ "'deps' fail to build. In other words, it's forbidden to depend on classes obtained "
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
index 1ea9c7cd4f..176840b2f9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommandLineOptions.java
@@ -121,7 +121,7 @@ public class ObjcCommandLineOptions extends FragmentOptions {
defaultValue = "",
category = "flags",
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES},
help = "Additional options to pass to Objective C compilation."
)
public List<String> copts;
@@ -131,7 +131,7 @@ public class ObjcCommandLineOptions extends FragmentOptions {
defaultValue = "false",
category = "misc",
documentationCategory = OptionDocumentationCategory.TESTING,
- effectTags = {OptionEffectTag.ACTION_OPTIONS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES},
help = "Enable checking for memory leaks in ios_test targets."
)
public boolean runMemleaks;
@@ -153,7 +153,7 @@ public class ObjcCommandLineOptions extends FragmentOptions {
defaultValue = "-O0,-DDEBUG=1",
converter = CommaSeparatedOptionListConverter.class,
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES},
help = "Uses these strings as objc fastbuild compiler options."
)
public List<String> fastbuildOptions;
@@ -162,7 +162,7 @@ public class ObjcCommandLineOptions extends FragmentOptions {
name = "experimental_objc_enable_module_maps",
defaultValue = "false",
documentationCategory = OptionDocumentationCategory.OUTPUT_SELECTION,
- effectTags = {OptionEffectTag.ACTION_OPTIONS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES},
help = "Enables module map generation and interpretation."
)
public boolean enableModuleMaps;
@@ -172,7 +172,7 @@ public class ObjcCommandLineOptions extends FragmentOptions {
defaultValue = "false",
category = "flags",
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES},
help =
"Whether to perform symbol and dead-code strippings on linked binaries. Binary "
+ "strippings will be performed if both this flag and --compilationMode=opt are "
@@ -185,7 +185,7 @@ public class ObjcCommandLineOptions extends FragmentOptions {
defaultValue = "false",
category = "flags",
documentationCategory = OptionDocumentationCategory.OUTPUT_SELECTION,
- effectTags = {OptionEffectTag.AFFECTS_OUTPUTS, OptionEffectTag.ACTION_OPTIONS},
+ effectTags = {OptionEffectTag.AFFECTS_OUTPUTS, OptionEffectTag.ACTION_COMMAND_LINES},
help = "Whether to generate debug symbol(.dSYM) file(s)."
)
public boolean appleGenerateDsym;
@@ -195,7 +195,7 @@ public class ObjcCommandLineOptions extends FragmentOptions {
defaultValue = "null",
category = "flags",
documentationCategory = OptionDocumentationCategory.SIGNING,
- effectTags = {OptionEffectTag.ACTION_OPTIONS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES},
help =
"Certificate name to use for iOS signing. If not set will fall back to provisioning "
+ "profile. May be the certificate's keychain identity preference or (substring) of "
@@ -207,7 +207,7 @@ public class ObjcCommandLineOptions extends FragmentOptions {
name = "objc_debug_with_GLIBCXX",
defaultValue = "true",
documentationCategory = OptionDocumentationCategory.OUTPUT_PARAMETERS,
- effectTags = {OptionEffectTag.ACTION_OPTIONS},
+ effectTags = {OptionEffectTag.ACTION_COMMAND_LINES},
help =
"If set, and compilation mode is set to 'dbg', define GLIBCXX_DEBUG, "
+ " GLIBCXX_DEBUG_PEDANTIC and GLIBCPP_CONCEPT_CHECKS."
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
index b948065cc8..c4ee406765 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
@@ -123,8 +123,8 @@ public class ProtoConfiguration extends Fragment {
defaultValue = "strict",
converter = BuildConfiguration.StrictDepsConverter.class,
category = "semantics",
- documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
- effectTags = {OptionEffectTag.LOADING_AND_ANALYSIS},
+ documentationCategory = OptionDocumentationCategory.INPUT_STRICTNESS,
+ effectTags = {OptionEffectTag.BUILD_FILE_SEMANTICS, OptionEffectTag.EAGERNESS_TO_EXIT},
metadataTags = {OptionMetadataTag.INCOMPATIBLE_CHANGE},
help =
"If true, checks that a proto_library target explicitly declares all directly "
diff --git a/src/main/java/com/google/devtools/common/options/OptionDocumentationCategory.java b/src/main/java/com/google/devtools/common/options/OptionDocumentationCategory.java
index 1f27046607..dd5420ca69 100644
--- a/src/main/java/com/google/devtools/common/options/OptionDocumentationCategory.java
+++ b/src/main/java/com/google/devtools/common/options/OptionDocumentationCategory.java
@@ -54,6 +54,12 @@ public enum OptionDocumentationCategory {
/** This option's primary purpose is to affect the verbosity, format or location of logging. */
LOGGING,
+ /**
+ * This option affects how strictly Bazel enforces valid build inputs (rule definitions,
+ * flag combinations, etc).
+ */
+ INPUT_STRICTNESS,
+
/** This option deals with how to go about executing the build. */
EXECUTION_STRATEGY,
diff --git a/src/main/java/com/google/devtools/common/options/OptionEffectTag.java b/src/main/java/com/google/devtools/common/options/OptionEffectTag.java
index 136929a074..500643f4ab 100644
--- a/src/main/java/com/google/devtools/common/options/OptionEffectTag.java
+++ b/src/main/java/com/google/devtools/common/options/OptionEffectTag.java
@@ -139,8 +139,12 @@ public enum OptionEffectTag {
/**
* This option is used to change command line arguments of one or more actions during the build.
+ *
+ * <p>Even though many options implicitly change command line arguments because they change
+ * configured target analysis, this setting is intended for options specifically meant for
+ * for that purpose.
*/
- ACTION_OPTIONS(13),
+ ACTION_COMMAND_LINES(13),
/** This option is used to change the testrunner environment of the build. */
TEST_RUNNER(14);
diff --git a/src/main/java/com/google/devtools/common/options/OptionFilterDescriptions.java b/src/main/java/com/google/devtools/common/options/OptionFilterDescriptions.java
index 4c6efefe1d..2a7999de26 100644
--- a/src/main/java/com/google/devtools/common/options/OptionFilterDescriptions.java
+++ b/src/main/java/com/google/devtools/common/options/OptionFilterDescriptions.java
@@ -22,18 +22,19 @@ public class OptionFilterDescriptions {
/** The order that the categories should be listed in. */
static OptionDocumentationCategory[] documentationOrder = {
- OptionDocumentationCategory.BAZEL_CLIENT_OPTIONS,
- OptionDocumentationCategory.EXECUTION_STRATEGY,
- OptionDocumentationCategory.TOOLCHAIN,
- OptionDocumentationCategory.OUTPUT_SELECTION,
- OptionDocumentationCategory.OUTPUT_PARAMETERS,
- OptionDocumentationCategory.SIGNING,
- OptionDocumentationCategory.TESTING,
- OptionDocumentationCategory.QUERY,
- OptionDocumentationCategory.BUILD_TIME_OPTIMIZATION,
- OptionDocumentationCategory.LOGGING,
- OptionDocumentationCategory.GENERIC_INPUTS,
- OptionDocumentationCategory.UNCATEGORIZED
+ OptionDocumentationCategory.BAZEL_CLIENT_OPTIONS,
+ OptionDocumentationCategory.EXECUTION_STRATEGY,
+ OptionDocumentationCategory.TOOLCHAIN,
+ OptionDocumentationCategory.OUTPUT_SELECTION,
+ OptionDocumentationCategory.OUTPUT_PARAMETERS,
+ OptionDocumentationCategory.INPUT_STRICTNESS,
+ OptionDocumentationCategory.SIGNING,
+ OptionDocumentationCategory.TESTING,
+ OptionDocumentationCategory.QUERY,
+ OptionDocumentationCategory.BUILD_TIME_OPTIMIZATION,
+ OptionDocumentationCategory.LOGGING,
+ OptionDocumentationCategory.GENERIC_INPUTS,
+ OptionDocumentationCategory.UNCATEGORIZED
};
static ImmutableMap<OptionDocumentationCategory, String> getOptionCategoriesEnumDescription(
@@ -65,6 +66,10 @@ public class OptionFilterDescriptions {
"Options that let the user configure the intended output, affecting its value, as "
+ "opposed to its existence")
.put(
+ OptionDocumentationCategory.INPUT_STRICTNESS,
+ "Options that affect how strictly Bazel enforces valid build inputs (rule definitions, "
+ + " flag combinations, etc.)")
+ .put(
OptionDocumentationCategory.SIGNING,
"Options that affect the signing outputs of a build")
.put(
@@ -140,7 +145,7 @@ public class OptionFilterDescriptions {
OptionEffectTag.TERMINAL_OUTPUT,
"This option affects " + productName + "'s terminal output.")
.put(
- OptionEffectTag.ACTION_OPTIONS,
+ OptionEffectTag.ACTION_COMMAND_LINES,
"This option changes the command line arguments of one or more build actions.")
.put(
OptionEffectTag.TEST_RUNNER,
diff --git a/src/main/protobuf/option_filters.proto b/src/main/protobuf/option_filters.proto
index 4179f1914d..6a4e3e4959 100644
--- a/src/main/protobuf/option_filters.proto
+++ b/src/main/protobuf/option_filters.proto
@@ -41,7 +41,7 @@ enum OptionEffectTag {
EAGERNESS_TO_EXIT = 10;
BAZEL_MONITORING = 11;
TERMINAL_OUTPUT = 12;
- ACTION_OPTIONS = 13;
+ ACTION_COMMAND_LINES = 13;
TEST_RUNNER = 14;
}
diff --git a/src/test/java/com/google/devtools/common/options/OptionsUsageTest.java b/src/test/java/com/google/devtools/common/options/OptionsUsageTest.java
index c7554a96f2..3fa5a8602a 100644
--- a/src/test/java/com/google/devtools/common/options/OptionsUsageTest.java
+++ b/src/test/java/com/google/devtools/common/options/OptionsUsageTest.java
@@ -706,7 +706,7 @@ public final class OptionsUsageTest {
" --test_void_expansion_function\n"
+ " Listing a ton of random tags to test the usage output.\n"
+ " Expands to: --expanded_d void expanded \n"
- + " Tags: action_options, test_runner, terminal_output, experimental\n");
+ + " Tags: action_command_lines, test_runner, terminal_output, experimental\n");
}
@Test
@@ -733,7 +733,8 @@ public final class OptionsUsageTest {
+ "&nbsp;&nbsp;<code>--expanded_d</code><br/>\n"
+ "&nbsp;&nbsp;<code>void expanded</code><br/>\n"
+ "<br>Tags: \n"
- + "<a href=\"#effect_tag_ACTION_OPTIONS\"><code>action_options</code></a>, "
+ + "<a href=\"#effect_tag_ACTION_COMMAND_LINES\"><code>action_command_lines</code>"
+ + "</a>, "
+ "<a href=\"#effect_tag_TEST_RUNNER\"><code>test_runner</code></a>, "
+ "<a href=\"#effect_tag_TERMINAL_OUTPUT\"><code>terminal_output</code></a>, "
+ "<a href=\"#metadata_tag_EXPERIMENTAL\"><code>experimental</code></a>"
diff --git a/src/test/java/com/google/devtools/common/options/TestOptions.java b/src/test/java/com/google/devtools/common/options/TestOptions.java
index 4eb1a2d8e6..fe7b8e0729 100644
--- a/src/test/java/com/google/devtools/common/options/TestOptions.java
+++ b/src/test/java/com/google/devtools/common/options/TestOptions.java
@@ -285,7 +285,7 @@ public class TestOptions extends OptionsBase {
defaultValue = "null",
documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
effectTags = {
- OptionEffectTag.ACTION_OPTIONS,
+ OptionEffectTag.ACTION_COMMAND_LINES,
OptionEffectTag.TEST_RUNNER,
OptionEffectTag.TERMINAL_OUTPUT
},