# Copyright 2019 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

###############################################################################
# Common flags that apply to all configurations.
# Use sparingly for things common to all compilers and platforms.
###############################################################################
# Prevent invalid caching if input files are modified during a build.
build --experimental_guard_against_concurrent_changes
# Default to optimized builds
# Override via: "-c dbg" or --compilation_mode=dbg
build --compilation_mode=opt
# Legacy from when we depended on TensorFlow, might not be needed in IREE.
common --experimental_repo_remote_exec
# Actually printing output on errors is... a useful default
test --test_output=errors

# Includes a startup option, so we can't put this in a config, but it doesn't
# hurt anything on non-windows platforms.
# Enables unix-style runfiles link trees on Windows. Requires enabling symlink
# permissions: Enable Developer Mode in the Developer Settings page of the
# system settings. See
# https://bazel.build/configure/windows#enable-symlink-support
# and https://blogs.windows.com/windowsdeveloper/2016/12/02/symlinks-windows-10/
startup --windows_enable_symlinks
build --enable_runfiles

# TODO: Transition to the explicit init_py mechanism. See #2405
# This is commented out while considering transition path but left as a
# breadcrumb.
# build --incompatible_default_to_explicit_init_py

# Disable split PIC/non-PIC build graphs and disable heuristic to link binaries
# dynamically by default. See: https://github.com/openxla/iree/issues/13470
build --dynamic_mode=off
build --force_pic

###############################################################################
# Build settings flag aliases. See https://bazel.build/rules/config
###############################################################################
build --flag_alias=iree_drivers=//runtime/src/iree/hal/drivers:enabled_drivers
build --flag_alias=iree_link_compiler_shared=//compiler/src/iree/compiler/API:link_shared
# Equivalent to CMake flag IREE_ENABLE_RUNTIME_TRACING + IREE_TRACING_PROVIDER.
# Builds the runtime with tracing support enabled.
build --flag_alias=iree_enable_runtime_tracing=//runtime/src/iree/base/tracing:tracing_provider

###############################################################################
# Options for "generic_gcc" builds
###############################################################################

# C++17 standard version is required.
build:generic_gcc --cxxopt=-std=c++17 --host_cxxopt=-std=c++17

# TODO: OSS assert builds of TF became non functional around 1/27/2022. RIP.
# Default to adding back asserts in optimized builds.
# This is a good compromise between runtime and debugability.
#build:generic_gcc --copt=-UNDEBUG

# Disable warnings we don't care about or that generally have a low signal/noise
# ratio.
build:generic_gcc --copt=-Wno-unused-but-set-parameter
build:generic_gcc --copt=-Wno-comment
build:generic_gcc --copt=-Wno-attributes

###############################################################################
# Options for "generic_clang" builds: these options should generally apply to
# either clang or gcc and are curated based on need.
###############################################################################

# C++17 standard version is required.
build:generic_clang --cxxopt=-std=c++17 --host_cxxopt=-std=c++17

# TODO: OSS assert builds of TF became non functional around 1/27/2022. RIP.
# Default to adding back asserts in optimized builds.
# This is a good compromise between runtime and debugability.
#build:generic_clang --copt=-UNDEBUG

# Treat warnings as errors...
build:generic_clang --copt=-Werror --host_copt=-Werror
# ...and silence them outside of the workspace.
build:generic_clang --per_file_copt=external/.*@-w
# ...and silence them on host builds. There is no host_per_file_copt and
# everything we build in the host configuration we either also build in the
# target configuration or is external, so we can't control it.
# If/when Bazel supports --host_per_file_copt, we could use that instead:
# https://github.com/bazelbuild/bazel/issues/12406.
# Would need to then make all the --copt below duplicated with --host_copt.
build:generic_clang --host_copt=-w

# Set clang diagnostics. These largely match the set of warnings used within
# Google. They have not been audited super carefully by the IREE team but are
# generally thought to be a good set and consistency with those used internally
# is very useful when importing. If you feel that some of these should be
# different, please raise an issue!

