blob: fabaae73c9e04f52d84d1b3c4d192f35521540e2 [file] [log] [blame]
load("@bazel_skylib//:bzl_library.bzl", "bzl_library")
load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
load(
"//rust:defs.bzl",
"capture_clippy_output",
"clippy_flag",
"clippy_flags",
"error_format",
"extra_exec_rustc_flag",
"extra_exec_rustc_flags",
"extra_rustc_flag",
"extra_rustc_flags",
"no_std",
"per_crate_rustc_flag",
"rustc_output_diagnostics",
)
exports_files([
"LICENSE",
"MODULE.bazel",
])
bzl_library(
name = "bzl_lib",
srcs = [
":version.bzl",
],
visibility = ["//visibility:public"],
)
# This setting may be changed from the command line to generate machine readable errors.
error_format(
name = "error_format",
build_setting_default = "human",
visibility = ["//visibility:public"],
)
# This setting may be changed from the command line to generate rustc diagnostics.
rustc_output_diagnostics(
name = "rustc_output_diagnostics",
build_setting_default = False,
visibility = ["//visibility:public"],
)
# This setting may be used to pass extra options to clippy from the command line.
# It applies across all targets.
clippy_flags(
name = "clippy_flags",
build_setting_default = [],
visibility = ["//visibility:public"],
)
clippy_flag(
name = "clippy_flag",
build_setting_default = "",
visibility = ["//visibility:public"],
)
# This setting may be used to pass extra options to rustc from the command line
# in non-exec configuration.
# It applies across all targets whereas the rustc_flags option on targets applies only
# to that target. This can be useful for passing build-wide options such as LTO.
extra_rustc_flags(
name = "extra_rustc_flags",
build_setting_default = [],
visibility = ["//visibility:public"],
)
extra_rustc_flag(
name = "extra_rustc_flag",
build_setting_default = "",
visibility = ["//visibility:public"],
)
# This setting may be used to pass extra options to rustc from the command line
# in exec configuration.
# It applies across all targets whereas the rustc_flags option on targets applies only
# to that target. This can be useful for passing build-wide options such as LTO.
extra_exec_rustc_flags(
name = "extra_exec_rustc_flags",
build_setting_default = [],
visibility = ["//visibility:public"],
)
extra_exec_rustc_flag(
name = "extra_exec_rustc_flag",
build_setting_default = "",
visibility = ["//visibility:public"],
)
per_crate_rustc_flag(
name = "experimental_per_crate_rustc_flag",
build_setting_default = "",
visibility = ["//visibility:public"],
)
# This setting is used by the clippy rules. See https://bazelbuild.github.io/rules_rust/rust_clippy.html
label_flag(
name = "clippy.toml",
build_setting_default = "//tools/clippy:clippy.toml",
visibility = ["//visibility:public"],
)
# This setting is used by the rustfmt rules. See https://bazelbuild.github.io/rules_rust/rust_fmt.html
label_flag(
name = "rustfmt.toml",
build_setting_default = "//tools/rustfmt:rustfmt.toml",
visibility = ["//visibility:public"],
)
alias(
name = "rustfmt",
actual = "//tools/rustfmt",
visibility = ["//visibility:public"],
)
capture_clippy_output(
name = "capture_clippy_output",
build_setting_default = False,
visibility = ["//visibility:public"],
)
# This setting may be used to enable builds without the standard library.
# Currently only no_std + alloc is supported, which can be enabled with setting the value to "alloc".
# In the future we could add support for additional modes, e.g "core", "alloc,collections".
string_flag(
name = "no_std",
build_setting_default = "off",
values = [
"alloc",
"off",
],
visibility = ["//visibility:public"],
)
# A hack target to allow as to only apply the no_std mode in target config.
no_std(
name = "build_target_in_no_std",
)
# A config setting for setting conditional `cargo_features`, `deps`, based on the `:no_std` value.
config_setting(
name = "is_no_std",
flag_values = {
":build_target_in_no_std": "alloc",
},
visibility = ["//visibility:public"],
)