# Copyright 2024 The Pigweed Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.

# Enable clippy lints
build --aspects=@rules_rust//rust:defs.bzl%rust_clippy_aspect
build --output_groups=+clippy_checks

# Enforce rustfmt formatting
# TODO - konkers: Fix rustfmt
# build --aspects=@rules_rust//rust:defs.bzl%rustfmt_aspect
# build --output_groups=+rustfmt_checks

# TODO - konkers: fix upstream stable toolchains
build --@@rules_rust+//rust/toolchain/channel=nightly

build:qemu-microbit --platforms=//target/qemu:microbit
run:qemu-microbit --run_under="@qemu//:qemu-system-arm \
-cpu cortex-m0 \
-machine microbit \
-nographic \
-semihosting-config \
enable=on,target=native \
-kernel "

build:qemu-lm3s6965evb --platforms=//target/qemu:lm3s6965evb
run:qemu-lm3s6965evb --run_under="@qemu//:qemu-system-arm \
-cpu cortex-m3 \
-machine lm3s6965evb \
-nographic \
-semihosting-config \
enable=on,target=native \
-kernel "

# Remote execution config definitions
# ===================================
# Use the remote cache. This will only work for users who have permission to access it.
common:remote_cache --bes_backend="buildeventservice.googleapis.com"
common:remote_cache --bes_instance_name=pigweed-rbe-open
common:remote_cache --bes_results_url="https://source.cloud.google.com/results/invocations/"
common:remote_cache --bes_timeout=600s
common:remote_cache --experimental_remote_cache_eviction_retries=5
common:remote_cache --google_default_credentials=true
# Required to use buildeventservice on Bazel 8+.
# TODO: b/345556899 -- Remove this flag when no longer required.
common:remote_cache --legacy_important_outputs
common:remote_cache --remote_cache=grpcs://remotebuildexecution.googleapis.com
common:remote_cache --remote_instance_name=projects/pigweed-rbe-open/instances/default-instance
common:remote_cache --remote_upload_local_results=false

# cache-silo-key: this is essentially a "salt" added to the remote cache key.
# Change it to a new value when we want to create a new cache from scratch
# (e.g. to recover from cache poisoning). We've used the current date in
# YYYYMMDD format in the past.
common --remote_default_exec_properties=cache-silo-key=20240918

# User bazelrc file
# =================
# See https://bazel.build/configure/best-practices#bazelrc-file
#
# Note: this should be at the bottom of the file, so that user-specified
# options override anything in this file
# (https://bazel.build/run/bazelrc#imports)
try-import %workspace%/user.bazelrc
