aboutsummaryrefslogtreecommitdiff
path: root/common.bazelrc
blob: 70371f5bf8f5e14f130756188c2890017bf7028e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
# Use the target platform (android_x86, android_arm) in the bazel-out/ output
# directory name fragment instead of the CPU (darwin, k8). This avoids
# thrashing the output directory when switching between top level target
# --platforms values.
build --experimental_platform_in_output_dir
build --platform_mappings=build/bazel/platforms/platform_mappings

# Use toolchain resolution to find the cc toolchain.
build --incompatible_enable_cc_toolchain_resolution

# Ensure that the host_javabase always use the checked-in JDK.
build --tool_java_runtime_version=jdk17
build --java_runtime_version=jdk17

# Disable errorprone to continue making progress on java and android conversion
# while we determine how errorprone will be handled in Bazel-only builds b/227504307.
# TODO(b/227504307): Remove --javacopt="-XepDisableAllChecks" after implementing
# the correct solution around errorprone.
build --javacopt="-XepDisableAllChecks"
build --host_javacopt="-XepDisableAllChecks"

# Lock down the PATH variable in actions to /usr/bin and /usr/local/bin.
build --experimental_strict_action_env

# Explicitly allow unresolved symlinks (it's an experimental Bazel feature)
build --experimental_allow_unresolved_symlinks

# Enable usage of experimental cc-related build APIs
common --experimental_cc_shared_library
build --experimental_starlark_cc_import

# Do not tokenize copts, other than strings that consist of a single Make
# variable.  This prevents the need to double-escape characters like backslashes
# and quotes in copts.
build --features no_copts_tokenization

# Disable local cpp toolchain detection, as it is explicitly declared in AOSP.
build --action_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1

build --proto_compiler=//external/protobuf:aprotoc

# Disable sandboxing for CppCompile actions, as headers are not fully specified.
# TODO(b/186116353): This is a temporary fix, as appropriately-sandboxed actions
# are a long term goal.
build --strategy=CppCompile=standalone

# Enable use of the implementation_deps attribute in native cc rules
build --experimental_cc_implementation_deps

# Use the llvm_coverage_map_format feature to turn on native code coverage.
build --experimental_use_llvm_covmap

# Always emit the stdout of failing tests as they should be emphasized. (b/247516541)
test --test_output=errors

# Enable building targets in //external:__subpackages__.
common --experimental_sibling_repository_layout
common --experimental_disable_external_package

# Increase refresh rate of command line UI for improved perceived responsiveness.
common --show_progress_rate_limit=0.05

# These are disabled when running under soong_ui (default = auto). Force enable them here.
common --color=yes
common --curses=yes

# Configurations specific to CI builds, generally to improve signal-to-noise ratio in server logs.
common:ci --color=no
common:ci --curses=no
common:ci --show_progress_rate_limit=5
common:ci --noshow_loading_progress
# Show the full set of flags for observability and debuggability.
common:ci --announce_rc
build:ci --verbose_failures
# Log apexer verbosely on CI (it has a noisy but useful output)
build:ci --//build/bazel/rules/apex:apexer_verbose
test:ci --keep_going

# Support a local user-specific bazelrc file.
try-import %workspace%/user.bazelrc

# Get rid no-op "affected by Starlark transition" config when label-based flag
# (i.e. //command_line_option:fdo_profile) is set back to None
build --experimental_output_directory_naming_scheme=diff_against_baseline
common --experimental_google_legacy_api
build --android_sdk=//prebuilts/sdk:android_sdk
build --incompatible_enable_android_toolchain_resolution
common --experimental_enable_android_migration_apis
common --incompatible_java_common_parameters
build --android_databinding_use_v3_4_args
build --experimental_android_databinding_v2
build --define=android_incremental_dexing_tool=d8_dexbuilder
build --define=android_dexmerger_tool=d8_dexmerger
build --nouse_workers_with_dexbuilder

# TODO(b/199038020): Use a python_toolchain when we have Starlark rules_python.
# This also means all python scripts are using py3 runtime.
build --python_top=//prebuilts/build-tools:python3
build --noincompatible_use_python_toolchains

# Enable optimization compilation mode to build cc with fdo
# https://github.com/bazelbuild/bazel/blob/de7b26acfdfcd9c36ec957305a889ac29f0da30e/src/main/java/com/google/devtools/build/lib/rules/cpp/FdoHelper.java#L55
build --compilation_mode=opt

common --incompatible_remove_rule_name_parameter=false

# TODO(b/264304464): Remove when bugs with java_binary starlark impl are fixed.

common --experimental_builtins_injection_override=-java_binary

# Set writable bit for all bazel outputs. This makes it easy to remove
# the output directory and its contents after a build (using `rm`).
build --experimental_writable_outputs

# Make the Linux sandbox work under /tmp
build --incompatible_sandbox_hermetic_tmp