# 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
# Used in TensorFlow, so we have to enable it here as well.
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://docs.bazel.build/versions/master/windows.html#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

###############################################################################
# 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.
# Builds the runtime with tracing support enabled.
build --flag_alias=iree_enable_runtime_tracing=@tracy_client//:runtime_enable

###############################################################################
# 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
# NOTE: from a TF dep: external/upb/upb/upb.c and fails on GCC 10.
build:generic_gcc --copt=-Wno-stringop-truncation

###############################################################################
# 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=-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=tensorflow,iree_tf_compiler@-Wno-unused-variable
build:macos_clang --per_file_copt=tensorflow,iree_tf_compiler,utils@-Wno-range-loop-analysis

build:macos_clang_release --config=macos_clang
build:macos_clang_release --per_file_copt=tensorflow,iree_tf_compiler@-Wno-unused-variable
build:macos_clang_release --per_file_copt=tensorflow,iree_tf_compiler,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:b3cce73eb9f41d67981bc8f00e98fd66fe3487caec1bcbf38d4039dcc61e499d"}'
build:remote_cache_bazel_tf_ci --host_platform_remote_properties_override='properties:{name:"cache-silo-key" value:"gcr.io/iree-oss/frontends-swiftshader@sha256:b8c41a6ae0bd8b094fcd4ea5998b82d29f62f9e595f7d02f53291ef72ba7d478"}'


###############################################################################
# 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

# Flags to make tensorflow build.
# Some of these are also of general use and fine to enable globally for windows.
build:_msvc_base --copt=/arch:AVX
# Host and target are the same in windows so don't waste time building both.
build:_msvc_base --distinct_host_configuration=false
# TensorFlow requires the "monolithic" build mode for now on Windows.
build:_msvc_base --define framework_shared_object=false

# Workaround WinGDI.h defining `ERROR`, which conflicts with logging macros.
# Note that IREE and TensorFlow both `#undef ERROR` and define their own
# separate logging constants with the same name, but IREE needs the Windows
# "graphics device interface" (GDI) for certain GUI sample projects.
build:_msvc_base --per_file_copt=tensorflow@-DNOGDI

# Disables TensorFlow eigen bloat and reduces compile times.
build:_msvc_base --define=override_eigen_strong_inline=true

# Another TensorFlow flag from their config script.
build:_msvc_base --define with_default_optimizations=true

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

# TensorFlow builds depend on this flag, but it doesn't appear to work with
# gmock in some of our unit tests, so only enable it for TensorFlow files.
# MSVC (Windows): Standards-conformant preprocessor mode
# See https://docs.microsoft.com/en-us/cpp/preprocessor/preprocessor-experimental-overview
build:msvc2017 --per_file_copt=tensorflow@/experimental:preprocessor
# It's also called different things in different MSVC versions and will spam the logs
# if we use the old name with a newer msvc.
build:msvc2019 --per_file_copt=tensorflow@/Zc:preprocessor

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