-
Notifications
You must be signed in to change notification settings - Fork 125
/
.bazelrc
96 lines (73 loc) · 4.59 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
# 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
# Don't use legacy toolchain resolution.
common --incompatible_enable_cc_toolchain_resolution
common --incompatible_enable_proto_toolchain_resolution
# Simulate rules_python's initialization with a script and use a statically
# linked musl Python toolchain.
# TODO(aaronmondal): This is a hack. It works for us because have just a few
# simple python scripts in the repository and don't have
# complex Python dependencies. Implement LRE for Python.
common --@rules_python//python/config_settings:bootstrap_impl=script
common --@rules_python//python/config_settings:py_linux_libc=musl
# Don't leak PATH and LD_LIBRARY_PATH into the build.
build --incompatible_strict_action_env
# Don't use legacy repository rules.
build --incompatible_disable_native_repo_rules
# 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_cache=grpc://127.0.0.1:50051
build:self_execute --remote_executor=grpc://127.0.0.1:50052
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
# TODO(aaronmondal): Extend these flags until we can run with clippy::pedantic.
build --@rules_rust//:clippy_flags=-Dwarnings,-Dclippy::uninlined_format_args,-Dclippy::manual_string_new,-Dclippy::manual_let_else,-Dclippy::single_match_else,-Dclippy::redundant_closure_for_method_calls,-Dclippy::semicolon_if_nothing_returned,-Dclippy::unreadable_literal,-Dclippy::range_plus_one,-Dclippy::inconsistent_struct_constructor,-Dclippy::match_wildcard_for_single_variants,-Dclippy::implicit_clone,-Dclippy::needless_pass_by_value,-Dclippy::explicit_deref_methods,-Dclippy::trivially_copy_pass_by_ref,-Dclippy::unnecessary_wraps,-Dclippy::cast_lossless,-Dclippy::map_unwrap_or,-Dclippy::ref_as_ptr,-Dclippy::inline_always,-Dclippy::redundant_else,-Dclippy::return_self_not_must_use,-Dclippy::match_same_arms,-Dclippy::explicit_iter_loop,-Dclippy::items_after_statements,-Dclippy::explicit_into_iter_loop,-Dclippy::stable_sort_primitive,-Dclippy::ptr_as_ptr,-Dclippy::needless_raw_string_hashes,-Dclippy::default_trait_access,-Dclippy::ignored_unit_patterns,-Dclippy::needless_continue,-Dclippy::wildcard_imports,-Dclippy::doc_markdown,-Dclippy::struct_field_names,-Dclippy::implicit_hasher
build --@rules_rust//:clippy.toml=//:clippy.toml
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
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
build:windows --extra_toolchains=@rust_toolchains//:all # Doesn't support LRE.
# Generated by the LRE flake module.
try-import %workspace%/lre.bazelrc
# Generated by the darwin flake module.
try-import %workspace%/darwin.bazelrc
# Generated by the NixOS flake module.
try-import %workspace%/nixos.bazelrc
# Generated by the nativelink flake module.
try-import %workspace%/nativelink.bazelrc
# Allow user-side customization.
try-import %workspace%/user.bazelrc