Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var AndroidLoadPath = "@rules_android//android:rules.bzl"
AndroidLoadPath is the load path for the Starlark Android Rules.
var AndroidNativeRules = []string{
"aar_import",
"android_binary",
"android_device",
"android_instrumentation_test",
"android_library",
"android_local_test",
"android_ndk_respository",
"android_sdk_repository",
}
AndroidNativeRules lists all Android rules that are being migrated from Native to Starlark.
var CcLoadPath = "@rules_cc//cc:defs.bzl"
CcLoadPath is the load path for the Starlark C++ Rules.
var CcNativeRules = []string{
"cc_binary",
"cc_test",
"cc_library",
"cc_import",
"fdo_prefetch_hints",
"fdo_profile",
"cc_toolchain",
"cc_toolchain_suite",
"objc_library",
"objc_import",
}
CcNativeRules lists all C++ rules that are being migrated from Native to Starlark.
var IsLabelArg = map[string]bool{ "app_target": true, "appdir": true, "base_package": true, "build_deps": true, "cc_deps": true, "ccdeps": true, "common_deps": true, "compile_deps": true, "compiler": true, "data": true, "default_visibility": true, "dep": true, "deps": true, "deps_java": true, "dont_depend_on": true, "env_deps": true, "envscripts": true, "exported_deps": true, "exports": true, "externs_list": true, "files": true, "globals": true, "implementation": true, "implementation_deps": true, "implements": true, "includes": true, "interface": true, "jar": true, "jars": true, "javadeps": true, "lib_deps": true, "library": true, "malloc": true, "model": true, "mods": true, "module_deps": true, "module_target": true, "of": true, "plugins": true, "private_deps": true, "proto_deps": true, "proto_target": true, "protos": true, "resource": true, "resources": true, "runtime_deps": true, "scope": true, "shared_deps": true, "similar_deps": true, "source_jar": true, "src": true, "srcs": true, "stripped_targets": true, "suites": true, "swigdeps": true, "target": true, "target_devices": true, "target_platforms": true, "template": true, "test": true, "test_data": true, "test_deps": true, "test_srcs": true, "tests": true, "tests_deps": true, "tool": true, "tools": true, "visibility": true, }
IsLabelArg contains a list of named arguments to a rule call that are considered to have a value that can be treated as a label or list of labels. There is a separate denylist for rule-specific exceptions.
var IsListArg = map[string]bool{}
By default, edit.types.IsList consults lang.TypeOf to determine if an arg is a list. You may override this using IsListArg. Specifying a name here overrides any value in lang.TypeOf.
var IsModuleOverride = map[string]bool{ "archive_override": true, "git_override": true, "local_path_override": true, "multiple_version_override": true, "single_version_override": true, }
IsModuleOverride contains the names of all Bzlmod module overrides available in MODULE.bazel.
var IsSortableListArg = map[string]bool{ "cc_deps": true, "common_deps": true, "compile_deps": true, "configs": true, "constraints": true, "data": true, "default_visibility": true, "deps": true, "deps_java": true, "exported_deps": true, "exports": true, "filegroups": true, "files": true, "hdrs": true, "implementation_deps": true, "imports": true, "includes": true, "inherits": true, "javadeps": true, "lib_deps": true, "module_deps": true, "out": true, "outs": true, "packages": true, "plugin_modules": true, "private_deps": true, "proto_deps": true, "protos": true, "pubs": true, "resources": true, "runtime_deps": true, "shared_deps": true, "similar_deps": true, "srcs": true, "swigdeps": true, "swig_includes": true, "tags": true, "test_data": true, "test_deps": true, "test_srcs": true, "test_tags": true, "tests": true, "tools": true, "to_start_extensions": true, "visibility": true, }
IsSortableListArg contains a list of named arguments to a rule call that are considered to be a sortable list . There is a separate denylist for rule-specific exceptions.
var JavaLoadPathPrefix = "@rules_java//java"
JavaLoadPathPrefix is the load package for the Starlark Java Rules.
var LabelDenylist = map[string]bool{ "package_group.includes": true, }
LabelDenylist is the list of call arguments that cannot be shortened, because they are not interpreted using the same rules as for other labels.
var ModuleToLegacyRepoName = map[string]string{
"protobuf": "com_google_protobuf",
}
ModuleToLegacyRepoName contains the mapping from module name to WORKSPACE repository name for modules with load fixes if those names are different.
var NamePriority = map[string]int{
"name": -99,
"archive_override.module_name": -99,
"git_override.module_name": -99,
"local_path_override.module_name": -99,
"multiple_version_override.module_name": -99,
"single_version_override.module_name": -99,
"bazel_dep.version": -98,
"module.version": -98,
"gwt_name": -98,
"package_name": -97,
"visible_node_name": -96,
"size": -95,
"timeout": -94,
"testonly": -93,
"src": -92,
"srcdir": -91,
"srcs": -90,
"out": -89,
"outs": -88,
"hdrs": -87,
"has_services": -86,
"include": -85,
"of": -84,
"baseline": -83,
"destdir": 1,
"exports": 2,
"runtime_deps": 3,
"deps": 4,
"implementation": 5,
"implements": 6,
"alwayslink": 7,
}
NamePriority maps an argument name to its sorting priority.
NOTE(bazel-team): These are the old buildifier rules. It is likely that this table will change, perhaps swapping in a separate table for each call, derived from the order used in the Build Encyclopedia.
var ProtoLoadPathPrefix = "@protobuf//bazel"
ProtoLoadPathPrefix is the load path prefix for the Starlark Proto Rules.
var PyLoadPath = "@rules_python//python:defs.bzl"
PyLoadPath is the load path for the Starlark Python Rules.
var PyNativeRules = []string{
"py_library",
"py_binary",
"py_test",
"py_runtime",
}
PyNativeRules lists all Python rules that are being migrated from Native to Starlark.
var ShortenAbsoluteLabelsToRelative = false
var SortableAllowlist = map[string]bool{}
SortableAllowlist records specific rule arguments that are guaranteed to be reorderable (format: "rule_name.attribute_name").
var SortableDenylist = map[string]bool{ "genrule.outs": true, "genrule.srcs": true, "cc_embed_data.srcs": true, }
SortableDenylist records specific rule arguments that must not be reordered.
var StripLabelLeadingSlashes = false
Functions ¶
func MergeTables ¶
func MergeTables(labelArg, denylist, listArg, sortableListArg, sortDenylist, sortAllowlist map[string]bool, namePriority map[string]int, stripLabelLeadingSlashes, shortenAbsoluteLabelsToRelative bool)
MergeTables allows a user of the build package to override the special-case rules. The user-provided tables are merged into the built-in tables.
func OverrideTables ¶
func OverrideTables(labelArg, denylist, listArg, sortableListArg, sortDenylist, sortAllowlist map[string]bool, namePriority map[string]int, stripLabelLeadingSlashes, shortenAbsoluteLabelsToRelative bool)
OverrideTables allows a user of the build package to override the special-case rules. The user-provided tables replace the built-in tables.
func ParseAndUpdateJSONDefinitions ¶
ParseAndUpdateJSONDefinitions reads definitions from file and merges or overrides the values in memory.
Types ¶
type Definitions ¶
type Definitions struct { IsLabelArg map[string]bool LabelDenylist map[string]bool IsListArg map[string]bool IsSortableListArg map[string]bool SortableDenylist map[string]bool SortableAllowlist map[string]bool NamePriority map[string]int StripLabelLeadingSlashes bool ShortenAbsoluteLabelsToRelative bool }
func ParseJSONDefinitions ¶
func ParseJSONDefinitions(file string) (Definitions, error)
ParseJSONDefinitions reads and parses JSON table definitions from file.