blob: e17335d9e07e1fd325cf9a2d81fdb063d9345638 [file]
###############################################################################
## Bazel Configuration Flags
##
## `.bazelrc` is a Bazel configuration file.
## https://bazel.build/docs/best-practices#bazelrc-file
###############################################################################
###############################################################################
## Build configuration
###############################################################################
# Don't create bazel-* symlinks in the WORKSPACE directory.
# Instead, set a prefix and put it in .gitignore
# build --symlink_prefix=target-bzl/
###############################################################################
## Test configuration
###############################################################################
# Reduce test output to just error cases
test --test_output=errors
test --verbose_failures
###############################################################################
## Common configuration
###############################################################################
# Enable Bzlmod for every Bazel command
common --enable_bzlmod
# Disable the bzlmod lockfile, so we don't accidentally commit MODULE.bazel.lock
common --lockfile_mode=off
# Write build outputs in a platform-specific directory;
# avoid outputs being wiped and rewritten when switching between platforms.
common --experimental_platform_in_output_dir
# https://github.com/bazelbuild/bazel/issues/8195
build --incompatible_disallow_empty_glob=true
# https://github.com/bazelbuild/bazel/issues/12821
build --nolegacy_external_runfiles
# Required for cargo_build_script support before Bazel 7
build --incompatible_merge_fixed_and_default_shell_env
# https://github.com/bazelbuild/bazel/issues/23043.
build --incompatible_autoload_externally=
###############################################################################
## Rust configuration
###############################################################################
# Enable rustfmt for all targets in the workspace
build:rustfmt --aspects=@rules_rust//rust:defs.bzl%rustfmt_aspect
build:rustfmt --output_groups=+rustfmt_checks
# Enable clippy for all targets in the workspace
build:clippy --aspects=@rules_rust//rust:defs.bzl%rust_clippy_aspect
build:clippy --output_groups=+clippy_checks
###############################################################################
## Custom user flags
##
## This should always be the last thing in the `.bazelrc` file to ensure
## consistent behavior when setting flags in that file as `.bazelrc` files are
## evaluated top to bottom.
###############################################################################
try-import %workspace%/user.bazelrc