# Please keep these in sync with build_tools/cmake/iree_copts.cmake

build:generic_clang --copt=-Wall

# Disable warnings we don't care about or that generally have a low signal/noise
# ratio.
build:generic_clang --copt=-Wno-ambiguous-member-template
build:generic_clang --copt=-Wno-char-subscripts
build:generic_clang --copt=-Wno-extern-c-compat # Matches upstream. Cannot impact due to extern C inclusion method.
build:generic_clang --copt=-Wno-gnu-alignof-expression
build:generic_clang --copt=-Wno-gnu-variable-sized-type-not-at-end
build:generic_clang --copt=-Wno-ignored-optimization-argument
build:generic_clang --copt=-Wno-invalid-offsetof # Technically UB but needed for intrusive ptrs
build:generic_clang --copt=-Wno-invalid-source-encoding
build:generic_clang --copt=-Wno-mismatched-tags
build:generic_clang --copt=-Wno-pointer-sign
build:generic_clang --copt=-Wno-reserved-user-defined-literal
build:generic_clang --copt=-Wno-return-type-c-linkage
build:generic_clang --copt=-Wno-self-assign-overloaded
build:generic_clang --copt=-Wno-sign-compare
build:generic_clang --copt=-Wno-signed-unsigned-wchar
build:generic_clang --copt=-Wno-strict-overflow
build:generic_clang --copt=-Wno-trigraphs
build:generic_clang --copt=-Wno-unknown-pragmas
build:generic_clang --copt=-Wno-unknown-warning-option
build:generic_clang --copt=-Wno-unused-command-line-argument
build:generic_clang --copt=-Wno-unused-const-variable
build:generic_clang --copt=-Wno-unused-function
build:generic_clang --copt=-Wno-unused-local-typedef
build:generic_clang --copt=-Wno-unused-private-field
build:generic_clang --copt=-Wno-user-defined-warnings

# Explicitly enable some additional warnings.
# Some of these aren't on by default, or under -Wall, or are subsets of warnings
# turned off above.
build:generic_clang --copt=-Wc++20-extensions
build:generic_clang --copt=-Wctad-maybe-unsupported
build:generic_clang --copt=-Wfloat-overflow-conversion
build:generic_clang --copt=-Wfloat-zero-conversion
build:generic_clang --copt=-Wfor-loop-analysis
build:generic_clang --copt=-Wformat-security
build:generic_clang --copt=-Wgnu-redeclared-enum
build:generic_clang --copt=-Wimplicit-fallthrough
build:generic_clang --copt=-Winfinite-recursion
build:generic_clang --copt=-Wliteral-conversion
build:generic_clang --copt=-Wnon-virtual-dtor
build:generic_clang --copt=-Woverloaded-virtual
build:generic_clang --copt=-Wself-assign
build:generic_clang --copt=-Wstring-conversion
build:generic_clang --copt=-Wtautological-overlap-compare
build:generic_clang --copt=-Wthread-safety
build:generic_clang --copt=-Wthread-safety-beta
build:generic_clang --copt=-Wunused-comparison
build:generic_clang --copt=-Wvla

# Treat backrefs during linking as errors.
build:generic_clang --linkopt=-Wl,--warn-backrefs
build:generic_clang --linkopt=-Wl,--fatal-warnings

###############################################################################
# Additional options for MacOS based clang builds.
# Try to keep these scoped to exclusions for third_party code and prefer
# fixing issues local to the project.
###############################################################################

build:macos_clang --config=generic_clang
build:macos_clang --per_file_copt=utils@-Wno-range-loop-analysis

build:macos_clang_release --config=macos_clang
build:macos_clang_release --per_file_copt=utils@-Wno-range-loop-analysis
build:macos_clang_release --compilation_mode=opt
build:macos_clang_release --copt=-DNDEBUG

