115 lines
5.5 KiB
Plaintext
115 lines
5.5 KiB
Plaintext
build --cxxopt=--std=c++17
|
|
build --copt=-I.
|
|
# Bazel does not support including its cc_library targets as system
|
|
# headers. We work around this for generated code
|
|
# (e.g. c10/macros/cmake_macros.h) by making the generated directory a
|
|
# system include path.
|
|
build --copt=-isystem --copt bazel-out/k8-fastbuild/bin
|
|
build --copt=-isystem --copt bazel-out/darwin-fastbuild/bin
|
|
build --experimental_ui_max_stdouterr_bytes=2048576
|
|
|
|
# Configuration to disable tty features for environments like CI
|
|
build:no-tty --curses no
|
|
build:no-tty --progress_report_interval 10
|
|
build:no-tty --show_progress_rate_limit 10
|
|
|
|
# Build with GPU support by default.
|
|
build --define=cuda=true
|
|
# rules_cuda configuration
|
|
build --@rules_cuda//cuda:enable_cuda
|
|
build --@rules_cuda//cuda:cuda_targets=sm_52
|
|
build --@rules_cuda//cuda:compiler=nvcc
|
|
build --repo_env=CUDA_PATH=/usr/local/cuda
|
|
|
|
# Configuration to build without GPU support
|
|
build:cpu-only --define=cuda=false
|
|
# define a separate build folder for faster switching between configs
|
|
build:cpu-only --platform_suffix=-cpu-only
|
|
# See the note on the config-less build for details about why we are
|
|
# doing this. We must also do it for the "-cpu-only" platform suffix.
|
|
build --copt=-isystem --copt=bazel-out/k8-fastbuild-cpu-only/bin
|
|
# rules_cuda configuration
|
|
build:cpu-only --@rules_cuda//cuda:enable_cuda=False
|
|
|
|
# Definition of --config=shell
|
|
# interactive shell immediately before execution
|
|
build:shell --run_under="//tools/bazel_tools:shellwrap"
|
|
|
|
# Disable all warnings for external repositories. We don't care about
|
|
# their warnings.
|
|
build --per_file_copt=^external/@-w
|
|
|
|
# Set additional warnings to error level.
|
|
#
|
|
# Implementation notes:
|
|
# * we use file extensions to determine if we are using the C++
|
|
# compiler or the cuda compiler
|
|
# * we use ^// at the start of the regex to only permit matching
|
|
# PyTorch files. This excludes external repos.
|
|
#
|
|
# Note that because this is logically a command-line flag, it is
|
|
# considered the word on what warnings are enabled. This has the
|
|
# unfortunate consequence of preventing us from disabling an error at
|
|
# the target level because those flags will come before these flags in
|
|
# the action invocation. Instead we provide per-file exceptions after
|
|
# this.
|
|
#
|
|
# On the bright side, this means we don't have to more broadly apply
|
|
# the exceptions to an entire target.
|
|
#
|
|
# Looking for CUDA flags? We have a cu_library macro that we can edit
|
|
# directly. Look in //tools/rules:cu.bzl for details. Editing the
|
|
# macro over this has the following advantages:
|
|
# * making changes does not require discarding the Bazel analysis
|
|
# cache
|
|
# * it allows for selective overrides on individual targets since the
|
|
# macro-level opts will come earlier than target level overrides
|
|
|
|
build --per_file_copt='^//.*\.(cpp|cc)$'@-Werror=all
|
|
# The following warnings come from -Wall. We downgrade them from error
|
|
# to warnings here.
|
|
#
|
|
# We intentionally use #pragma unroll, which is compiler specific.
|
|
build --per_file_copt='^//.*\.(cpp|cc)$'@-Wno-error=unknown-pragmas
|
|
|
|
build --per_file_copt='^//.*\.(cpp|cc)$'@-Werror=extra
|
|
# The following warnings come from -Wextra. We downgrade them from error
|
|
# to warnings here.
|
|
#
|
|
# unused-parameter-compare has a tremendous amount of violations in the
|
|
# codebase. It will be a lot of work to fix them, just disable it for
|
|
# now.
|
|
build --per_file_copt='^//.*\.(cpp|cc)$'@-Wno-unused-parameter
|
|
# missing-field-parameters has both a large number of violations in
|
|
# the codebase, but it also is used pervasively in the Python C
|
|
# API. There are a couple of catches though:
|
|
# * we use multiple versions of the Python API and hence have
|
|
# potentially multiple different versions of each relevant
|
|
# struct. They may have different numbers of fields. It will be
|
|
# unwieldy to support multiple versions in the same source file.
|
|
# * Python itself for many of these structs recommends only
|
|
# initializing a subset of the fields. We should respect the API
|
|
# usage conventions of our dependencies.
|
|
#
|
|
# Hence, we just disable this warning altogether. We may want to clean
|
|
# up some of the clear-cut cases that could be risky, but we still
|
|
# likely want to have this disabled for the most part.
|
|
build --per_file_copt='^//.*\.(cpp|cc)$'@-Wno-missing-field-initializers
|
|
|
|
build --per_file_copt='^//.*\.(cpp|cc)$'@-Wno-unused-function
|
|
build --per_file_copt='^//.*\.(cpp|cc)$'@-Wno-unused-variable
|
|
|
|
build --per_file_copt='//:aten/src/ATen/RegisterCompositeExplicitAutograd\.cpp$'@-Wno-error=unused-function
|
|
build --per_file_copt='//:aten/src/ATen/RegisterCompositeImplicitAutograd\.cpp$'@-Wno-error=unused-function
|
|
build --per_file_copt='//:aten/src/ATen/RegisterMkldnnCPU\.cpp$'@-Wno-error=unused-function
|
|
build --per_file_copt='//:aten/src/ATen/RegisterNestedTensorCPU\.cpp$'@-Wno-error=unused-function
|
|
build --per_file_copt='//:aten/src/ATen/RegisterQuantizedCPU\.cpp$'@-Wno-error=unused-function
|
|
build --per_file_copt='//:aten/src/ATen/RegisterSparseCPU\.cpp$'@-Wno-error=unused-function
|
|
build --per_file_copt='//:aten/src/ATen/RegisterSparseCsrCPU\.cpp$'@-Wno-error=unused-function
|
|
build --per_file_copt='//:aten/src/ATen/RegisterNestedTensorMeta\.cpp$'@-Wno-error=unused-function
|
|
build --per_file_copt='//:aten/src/ATen/RegisterSparseMeta\.cpp$'@-Wno-error=unused-function
|
|
build --per_file_copt='//:aten/src/ATen/RegisterQuantizedMeta\.cpp$'@-Wno-error=unused-function
|
|
build --per_file_copt='//:aten/src/ATen/RegisterZeroTensor\.cpp$'@-Wno-error=unused-function
|
|
build --per_file_copt='//:torch/csrc/lazy/generated/RegisterAutogradLazy\.cpp$'@-Wno-error=unused-function
|
|
build --per_file_copt='//:torch/csrc/lazy/generated/RegisterLazy\.cpp$'@-Wno-error=unused-function
|