# Copyright 2023 Ant Group Co., Ltd.
# 
# 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
# 
#   http://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.

common --experimental_repo_remote_exec

build --incompatible_new_actions_api=false 
build --copt=-fdiagnostics-color=always
build --enable_platform_specific_config

build --cxxopt=-std=c++17
build --host_cxxopt=-std=c++17

# Binary safety flags
build --host_copt=-fPIE
build --host_copt=-fstack-protector-strong
build:linux --host_copt=-Wl,-z,noexecstack
build:macos --host_copt=-Wa,--noexecstack

# platform specific config
# Bazel will automatic pick platform config since we have enable_platform_specific_config set

build:macos --features=-supports_dynamic_linker
build:macos --cxxopt -Wno-deprecated-enum-enum-conversion
build:macos --cxxopt -Wno-deprecated-anon-enum-enum-conversion

build:asan --strip=never
build:asan --copt -fno-sanitize-recover=all
build:asan --copt -fsanitize=address
build:asan --copt -Og
build:asan --copt -g
build:asan --copt -fno-omit-frame-pointer
build:asan --linkopt -fsanitize=address

build:ubsan --strip=never
build:ubsan --copt -fno-sanitize-recover=all
build:ubsan --copt -fsanitize=undefined
build:ubsan --copt -Og
build:ubsan --copt -g
build:ubsan --copt -fno-omit-frame-pointer
build:ubsan --linkopt -fsanitize=undefined

test --keep_going
test --test_output=errors
test --test_timeout=180

test:asan --strip=never
test:asan --copt -fno-sanitize-recover=all
test:asan --copt -fsanitize=address
test:asan --copt -O0
test:asan --copt -g
test:asan --copt -fno-omit-frame-pointer
test:asan --linkopt -fsanitize=address
test:asan --linkopt -static-libasan

test:ubsan --strip=never
test:ubsan --copt -fno-sanitize-recover=all
test:ubsan --copt -fsanitize=undefined
test:ubsan --copt -O0
test:ubsan --copt -g
test:ubsan --copt -fno-omit-frame-pointer
test:ubsan --linkopt -fsanitize=undefined
test:ubsan --linkopt -static-libubsan
