mirror of
https://github.com/mongodb/mongo.git
synced 2024-11-22 04:59:34 +01:00
c177c94ffa
GitOrigin-RevId: ceb5e28a2ee5248a2e61952c684c9b10b5714fc5
124 lines
5.0 KiB
Plaintext
124 lines
5.0 KiB
Plaintext
# Reference docs: https://bazel.build/run/bazelrc
|
|
|
|
# coverity need to use the local command without remote execution auto
|
|
# enabled.
|
|
info --config=local
|
|
|
|
# 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
|
|
|
|
# Disable the default compiler flags to avoid certain flags that conflict with flags we setup.
|
|
build:windows --features=-smaller_binary
|
|
build:windows --features=-frame_pointer
|
|
build:windows --features=-opt
|
|
build:windows --features=-dbg
|
|
build:windows --features=-fastbuild
|
|
build:windows --features=-dynamic_link_msvcrt
|
|
|
|
# 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
|
|
|
|
# EngFlow remote execution is not available on MacOS and Windows, default to local execution.
|
|
common:macos --config=local
|
|
common:windows --config=local
|
|
|
|
# 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
|
|
|
|
# Settings specific for clang-tidy
|
|
--config=clang-tidy
|
|
build:clang-tidy --//bazel/config:compiler_type=clang
|
|
build:clang-tidy --aspects @bazel_clang_tidy//clang_tidy:clang_tidy.bzl%clang_tidy_aspect
|
|
build:clang-tidy --output_groups=report
|
|
build:clang-tidy --@bazel_clang_tidy//:clang_tidy_config=//:clang_tidy_config
|
|
build:clang-tidy --@bazel_clang_tidy//:clang_tidy_executable=@mongo_toolchain//:clang_tidy
|
|
build:clang-tidy --@bazel_clang_tidy//:clang_tidy_additional_deps=@mongo_toolchain//:all
|
|
|
|
# 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
|
|
|
|
# TODO SERVER-89593
|
|
# Renable after bazel 7.0 due to query bug:
|
|
# https://github.com/bazelbuild/bazel/issues/10902
|
|
# Enable Build without the Bytes
|
|
# common --remote_download_outputs=toplevel
|
|
|
|
# try to import the bazelrc files if available
|
|
try-import %workspace%/.bazelrc.local
|
|
|
|
# TODO(WT-12780): delete this once wiredtiger switches to /.bazelrc.evergreen.
|
|
try-import %workspace%/.bazelrc.evergreen_engflow_creds
|
|
|
|
# Evergreen settings, ex. in evergreen this will set the key/cert options for access to the cluster
|
|
try-import %workspace%/.bazelrc.evergreen
|