forked from Tokutek/tokumxse
-
Notifications
You must be signed in to change notification settings - Fork 60
/
.bazelrc
92 lines (76 loc) · 3.73 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
# Reference docs: https://bazel.build/run/bazelrc
# This automatically sets a config based on host platform, ex: --config=macos if the host is macos
build --enable_platform_specific_config=true
# This makes builds more hermetic by preventing environment variables from leaking into the execution of rules
build --incompatible_strict_action_env=true
# allows us to use python rules. This is needed because of the bug:
# https://github.com/bazelbuild/bazel/issues/4327
build --nobuild_runfile_links
# cc_library transitively propagates link opts. The build uses cc_shared_library to avoid this when linking
# dynamically.
build --experimental_cc_shared_library
# This supports the "crosstool" feature (aka building from our toolchain).
# Currently the only platform with a custom toolchain config is linux, use the default
# toolchain_suite elsewhere.
build:linux --crosstool_top=@mongo_toolchain//:toolchain_suite
# Dynamic linking on Windows (DLL generation) is currently not supported.
build:windows --//bazel/config:linkstatic=True
# The only Windows compiler we support is MSVC.
build:windows --//bazel/config:compiler_type=msvc
# Windows and MacOS do not use the custom toolchain config, so the compiler flags need to be set here.
build:macos --cxxopt=-std=c++20
build:windows --cxxopt=/std:c++20
# Set the windows version to win10 by default
# TODO(SERVER-87654): We may want to add support for other Windows versions in the future.
build:windows --cxxopt=-D_WIN32_WINNT=0x0A00
build:windows --cxxopt=-DBOOST_USE_WINAPI_VERSION=0x0A00
build:windows --cxxopt=-DNTDDI_VERSION=0x0A000000
# remote execution is the default, but only mongodb employees will be able to access
# the engflow cluster. External builders should use the local option below
# remote execution configs
build --remote_executor=grpcs://sodalite.cluster.engflow.com
build --remote_cache=grpcs://sodalite.cluster.engflow.com
build --bes_backend=grpcs://sodalite.cluster.engflow.com
build --bes_results_url=https://sodalite.cluster.engflow.com/invocation/
build --experimental_remote_cache_compression=true
build --grpc_keepalive_time=30s
build --nolegacy_important_outputs
build --bes_keywords=repo:mongo
build --jobs=200
common --remote_upload_local_results=False
# if you don't have access to the remote execution cluster above, use the local config
# described below.
# pass local config to SCons like:
# > buildscripts/scons.py BAZEL_FLAGS=--config=local <others args>
# or if invoking bazel directly pass "--config=local" on the bazel command line
--config=local
build:local --remote_executor=
build:local --remote_cache=
build:local --bes_backend=
build:local --bes_results_url=
build:local --tls_client_certificate=
build:local --tls_client_key=
build:local --experimental_remote_cache_compression=false
build:local --grpc_keepalive_time=0s
build:local --legacy_important_outputs
build:local --//bazel/config:local_build=True
build:local --jobs=auto
# Disable remote execution and caching for public releases
--config=public-release
build:public-release --remote_executor=
build:public-release --remote_cache=
build:public-release --bes_backend=
build:public-release --bes_results_url=
build:public-release --tls_client_certificate=
build:public-release --tls_client_key=
build:public-release --experimental_remote_cache_compression=false
build:public-release --grpc_keepalive_time=0s
build:public-release --legacy_important_outputs
# Avoid failing builds when BES metadata fails to upload.
common --bes_upload_mode=fully_async
# Enable Build without the Bytes
common --remote_download_outputs=toplevel
# try to import the bazelrc files if available
try-import %workspace%/.bazelrc.local
# in evergreen this will set the key/cert options for access to the cluster
try-import %workspace%/.bazelrc.evergreen_engflow_creds