build --enable_platform_specific_config=true
# Minumum C++ version. Override it building this project with
# `bazel build --cxxopt='-std=c++<XY>' --host_cxxopt='c++<XY>' ...`
# (Both -std and --host_cxxopt must be set to force the desired version.)
build:linux --cxxopt=-std=c++17
build:linux --host_cxxopt=-std=c++17
build:macos --cxxopt=-std=c++17
build:macos --host_cxxopt=-std=c++17
build:windows --cxxopt='/std:c++17'
build:windows --host_cxxopt='/std:c++17'
build:windows --cxxopt='/permissive-'
build:windows --host_cxxopt='/permissive-'

# Solve various length limits. See e.g., https://github.com/bazelbuild/bazel/issues/17068.
build:windows --features=archive_param_file
build:windows --features=linker_param_file
build:windows --features=compiler_param_file
build:windows --enable_runfiles
# https://github.com/protocolbuffers/protobuf/issues/20085
build:windows --define=protobuf_allow_msvc=true

# Configs for macOS on x86_64 (selected with --config=macos_x86_64)
# NOTE: If macos_minimum_os is unspecified, Bazel uses the default value of
# macos_sdk_version which is taken from the default system Xcode [1], even if
# MACOSX_DEPLOYMENT_TARGET is set [2].
# [1] https://bazel.build/reference/command-line-reference#flag--macos_minimum_os
# [2] https://github.com/bazelbuild/bazel/issues/16932
build:macos_x86_64 --macos_minimum_os=11.0
build:macos_x86_64 --platforms=//:darwin_x86_64

# Configs for macOS on ARM64 (selected with --config=macos_arm64)
build:macos_arm64 --macos_minimum_os=11.0
build:macos_arm64 --platforms=//:darwin_arm64

# https://github.com/bazel-contrib/rules_python/issues/2947
common --incompatible_default_to_explicit_init_py


# Silence all C/C++ warnings in external code.
#
# Note that this will not silence warnings from external headers included
# in project code.
build --per_file_copt=external/.*@-w
build --host_per_file_copt=external/.*@-w

test --test_output=errors