###############################################################################
# Additional options for release builds. These do *not* automatically pull in
# the corresponding compiler config (e.g. generic_clang) because this is likely
# to already be set in the user's configured.bazelrc and setting a config twice
# causes flags to be passed twice.
###############################################################################
build:generic_clang_release --compilation_mode=opt
build:generic_clang_release --copt=-DNDEBUG
build:generic_clang_release --linkopt=-Wl,--strip-all
build:generic_gcc_release --compilation_mode=opt
build:generic_gcc_release --copt=-DNDEBUG
build:generic_gcc_release --linkopt=-Wl,--strip-all
# MSVC doesn't store symbols in the binary (they're in separate .pdb files), so
# nothing needs to be stripped.
build:msvc_release --compilation_mode=opt

###############################################################################
# Options for building with address sanitizer.
# https://github.com/google/sanitizers/wiki/AddressSanitizer
###############################################################################

# ASAN (address sanitizer)
# https://clang.llvm.org/docs/AddressSanitizer.html
build:asan --config=sanitizer
build:asan --features=asan
build:asan --copt=-fsanitize=address
build:asan --copt=-fsanitize-address-use-after-scope
build:asan --linkopt=-fsanitize=address
build:asan --cc_output_directory_tag=asan
build:asan --copt=-DADDRESS_SANITIZER

# MSAN (memory sanitizer)
# https://clang.llvm.org/docs/MemorySanitizer.html
build:msan --config=sanitizer
build:msan --features=msan
build:msan --copt=-fsanitize=memory
build:msan --copt=-fsanitize-memory-track-origins
build:msan --linkopt=-fsanitize=memory
build:msan --cc_output_directory_tag=msan
build:msan --copt=-DMEMORY_SANITIZER

# TSAN (thread sanitizer)
# https://clang.llvm.org/docs/ThreadSanitizer.html
build:tsan --config=sanitizer
build:tsan --features=tsan
build:tsan --copt=-fsanitize=thread
build:tsan --linkopt=-fsanitize=thread
build:tsan --cc_output_directory_tag=tsan
build:tsan --copt=-DTHREAD_SANITIZER

# UBSAN (undefined behavior sanitizer)
# https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
build:ubsan --config=sanitizer
build:ubsan --features=ubsan
build:ubsan --copt=-fsanitize=undefined
build:ubsan --linkopt=-fsanitize=undefined
build:ubsan --linkopt=-lubsan
build:ubsan --cc_output_directory_tag=ubsan

# Don't strip debug info
build:sanitizer --strip=never
# Ignore settings of `linkopts = ["-static"]` which can screw up the sanitizer.
# We don't use this in IREE (that's what linkstatic is for), but it could show
# up in dependencies.
build:sanitizer --force_ignore_dash_static
# sanitizer tests tend to take longer, so increase the timeouts
build:sanitizer --test_timeout=120,600,1800,-1
# Get better stack traces
build:sanitizer --copt=-fno-omit-frame-pointer

###############################################################################
# Architecture specific options
###############################################################################

# Enable some default cpu flags for x86 optimization.
build:x86opt --copt=-mavx2

###############################################################################
# Configuration for caching remotely using Remote Build Execution (RBE)
# https://cloud.google.com/remote-build-execution/
# Based on https://github.com/bazelbuild/bazel-toolchains/blob/master/bazelrc/bazel-1.0.0.bazelrc
# Writing to the remote cache is limited to the CI to ensure a stable
# environment. Reading from the remote cache building in a place other than the
# CI is at your own risk. To do so pass `--noremote_upload_local_results` in
# addition to the config for the appropriate cache.
# We gave up on remote execution due to the amount of toolchain configuration
# required.
###############################################################################

# Config for executing locally and caching the results to the remote cache.
# This requires permissions to write to the remote cache, which only the CI
# machines have.

# Enable authentication. This will pick up application default credentials by
# default. You can use --google_credentials=some_file.json to use a service
# account credential instead.
build:_remote_cache_base --google_default_credentials=true
# Point to the remote instance constructed in the iree-oss project
build:_remote_cache_base --remote_instance_name=projects/iree-oss/instances/default_instance

