blob: d1faaafa76b9de8a774e3588a3a89ce950e6e00a [file] [log] [blame]
// Copyright 2017 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.common.options;
/**
* These categories are used to logically group options in generated documentation, both the command
* line output for the standard HelpCommand and the html output used for command-line-reference on
* the website.
*
* <p>Grouping things is only a useful exercise if the group includes multiple units. Please only
* add categories that group a useful subset of options. (>2, <200, let's say)
*/
public enum OptionDocumentationCategory {
/**
* A category to aid transition, to make it obvious that an option needs to be categorized. Note:
* Do NOT add this to new flags!
*/
UNCATEGORIZED,
/**
* A category for flags that are intended to not be listed, and for whom a documentation category
* does not make sense.
*/
UNDOCUMENTED,
/**
* Startup options appear before the command and are parsed by the client. Changing them may cause
* a server restart, see OptionEffectTag.LOSES_INCREMENTAL_STATE.
*/
BAZEL_CLIENT_OPTIONS,
/** This option's primary purpose is to affect the verbosity, format or location of logging. */
LOGGING,
/** This option deals with how to go about executing the build. */
EXECUTION_STRATEGY,
/**
* This option lets a user specify WHICH output they wish the command to have. It might be a
* selective filter on the outputs, or a blanket on/off switch.
*/
OUTPUT_SELECTION,
/**
* This option lets a user configure the outputs. Unlike OUTPUT_SELECTION, which specifies whether
* or not an output is built, this specifies qualities of the output.
*/
OUTPUT_PARAMETERS,
}