# 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

# We still require WORKSPACE support as bazeldnf isn't bzlmod compatible yet.
common --enable_workspace

# 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

# 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_amd64

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

# Run all spawns in our own hermetic sandbox sysroot.
build --experimental_use_hermetic_linux_sandbox
build --sandbox_fake_hostname
build --sandbox_fake_username
build --action_env=MONOGON_SANDBOX_DIGEST
import %workspace%/.bazelrc.sandbox

# Enable revised output directory hash suffix computation
build --experimental_output_directory_naming_scheme=diff_against_dynamic_baseline
build --experimental_exec_configuration_distinguisher=off

# Enable resource set configuration via starlark for actions
build --experimental_action_resource_set

# Hardwire all action envs to just use /usr/bin from the above sandbox. This is
# necessary on NixOS Bazel builds, as they really like to inject /nix/store/*
# paths otherwise. We also explicitly set it to /usr/bin only (no /bin) as
# otherwise calling gcc from /bin/gcc breaks its own resolution of subordinate
# commands (like cc1, as, etc.).
build --action_env=PATH=/usr/bin
build --host_action_env=PATH=/usr/bin

# Make all shell run actions use /bin/bash instead of whatever the host might
# have set. Again, looking at you, Bazel-on-NixOS.
build --shell_executable=/bin/bash

# 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

# 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_amd64

# 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_amd64
# Make sure our platform is picked instead of the --host_platform.
build --extra_execution_platforms=//build/platforms:linux_amd64

# 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

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

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

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