# Import Aspect bazelrc presets
import %workspace%/third_party/bazelrc/aspect/bazel8.bazelrc
import %workspace%/third_party/bazelrc/aspect/convenience.bazelrc
import %workspace%/third_party/bazelrc/aspect/correctness.bazelrc
import %workspace%/third_party/bazelrc/aspect/performance.bazelrc

# rules_proto_grpc isn't fully compatible with Bazel 8 yet.
common --noincompatible_disallow_ctx_resolve_tools

# Actually make the lock file a lock file by not updating it without any
# request to do so.
common --lockfile_mode=error

# Allow empty globs as there are a lot until we replace our rust toolchain and
# qemu BUILD files.
common --noincompatible_disallow_empty_glob

# Don't warn about too high test timeout as these can vary a lot.
test --notest_verbose_timeout_warnings

# Set compilation mode (-c) to debug when running with --config dbg.
build:dbg --compilation_mode=dbg

# Run race config with race detector
build:race --@io_bazel_rules_go//go/config:race
build:race --no@io_bazel_rules_go//go/config:pure

# Only download the final result, the intermediate files can stay on the
# server side.
build:remote --remote_download_toplevel
build:remote --noremote_upload_local_results

# Set the execution platform which adds constraints for the scheduler.
build:remote --extra_execution_platforms=//build/platforms:remote_x86_64

# We have some large uploads and actions, the default 60s is not enough.
build:remote --remote_timeout=360s

# Enable pure by default. Specific go_binary targets which need cgo should set
# `pure = "off"`.
build --@io_bazel_rules_go//go/config:pure

# Force netgo and osusergo
build --@io_bazel_rules_go//go/config:tags=osusergo,netgo

# Include platform in output directory name. For each platform we use, a short
# name should be assigned here, otherwise Bazel uses a hash.
build --experimental_platform_in_output_dir
build --noexperimental_use_platforms_in_output_dir_legacy_heuristic
build --experimental_override_name_platform_in_output_dir=//build/platforms:linux_x86_64=linux-x86_64
build --experimental_override_name_platform_in_output_dir=//build/platforms:linux_aarch64=linux-aarch64
build --experimental_override_name_platform_in_output_dir=//build/platforms:uefi_x86_64=uefi-x86_64
build --experimental_override_name_platform_in_output_dir=//build/platforms:uefi_aarch64=uefi-aarch64
build --experimental_override_name_platform_in_output_dir=//build/platforms:remote_x86_64=remote-x86_64
build --experimental_override_name_platform_in_output_dir=@io_bazel_rules_go//go/toolchain:darwin_amd64=go-darwin-amd64
build --experimental_override_name_platform_in_output_dir=@io_bazel_rules_go//go/toolchain:darwin_arm64=go-darwin-arm64
build --experimental_override_name_platform_in_output_dir=@io_bazel_rules_go//go/toolchain:windows_amd64=go-windows-amd64
build --experimental_override_name_platform_in_output_dir=@io_bazel_rules_go//go/toolchain:windows_arm64=go-windows-arm64

# Enable path mapping to improve cache hit rate.
# Actions in custom rules can opt in with supports-path-mapping.
# See https://github.com/bazelbuild/bazel/discussions/22658
build --experimental_output_paths=strip

# Stop propagation of settings to exec config by default.
# See https://github.com/bazelbuild/bazel/issues/22457
build --experimental_exclude_starlark_flags_from_exec_config
# These flags need to be propagated for nogo to work. We currently need to
# reference rules_go with the canonical repo name; this is no longer necessary
# once the fix for https://github.com/bazelbuild/bazel/issues/25208 is released.
build --experimental_propagate_custom_flag=@@rules_go+//go/private:request_nogo
build --experimental_propagate_custom_flag=@@rules_go+//go/private:bootstrap_nogo

# rules_python uses host python for bootstrapping.
# Override to use a shell script for this.
# https://github.com/bazelbuild/rules_python/issues/691
build --@rules_python//python/config_settings:bootstrap_impl=script
build --experimental_propagate_custom_flag=@@rules_python+//python/config_settings:bootstrap_impl

# No local CPP toolchain resolution. In our sandbox root, it doesn't make sense -
# anything auto-detected during analysis stage is on the host instead of the sandbox.
# Sysroot rebuild is pure Go and doesn't need it either.
# The flag ensures we fail early if we somehow depend on the host toolchain,
# and do not spend unnecessary time on autodiscovery.
build --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1

# Use new-style C++ toolchain resolution.
build --incompatible_enable_cc_toolchain_resolution
build --experimental_cc_static_library

# Use new-style proto toolchain resolution.
build --incompatible_enable_proto_toolchain_resolution

# In our monorepo, we mostly ignore the host platform since we bring our own
# execution environment. However, we still need to run a small number of tools
# such as gazelle.
build --host_platform=//build/platforms:linux_x86_64

# Target platform for the monorepo is currently the same as the host platform,
# but we'll support cross-compilation at some point. Do not rely on it.
build --platforms=//build/platforms:linux_x86_64
# Make sure our platform is picked instead of the --host_platform.
build --extra_execution_platforms=//build/platforms:linux_x86_64

# Build resources
startup --batch_cpu_scheduling --io_nice_level 7

# Build with C++17.
build --cxxopt=-std=c++17

# Set workspace status file and stamp
build --stamp --workspace_status_command=./build/print-workspace-status.py

# The --nostamp Bazel flag does not work in this repo; instead use
# --config=nostamp to disable stamping with commit info.
build:nostamp --workspace_status_command="./build/print-workspace-status.py --nostamp"

# Assume a 10k IOPS device (average NVMe) and 64GiB of RAM for test scheduling.
test --local_resources=iops=10000 --local_resources=ram=64000

common --downloader_config=build/bazel/bazel_downloader.cfg

# Load custom per-user settings.
try-import %workspace%/.bazelrc.user