build:_remote_cache_base --remote_cache=grpcs://remotebuildexecution.googleapis.com

# --config=remote_cache_bazel_ci
build:remote_cache_bazel_ci --config=_remote_cache_base
# The cache key specifies the environment, which in this case points to the
# specific docker container the CI Bazel builds are run in. The image URL is
# included for clarity and so that this reference is automatically updated by
# manage_images.py
build:remote_cache_bazel_ci --host_platform_remote_properties_override='properties:{name:"cache-silo-key" value:"gcr.io/iree-oss/swiftshader-bleeding-edge@sha256:d2483ac643184a16942489d8f709ef3714543ae795fa9ae8fd2e4d8bf68a24a0"}'


###############################################################################
# Configuration for uploading build results to Result Store UI
# https://cloud.google.com/remote-build-execution/docs/results-ui/getting-started-results-ui
# Can be used either with or without remote caching.
###############################################################################

# Options for connecting to the IREE GCP remote build project. These are
# repeated separately from _remote_cache_base to avoid warnings about configs
# being expanded more than once when a remote caching config is used together
# with result store (even though the warnings are spurious).

build:rs --google_default_credentials=true
build:rs --remote_instance_name=projects/iree-oss/instances/default_instance

build:rs --bes_backend="buildeventservice.googleapis.com"
build:rs --bes_results_url="https://source.cloud.google.com/results/invocations/"
build:rs --project_id=iree-oss

###############################################################################
# Windows specific flags for building with VC.
###############################################################################

build:_msvc_base --define=iree_is_msvc=true

# Bazel gets confused and sometimes loses track of Bash.
build:_msvc_base --action_env BAZEL_SH='bash'

# Find the source of truth for these in iree_copts.cmake.
build:_msvc_base --copt=/DWIN32_LEAN_AND_MEAN
build:_msvc_base --copt=/DNOMINMAX
build:_msvc_base --copt=/D_USE_MATH_DEFINES
build:_msvc_base --copt=/D_CRT_SECURE_NO_WARNINGS
build:_msvc_base --copt=/D_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
build:_msvc_base --copt=/EHsc
build:_msvc_base --copt=/bigobj

build:_msvc_base --copt=/wd4200
build:_msvc_base --copt=/wd4018
build:_msvc_base --copt=/wd4146  # operator applied to unsigned type, result still unsigned
build:_msvc_base --copt=/wd4244  # possible loss of data
build:_msvc_base --copt=/wd4267  # initializing: possible loss of data
build:_msvc_base --copt=/wd4005  # allow: macro redefinition
build:_msvc_base --copt=/wd4065  # allow: switch statement contains 'default' but no 'case' labels
build:_msvc_base --copt=/wd4141  # allow: inline used more than once
build:_msvc_base --copt=/wd4624  # allow: destructor was implicitly defined as deleted
build:_msvc_base --copt=/wd5105  # macro expansion producing 'defined' has undefined behavior

# And some more explicit disables. For some reason the `/w` on external doesn't
# work for these, maybe they come from headers?
# new warning with the standards-compliant preprocessor. winbase itself is not standards-compliant
build:_msvc_base --per_file_copt=mkl_dnn@/wd4551 # missing argument list
build:_msvc_base --per_file_copt=mkl_dnn@/wd4068 # unknown pragma
build:_msvc_base --per_file_copt=farmhash@/wd4319 # zero extending to T of greater size

build:_msvc_base --linkopt=/IGNORE:4217 # mismatch import/export declspec
build:_msvc_base --linkopt=/IGNORE:4001 # no object files

# Separate configs for different MSVC versions as we might want slightly different options.
build:msvc2017 --config=_msvc_base
build:msvc2019 --config=_msvc_base

# Assume the newer version and alias to --config=windows
build:msvc --config=msvc2019
build:windows --config=msvc
