-
Notifications
You must be signed in to change notification settings - Fork 130
/
Copy path.bazelrc
106 lines (83 loc) · 4.2 KB
/
.bazelrc
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
# Copyright 2022 The NativeLink Authors. All rights reserved.
#
# 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.
# Use blake3 as digest function instead of the much slower default sha256.
startup --digest_function=blake3
common --enable_platform_specific_config
# TODO(aaronmondal): Remove this once we get the build working without it.
common --noincompatible_sandbox_hermetic_tmp
# Don't leak PATH and LD_LIBRARY_PATH into the build.
build --incompatible_strict_action_env
# Don't use legacy toolchain resolution.
build --incompatible_enable_cc_toolchain_resolution
# Use the earliest supported C++ version for protoc.
build --cxxopt=-std=c++14 --host_cxxopt=-std=c++14
build --test_output=errors
build:debug -c dbg
build:self_test --remote_instance_name=main
build:self_test --remote_cache=grpc://127.0.0.1:50051
build:self_execute --remote_executor=grpc://127.0.0.1:50052
build:self_execute --remote_instance_name=main
build:self_execute --remote_default_exec_properties=cpu_count=1
build:self_execute --platform_suffix=self-execute
build --aspects=@rules_rust//rust:defs.bzl%rustfmt_aspect
build --aspects=@rules_rust//rust:defs.bzl%rust_clippy_aspect
test --@rules_rust//:rustfmt.toml=//:.rustfmt.toml
# This will make rustfmt and clippy only run on `bazel test`.
test --output_groups=+rustfmt_checks
test --output_groups=+clippy_checks
# Optional nightly toolchain. Mostly useful for running sanitizers.
build:nightly --@rules_rust//rust/toolchain/channel=nightly
# AddressSanitizer to detect memory leaks.
build:asan --config=nightly -c dbg
build:asan --@rules_rust//:extra_rustc_flags=-Zsanitizer=address
# ThreadSanitizer to detect data races. Tests under tsan shouldn't be cached
# since they tend to produce irreproducible false negatives.
build:tsan --config=nightly -c dbg
build:tsan --@rules_rust//:extra_rustc_flags=-Zsanitizer=thread
build:tsan --cache_test_results=no
build:tsan --run_under=//tools:tsan.sh
# Configuration options for Windows builds.
startup --windows_enable_symlinks
build:windows --cxxopt=/std:c++14 --host_cxxopt=/std:c++14
build:windows --enable_runfiles
# Global rust toolchain configuration. Deferred to here so that the cc
# toolchains are resolved before the rust toolchains.
build --extra_toolchains=@rust_toolchains//:all
# Option to test the zig toolchain on Linux. Prefer the default `linux`
# toolchain which builds cc targets roughly twice as fast.
#
# WARNING:
#
# We're using an incredibly old target glibc here. Builds created with this
# toolchain have maximum compatibility (theoretically down to Ubuntu 18), but
# miss out on half a decade of optimizations. Don't use this for production
# builds if you're running a non-ancient OS and care about performance.
#
# TODO(aaronmondal): Migrate to a statically linked musl as soon as rules_rust
# supports it. This way we get to keep (or even improve)
# backwards compatibility without sacrificing performance.
build:linux_zig --host_platform=@zig_sdk//platform:linux_amd64
build:linux_zig --extra_toolchains=@zig_sdk//libc_aware/toolchain:linux_amd64_gnu.2.28
build:linux_zig --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
# Local Remote Execution.
build:lre --host_platform=@local-remote-execution//generated/config:platform
build:lre --extra_toolchains=@local-remote-execution//generated/config:cc-toolchain"
build:lre --extra_toolchains=@local-remote-execution//generated/java:all"
# See: https://github.com/bazelbuild/bazel/issues/19714#issuecomment-1745604978
build:lre --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1
# TODO(aaronmondal): Remove when https://github.com/bazelbuild/bazel/issues/7254
# is resolved.
build:lre --define=EXECUTOR=remote
# Allow user-side customization.
try-import %workspace%/.bazelrc.user