# bazelrc file

# for platform-appropriate cxxopts
common --enable_platform_specific_config

build:windows --cxxopt='/std:c++14'
build:windows --host_cxxopt='/std:c++14'
build:linux   --cxxopt='-std=c++14'
build:linux   --host_cxxopt='-std=c++14'
build:macos   --cxxopt='-std=c++14'
build:macos   --host_cxxopt='-std=c++14'
build:freebsd   --cxxopt='-std=c++14'
build:freebsd   --host_cxxopt='-std=c++14'

# Don't trigger --config=<host platform> when cross-compiling.
build:android --noenable_platform_specific_config
build:ios --noenable_platform_specific_config

build --client_env=CC=clang
build --copt=-DGRPC_BAZEL_BUILD
build --host_copt=-DGRPC_BAZEL_BUILD
build --action_env=GRPC_BAZEL_RUNTIME=1
build --define=use_fast_cpp_protos=true

build:opt --compilation_mode=opt
build:opt --copt=-Wframe-larger-than=16384

build:dbg --compilation_mode=dbg
build:dbg --copt=-Werror=return-stack-address

# Dynamic link cause issues like: `dyld: malformed mach-o: load commands size (59272) > 32768`
# https://github.com/bazelbuild/bazel/issues/9190
build:macos --dynamic_mode=off

build:windows_opt --compilation_mode=opt
build:windows_dbg --compilation_mode=dbg

build:asan --strip=never
build:asan --copt=-fsanitize=address
build:asan --copt=-O0
build:asan --copt=-fno-omit-frame-pointer
build:asan --copt=-DGPR_NO_DIRECT_SYSCALLS
build:asan --copt=-DGRPC_ASAN
build:asan --copt=-DADDRESS_SANITIZER  # used by absl
build:asan --linkopt=-fsanitize=address
build:asan --action_env=ASAN_OPTIONS=detect_leaks=1:color=always
build:asan --action_env=LSAN_OPTIONS=suppressions=test/core/util/lsan_suppressions.txt:report_objects=1

build:fuzzer_asan --strip=never
build:fuzzer_asan --define=grpc_build_fuzzers=true
build:fuzzer_asan --copt=-fsanitize=fuzzer,address
build:fuzzer_asan --copt=-fsanitize-coverage=edge
build:fuzzer_asan --copt=-fsanitize-coverage=trace-cmp
build:fuzzer_asan --copt=-O0
build:fuzzer_asan --copt=-fno-omit-frame-pointer
build:fuzzer_asan --copt=-DGPR_NO_DIRECT_SYSCALLS
build:fuzzer_asan --copt=-DGRPC_ASAN
build:fuzzer_asan --copt=-DADDRESS_SANITIZER  # used by absl
build:fuzzer_asan --linkopt=-fsanitize=fuzzer,address
build:fuzzer_asan --action_env=ASAN_OPTIONS=detect_leaks=1:color=always
build:fuzzer_asan --action_env=LSAN_OPTIONS=suppressions=test/core/util/lsan_suppressions.txt:report_objects=1

build:fork_support --cxxopt=-DGRPC_ENABLE_FORK_SUPPORT=1
build:fork_support --cxxopt=-DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1
build:fork_support --action_env=GRPC_ENABLE_FORK_SUPPORT=1


# We have a separate ASAN config for Mac OS to workaround a couple of bugs:
# 1. https://github.com/bazelbuild/bazel/issues/6932
#    _FORTIFY_SOURCE=1 is enabled by default on Mac OS, which breaks ASAN.
#    We workaround it by setting _FORTIFY_SOURCE=0 and ignoring macro redefined
#    warnings.
# 2. https://github.com/google/sanitizers/issues/1026
#    LSAN is not supported by the version of Clang that ships with Mac OS, so
#    we disable it.
build:asan_macos --strip=never
build:asan_macos --copt=-fsanitize=address
build:asan_macos --copt -Wno-macro-redefined
build:asan_macos --copt -D_FORTIFY_SOURCE=0
build:asan_macos --copt=-fsanitize=address
build:asan_macos --copt=-O0
build:asan_macos --copt=-fno-omit-frame-pointer
build:asan_macos --copt=-DGPR_NO_DIRECT_SYSCALLS
build:asan_macos --linkopt=-fsanitize=address
build:asan_macos --action_env=ASAN_OPTIONS=detect_leaks=0
build:asan_macos --dynamic_mode=off

build:msan --strip=never
build:msan --copt=-fsanitize=memory
build:msan --copt=-O0
build:msan --copt=-fsanitize-memory-track-origins
build:msan --copt=-fsanitize-memory-use-after-dtor
build:msan --copt=-fno-omit-frame-pointer
build:msan --copt=-DGPR_NO_DIRECT_SYSCALLS
build:msan --linkopt=-fsanitize=memory
build:msan --action_env=MSAN_OPTIONS=poison_in_dtor=1

build:tsan --strip=never
build:tsan --copt=-fsanitize=thread
build:tsan --copt=-fno-omit-frame-pointer
build:tsan --copt=-DGPR_NO_DIRECT_SYSCALLS
build:tsan --copt=-DGRPC_TSAN
build:tsan --linkopt=-fsanitize=thread
build:tsan --action_env=TSAN_OPTIONS=suppressions=test/core/util/tsan_suppressions.txt:halt_on_error=1:second_deadlock_stack=1

build:tsan_macos --strip=never
build:tsan_macos --copt=-fsanitize=thread
build:tsan_macos --copt=-fno-omit-frame-pointer
build:tsan_macos --copt=-DGPR_NO_DIRECT_SYSCALLS
build:tsan_macos --copt=-DGRPC_TSAN
build:tsan_macos --linkopt=-fsanitize=thread
build:tsan_macos --action_env=TSAN_OPTIONS=suppressions=test/core/util/tsan_suppressions.txt:halt_on_error=1:second_deadlock_stack=1
build:tsan_macos --dynamic_mode=off

build:ubsan --strip=never
build:ubsan --copt=-fsanitize=undefined
build:ubsan --copt=-fsanitize-link-c++-runtime
build:ubsan --copt=-fno-omit-frame-pointer
build:ubsan --copt=-DGRPC_UBSAN
build:ubsan --copt=-DNDEBUG
build:ubsan --copt=-fno-sanitize=function,vptr
build:ubsan --linkopt=-fsanitize=undefined
# avoid ubsan build error with int128 by linking against libc++
# see b/200667821
build:ubsan --linkopt=-fsanitize-link-c++-runtime
build:ubsan --linkopt=-lc++
build:ubsan --linkopt=-lc++abi
build:ubsan --linkopt=-lm
build:ubsan --action_env=UBSAN_OPTIONS=halt_on_error=1:print_stacktrace=1:suppressions=test/core/util/ubsan_suppressions.txt
# if you want to run ubsan locally, uncomment following three lines
# build:ubsan --linkopt=-lgcc_s
# build:ubsan --linkopt=-lubsan
# build:ubsan --linkopt=--rtlib=compiler-rt

build:python_single_threaded_unary_stream --test_env="GRPC_SINGLE_THREADED_UNARY_STREAM=true"

build:python_poller_engine --test_env="GRPC_ASYNCIO_ENGINE=poller"

# Compile database generation config
build:compdb --build_tag_filters=-nocompdb --features=-layering_check

try-import %workspace%/tools/fuzztest.bazelrc
build:fuzztest --cxxopt=-std=c++17
