# bazel-1.0.0.bazelrc

# for now: filter out annoying TASTY warnings
common --ui_event_filters=-INFO

# Don't use toolchains_llvm for the swift app build
common:mactools --ignore_dev_dependency

common --enable_platform_specific_config

common --strategy=Scalac=worker
common --worker_sandboxing

common --local_test_jobs=64
common --jobs=64

common --cxxopt="--std=c++23"
common --cxxopt="-Wno-deprecated-non-prototype"
common --per_file_copt=src/test/cpp/.*@-Wno-character-conversion
common --per_file_copt=src/test/cpp/.*@-Wno-deprecated-enum-compare
common --per_file_copt=src/test/cpp/.*@-Wno-sign-compare
common --per_file_copt=src/test/cpp/.*@-Wno-unknown-warning-option
common --host_cxxopt="--std=c++23"

common --javacopt="-Xlint:-options"

# Prefer protobuf's prebuilt protoc toolchain instead of building protoc from
# source when compatible binaries are available.
common --@com_google_protobuf//bazel/toolchains:prefer_prebuilt_protoc

# std::filesystem and other modern C++ deps require macOS 10.15+.
common:macos --macos_minimum_os=10.15
common:macos --host_macos_minimum_os=10.15

# suppress warnings due to https://developer.apple.com/forums/thread/733317
# Use host_linkopt for macOS-specific flags to avoid passing them to Linux cross-compilation
common:macos --host_linkopt=-Wl,-no_warn_duplicate_libraries

# Pin default DEVELOPER_DIR so Apple repo rules use full Xcode instead of
# Command Line Tools when they are needed.
common:macos --repo_env=DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

# Local machine or CI overrides. This lets Bazel-only runners use Command Line
# Tools without installing full Xcode. This must stay before .bazelrc.xcode so
# generated Xcode settings win when both files exist.
try-import %workspace%/.bazelrc.local

# Xcode config for Apple tool builds. Generated by scripts/sync_bazel_xcode.sh.
# Bakes the Xcode build version into mactools action cache keys without making
# ordinary macOS Bazel builds depend on the installed Xcode build number.
try-import %workspace%/.bazelrc.xcode

common --java_language_version=25
common --java_runtime_version=remotejdk_25
common --tool_java_language_version=25
common --tool_java_runtime_version=remotejdk_25

# Workspace status for build stamping (git commit, timestamp)
# Only targets with stamp=1 will use these values; we intentionally
# do NOT set "common --stamp" so non-stamped targets can share the
# remote cache across CI workflows.
common --workspace_status_command=tools/workspace_status.sh
