# Reference docs: https://bazel.build/run/bazelrc # coverity need to use the local command without remote execution auto # enabled. info --config=local # Don't use legacy toolchain resolution. common --incompatible_enable_cc_toolchain_resolution # https://github.com/bazelbuild/bazel/issues/8766 # there is WIP to allow users to inject constraints # this flag is required because the default for BZLMOD is @platform//host:host build --platforms=@internal_platforms_do_not_use//host common --enable_workspace=true # Improves build performance after first clean pull by # about 1 minute on developer machines common --experimental_remote_merkle_tree_cache # Linter will have issues with duplicate configurations due to some of our # install targets depending on tests that have testonly set. This flag can be removed # if we stop installing our test targets. common --experimental_retain_test_configuration_across_testonly # allow multiple execution infos to be set common --incompatible_modify_execution_info_additive # This makes builds more hermetic by preventing environment variables from leaking into the execution of rules common --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 common --experimental_inprocess_symlink_creation # cc_library transitively propagates link opts. The build uses cc_shared_library to avoid this when linking # dynamically. common --experimental_cc_shared_library # Reuse sandboxes to save sandbox execution and deletion times. common --experimental_reuse_sandbox_directories # Disabling runfiles links drastically increases performance in slow disk IO situations # Do not build runfile trees by default. If an execution strategy relies on runfile # symlink tree, the tree is created on-demand. See: https://github.com/bazelbuild/bazel/issues/6627 # and https://github.com/bazelbuild/bazel/commit/03246077f948f2790a83520e7dccc2625650e6df common --nobuild_runfile_links # This will become the default bazel 8.0+ # https://bazel.build/reference/command-line-reference#flag--legacy_external_runfiles common --nolegacy_external_runfiles # Seeing as we link locally, you'll end up with 99% of the files locally anyways. # Using remote download all save some build time because it will immediately download an object # file when it is available, where toplevel will wait until the local linking job needs it # before starting the download. common --remote_download_outputs=all # Files we always want to download for debugging and error checking common --remote_download_regex=.*\.(dwo|h|cpp|test.xml|clang-tidy|clang-tidy\.strict)$ # Disable caching of test results by default since many of our tests are non-deterministic. common --cache_test_results=no # Stream the test output so users can see the test progression. common --test_output=streamed # when using remote asset api, fallback to the direct urls to download common --experimental_remote_downloader_local_fallback # Build only what is necessary to run the *_test and test_suite rules that were # not filtered due to their size, timeout, tag, or language. test --build_tests_only # Skip zipping test outputs, to save the extra step of unzipping to investigate them. test --nozip_undeclared_test_outputs # This is a major bottleneck on remote execution concurrency and does not appear to have # any negative affects on local RAM usage. common --noexperimental_throttle_remote_action_building # Port blocks that can be exclusively used by one test action at a time, representing # a range of 250 ports up until the next block. # The contract for acquiring is detailed in buildscripts/bazel_local_resources.py. # "common" is used to avoid invalidating bazel's analysis cache when switching between # build and test commands. common --local_resources=port_block=40 # 40 distinct port blocks common --define=LOCAL_RESOURCES="port_block=20000,20250,20500,20750,21000,21250,21500,21750,22000,22250,22500,22750,23000,23250,23500,23750,24000,24250,24500,24750,25000,25250,25500,25750,26000,26250,26500,26750,27000,27250,27500,27750,28000,28250,28500,28750,29000,29250,29500,29750" # Pin down the OSS LLVM Clang version for MacOS builds. common:macos --repo_env=LLVM_VERSION=19 # Pin down the Microsoft Visual compiler. If you would like to use # the default compiler version installed in this host, comment the line. common:windows --repo_env=BAZEL_VS="C:/Program Files/Microsoft Visual Studio/2022.14/Professional" common:windows --repo_env=BAZEL_VC="C:/Program Files/Microsoft Visual Studio/2022.14/Professional/VC" common:windows --repo_env=BAZEL_VC_FULL_VERSION=14.44.35207 # Pin the Windows SDK used by the Bazel MSVC toolchain. Override with # --repo_env=BAZEL_WINSDK_FULL_VERSION= on the command line. common:windows --repo_env=BAZEL_WINSDK_FULL_VERSION=10.0.20348.0 # Default the Visual C Redistribution to v14.3 for Windows installer. common:windows --repo_env=MONGO_VC_REDIST_FULL_VERSION=v143 # host_features will build tools that are meant to run in the build # we don't care about running sanitizer checks on tools that run in the build common:linux --host_features=-any_sanitizer common:linux --host_features=-asan common:linux --host_features=-fsan common:linux --host_features=-ubsan common:linux --host_features=-tsan # while in hybrid build state, using local unsandboxed linking should be faster. When most of our link # targets have been converted (i.e. unittest binaries) and we can BWOB, remote linking should be faster # in those cases: common --strategy=CppLink=local common --strategy=CppArchive=local common --strategy=SolibSymlink=local common --strategy=StripDebugInfo=local common --strategy=ExtractDebugInfo=local common --strategy=TestRunner=local common --strategy=CoverageReport=local common --strategy=CcGenerateIntermediateDwp=local common --strategy=CcGenerateDwp=local common --modify_execution_info=^(TestRunner|CppLink|CppArchive|SolibSymlink|ExtractDebugInfo|StripDebugInfo|CcGenerateIntermediateDwp|CcGenerateDwp)$=+no-remote-cache # Global clang tidy flags to avoid invalidating analysis cache between clang-tidy / regular runs common --@bazel_clang_tidy//:clang_tidy_excludes=".pb.cc,icu_init.cpp" common --@bazel_clang_tidy//:clang_tidy_additional_configs=//:clang_tidy_config_files common --@bazel_clang_tidy//:clang_tidy_config=//:clang_tidy_config_strict common --@bazel_clang_tidy//:clang_tidy_merge_tool=//bazel:merge_tidy_configs common --@bazel_clang_tidy//:clang_tidy_executable=//:clang_tidy common --@bazel_clang_tidy//:clang_tidy_additional_deps=//:toolchain_files common --@bazel_clang_tidy//:clang_tidy_plugin_deps=//src/mongo/tools/mongo_tidy_checks:mongo_tidy_checks # Aliases for config flags common --flag_alias=linkstatic=//bazel/config:linkstatic common --flag_alias=compiler_type=//bazel/config:compiler_type common --flag_alias=linker=//bazel/config:linker common --flag_alias=use_gdbserver=//bazel/config:use_gdbserver common --flag_alias=libunwind=//bazel/config:libunwind common --flag_alias=spider_monkey_dbg=//bazel/config:spider_monkey_dbg common --flag_alias=allocator=//bazel/config:allocator common --flag_alias=use_lldbserver=//bazel/config:use_lldbserver common --flag_alias=opt=//bazel/config:opt common --flag_alias=dbg=//bazel/config:dbg common --flag_alias=debug_symbols=//bazel/config:debug_symbols common --flag_alias=thin_lto=//bazel/config:thin_lto common --flag_alias=separate_debug=//bazel/config:separate_debug common --flag_alias=dev_stacktrace=//bazel/config:dev_stacktrace common --flag_alias=use_wait_for_debugger=//bazel/config:use_wait_for_debugger common --flag_alias=use_ocsp_stapling=//bazel/config:use_ocsp_stapling common --flag_alias=use_disable_ref_track=//bazel/config:use_disable_ref_track common --flag_alias=use_wiredtiger=//bazel/config:use_wiredtiger common --flag_alias=use_glibcxx_debug=//bazel/config:use_glibcxx_debug common --flag_alias=use_tracing_profiler=//bazel/config:use_tracing_profiler common --flag_alias=build_otel=//bazel/config:build_otel common --flag_alias=shared_archive=//bazel/config:shared_archive common --flag_alias=skip_archive=//bazel/config:skip_archive common --flag_alias=streams_release_build=//bazel/config:streams_release_build common --flag_alias=release=//bazel/config:release common --flag_alias=build_enterprise=//bazel/config:build_enterprise common --flag_alias=visibility_support=//bazel/config:visibility_support common --flag_alias=disable_warnings_as_errors=//bazel/config:disable_warnings_as_errors common --flag_alias=gcov=//bazel/config:gcov common --flag_alias=pgo_profile_generate=//bazel/config:pgo_profile_generate common --flag_alias=pgo_profile_use=//bazel/config:pgo_profile_use common --flag_alias=cspgo_profile_generate=//bazel/config:cspgo_profile_generate common --flag_alias=cspgo_profile_use=//bazel/config:cspgo_profile_use common --flag_alias=bolt_profile_generate=//bazel/config:bolt_profile_generate common --flag_alias=bolt_profile_use=//bazel/config:bolt_profile_use common --flag_alias=propeller_profile_generate=//bazel/config:propeller_profile_generate common --flag_alias=propeller_profile_use=//bazel/config:propeller_profile_use common --flag_alias=server_js=//bazel/config:server_js common --flag_alias=ssl=//bazel/config:ssl common --flag_alias=js_engine=//bazel/config:js_engine common --flag_alias=use_sasl_client=//bazel/config:use_sasl_client common --flag_alias=enterprise_feature_all=//bazel/config:enterprise_feature_all common --flag_alias=link_timeout=//bazel/config:link_timeout common --flag_alias=compress_debug_compile=//bazel/config:compress_debug_compile common --flag_alias=include_mongot=//bazel/config:include_mongot # This flag will only work if you pass it on the command line as it is parsed by bazelisk pre-bazel script common --flag_alias=include_autogenerated_targets=//bazel/config:include_autogenerated_targets common --flag_alias=bolt=//bazel/config:bolt common --flag_alias=dwarf_version=//bazel/config:dwarf_version common --flag_alias=http_client=//bazel/config:http_client common --flag_alias=asan=//bazel/config:asan common --flag_alias=fsan=//bazel/config:fsan common --flag_alias=msan=//bazel/config:msan common --flag_alias=lsan=//bazel/config:lsan common --flag_alias=tsan=//bazel/config:tsan common --flag_alias=ubsan=//bazel/config:ubsan common --flag_alias=dbg_level=//bazel/config:dbg_level common --flag_alias=mongo_toolchain_version=//bazel/config:mongo_toolchain_version common --flag_alias=simple_build_id=//bazel/config:simple_build_id common --flag_alias=create_dwp=//bazel/config:create_dwp common --flag_alias=win_min_version=//bazel/config:win_min_version common --flag_alias=build_atlas=//bazel/config:build_atlas common --flag_alias=dtlto=//bazel/config:dtlto common --flag_alias=all_headers=//bazel/config:all_headers common --flag_alias=evg=//bazel/config:evg common --flag_alias=extensions_signature_verification_secure=//bazel/config:extensions_signature_verification_secure ############################################################################################################################# # BUILD 'PROFILES' - this is the area to set up configurations of flags to be used by developers. # --enable_platform_specific_config=true is passed to every profile so more hardware specific # configurations can override the defaults in these profiles. These represent the only supported flag configurations, # and should be the only thing passed on the command line in most scenarios # Every profile should explicitly specify every option used by every other profile, with the exception of the # profile modifiers # The base profiles are fast, opt and debug - these reflect the output directories artifacts will get placed into # and match the bazel compilation modes # Should a profile modify another profile, it should be named {original_profile}_{modifier_name} - example fast_static # You can use .bazelrc.local to modify the default build type you want to use locally # Current Profiles: # fastbuild # dbg # dbg_aubsan # dbg_tsan # opt # Bazel will by default strip on fastbuild, if we want stripping we will handle it ourselves common --strip=never # Current default profile - fastbuild - this matches the config options of fastbuild. It does not just set --config=fastbuild # To avoid the bazel warning about passing multiple configs common -c fastbuild common --fission=yes common --//bazel/config:dwarf_version=5 common --//bazel/config:compress_debug_compile=True common --//bazel/config:opt=off common --//bazel/config:dbg=True common --//bazel/config:dbg_level=1 common --//bazel/config:debug_symbols=True common --//bazel/config:separate_debug=False common --//bazel/config:compiler_type=clang common --//bazel/config:linker=mold common --//bazel/config:linkstatic=True common --//bazel/config:build_enterprise=True common --//bazel/config:skip_archive=True common --//bazel/config:allocator=auto common --//bazel/config:asan=False common --//bazel/config:tsan=False common --//bazel/config:ubsan=False common --//bazel/config:libunwind=auto common --//bazel/config:dtlto=False common --//bazel/config:pgo_profile_use=False common --//bazel/config:cspgo_profile_use=False common --//bazel/config:bolt_profile_use=False common --//bazel/config:evg=False common --jobs=300 common:macos --jobs=auto common:windows --jobs=auto common --enable_platform_specific_config=true # Profile for building fast with minimal debuggability - the build is fast ################################################## --config=fastbuild common:fastbuild -c fastbuild common:fastbuild --fission=yes common:fastbuild --//bazel/config:dwarf_version=5 common:fastbuild --//bazel/config:compress_debug_compile=True common:fastbuild --//bazel/config:opt=off common:fastbuild --//bazel/config:dbg=True common:fastbuild --//bazel/config:dbg_level=1 common:fastbuild --//bazel/config:debug_symbols=True common:fastbuild --//bazel/config:separate_debug=False common:fastbuild --//bazel/config:compiler_type=clang common:fastbuild --//bazel/config:linker=mold common:fastbuild --//bazel/config:linkstatic=True common:fastbuild --//bazel/config:build_enterprise=True common:fastbuild --//bazel/config:skip_archive=True common:fastbuild --//bazel/config:allocator=auto common:fastbuild --//bazel/config:asan=False common:fastbuild --//bazel/config:tsan=False common:fastbuild --//bazel/config:ubsan=False common:fastbuild --//bazel/config:dtlto=False common:fastbuild --//bazel/config:pgo_profile_use=False common:fastbuild --//bazel/config:cspgo_profile_use=False common:fastbuild --//bazel/config:bolt_profile_use=False common:fastbuild --//bazel/config:libunwind=auto common:fastbuild --enable_platform_specific_config=true # Profile for building highly debuggable code - the build is slow, the code is slow, the binaries are large ################# --config=dbg common:dbg -c dbg common:dbg --fission=yes common:dbg --//bazel/config:dwarf_version=5 common:dbg --//bazel/config:compress_debug_compile=True common:dbg --//bazel/config:opt=off common:dbg --//bazel/config:dbg=True common:dbg --//bazel/config:dbg_level=2 common:dbg --//bazel/config:debug_symbols=True common:dbg --//bazel/config:separate_debug=False common:dbg --//bazel/config:compiler_type=clang common:dbg --//bazel/config:linker=mold common:dbg --//bazel/config:linkstatic=True common:dbg --//bazel/config:build_enterprise=True common:dbg --//bazel/config:skip_archive=True common:dbg --//bazel/config:allocator=auto common:dbg --//bazel/config:asan=False common:dbg --//bazel/config:tsan=False common:dbg --//bazel/config:ubsan=False common:dbg --//bazel/config:libunwind=auto common:dbg --//bazel/config:dtlto=False common:dbg --//bazel/config:pgo_profile_use=False common:dbg --//bazel/config:cspgo_profile_use=False common:dbg --//bazel/config:bolt_profile_use=False common:dbg --enable_platform_specific_config=true # Build with address and undefined sanitizers --config=dbg_aubsan common:dbg_aubsan --config=dbg common:dbg_aubsan --//bazel/config:opt=debug common:dbg_aubsan --//bazel/config:linkstatic=False common:dbg_aubsan --//bazel/config:allocator=system common:dbg_aubsan --//bazel/config:asan=True common:dbg_aubsan --//bazel/config:ubsan=True common:dbg_aubsan --enable_platform_specific_config=true # Build with thread sanitizers --config=dbg_tsan common:dbg_tsan --config=dbg common:dbg_tsan --//bazel/config:opt=debug common:dbg_tsan --//bazel/config:linkstatic=False common:dbg_tsan --//bazel/config:allocator=system common:dbg_tsan --//bazel/config:tsan=True common:dbg_tsan --//bazel/config:libunwind=off common:dbg_tsan --//bazel/config:skip_archive=False common:dbg_tsan --enable_platform_specific_config=true # Profile for building optimized code - the build is slow, the code is fast ################################################# --config=opt common:opt -c opt common:opt --fission=yes common:opt --//bazel/config:dwarf_version=5 common:opt --//bazel/config:compress_debug_compile=True common:opt --//bazel/config:opt=on common:opt --//bazel/config:dbg=False common:opt --//bazel/config:dbg_level=2 common:opt --//bazel/config:debug_symbols=True common:opt --//bazel/config:separate_debug=False common:opt --//bazel/config:compiler_type=clang common:opt --//bazel/config:linker=auto common:opt --//bazel/config:linkstatic=True common:opt --//bazel/config:build_enterprise=True common:opt --//bazel/config:skip_archive=True common:opt --//bazel/config:allocator=auto common:opt --//bazel/config:asan=False common:opt --//bazel/config:tsan=False common:opt --//bazel/config:ubsan=False common:opt --//bazel/config:libunwind=auto common:opt --//bazel/config:dtlto=False common:opt --//bazel/config:pgo_profile_use=False common:opt --//bazel/config:cspgo_profile_use=False common:opt --//bazel/config:bolt_profile_use=False common:opt --enable_platform_specific_config=true --config=opt_profiled common:opt_profiled --config=opt common:opt_profiled --fission=no common:opt_profiled --//bazel/config:separate_debug=True common:opt_profiled --//bazel/config:compiler_type=clang common:opt_profiled --//bazel/config:dtlto=True common:opt_profiled --//bazel/config:pgo_profile_use=True common:opt_profiled --enable_platform_specific_config=true --config=evg common:evg --config=opt common:evg --fission=no common:evg --evg=True # TODO(SERVER-114370): Remove once atlas module is enabled in CI by default common:evg --//bazel/config:build_atlas=False common:evg --//bazel/config:opt=auto common:evg --//bazel/config:separate_debug=True common:evg --enable_platform_specific_config=true --config=evg_crypt common:evg_crypt --config=evg common:evg_crypt --//bazel/config:allocator=system common:evg_crypt --//bazel/config:js_engine=none common:evg_crypt --//bazel/config:ssl=False common:evg_crypt --//bazel/config:http_client=False common:evg_crypt --//bazel/config:shared_archive=True --config=evg_crypt_dbg common:evg_crypt_dbg --config=evg_crypt common:evg_crypt_dbg --//bazel/config:opt=off common:evg_crypt_dbg --//bazel/config:dbg=True --config=evg_crypt_test common:evg_crypt_test --config=evg_crypt common:evg_crypt_test --//bazel/config:shared_archive=False --config=evg_stitch common:evg_stitch --config=evg common:evg_stitch --//bazel/config:build_enterprise=False common:evg_stitch --//bazel/config:ssl=False common:evg_stitch --//bazel/config:http_client=False common:evg_stitch --//bazel/config:shared_archive=True --config=evg_stitch_test common:evg_stitch_test --config=evg_stitch common:evg_stitch_test --//bazel/config:shared_archive=False # TODO: Build the code as we would release it # common:opt_release --config=opt # common:opt_release --//bazel/config:separate_debug=True # common:opt_release --//bazel/config:build_enterprise=True # common:opt_release --//bazel/config:release=True # TODO: Open Source community build flags # common:community ############################################################################################################################# --config=remote_link common:remote_link --strategy=CppLink=remote common:remote_link --strategy=CppArchive=remote common:remote_link --strategy=SolibSymlink=remote common:remote_link --strategy=ExtractDebugInfo=remote common:remote_link --strategy=StripDebugInfo=remote common:remote_link --//bazel/config:remote_link=True common:remote_link --features=-thin_archive --config=remote_test common:remote_test --strategy=CppLink=remote common:remote_test --strategy=CppArchive=remote common:remote_test --strategy=SolibSymlink=remote common:remote_test --strategy=ExtractDebugInfo=remote common:remote_test --strategy=StripDebugInfo=remote common:remote_test --//bazel/config:remote_link=True common:remote_test --//bazel/config:remote_test=True common:remote_test --strategy=TestRunner=remote common:remote_test --features=-thin_archive common:remote_test --remote_download_outputs=minimal common:remote_test --test_output=summary # The below line unsets the no-remote-cache execution info for the given strategies # even though upon first glance it looks like it's setting it. common:remote_test --modify_execution_info=^(TestRunner|CppLink|CppArchive|SolibSymlink|ExtractDebugInfo|StripDebugInfo|CcGenerateIntermediateDwp|CcGenerateDwp)$=-no-remote-cache common:remote_test --remote_download_regex=.*\.(core|mdmp|gz)$ test:remote_test --test_tag_filters=-incompatible_with_bazel_remote_test --config=remote_unittest common:remote_unittest --config=remote_test common:remote_unittest --cache_test_results=auto common:remote_unittest --dev_stacktrace=False common:remote_unittest --run_under=//bazel:test_wrapper common:remote_unittest --test_timeout=660 common:remote_unittest --define GIT_COMMIT_HASH=nogitversion test:remote_unittest --test_tag_filters=mongo_unittest,-intermediate_debug,-incompatible_with_bazel_remote_test # Coverage coverage --//bazel/config:coverage=True coverage --config=dbg coverage --compiler_type=clang coverage --linkstatic=False coverage --combined_report=lcov coverage --experimental_use_llvm_covmap coverage --experimental_generate_llvm_lcov coverage --remote_download_outputs=all coverage --fission=no coverage --build_runfile_links coverage --legacy_external_runfiles coverage --instrumentation_filter=^//src/mongo[/:],-^//src/mongo/util:boost_assert_shim,-^//src/mongo/util:icu,-^//src/mongo/db/modules/enterprise/src/streams/third_party[/:] # This is set in .bazelrc.evergreen: # coverage --config=no-remote-exec # code ownership configuration common --define codeowners_add_auto_approve_user=True common --define codeowners_have_allowed_unowned_files=True common --define codeowners_allowed_unowned_files_path=.github/ALLOWED_UNOWNED_FILES.yml common --define codeowners_have_banned_codeowners=True common --define codeowners_banned_codeowners_file_path=.github/BANNED_CODEOWNERS.txt common --define codeowners_have_default_owner=True common --define codeowners_default_owner=@10gen/mongo-default-approvers # Don't detect the native toolchain on linux, only use the hermetic toolchains. # Opt out of this by passing --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=0 on the command line. common:linux --repo_env=BAZEL_DO_NOT_DETECT_CPP_TOOLCHAIN=1 # Only use fission and debug compression on Linux common:windows --fission=no common:windows --//bazel/config:create_dwp=False common:windows --//bazel/config:compress_debug_compile=False common:macos --fission=no common:macos --//bazel/config:create_dwp=False common:macos --//bazel/config:compress_debug_compile=False # Dynamic linking on Windows (DLL generation) is currently not supported. common:windows --//bazel/config:linkstatic=True common:windows --//bazel/config:skip_archive=False # The only Windows compiler we support is MSVC. common:windows --//bazel/config:compiler_type=msvc common:windows --//bazel/config:linker=auto # Data dependencies don't work in bazel run or bazel test on windows without this startup --windows_enable_symlinks common:windows --enable_runfiles build:windows --action_env=MSYS=winsymlinks:nativestrict test:windows --action_env=MSYS=winsymlinks:nativestrict # Always use clang on macos common:macos --//bazel/config:compiler_type=clang common:macos --//bazel/config:linker=auto common:macos --macos_minimum_os=11.0 # TODO(SERVER-102959): Find out why tests fail when mac is not in compilation mode dbg common:macos -c dbg # Remote execution and caching is the default, but only mongodb employees will be able to access # the engflow cluster. External builders should use the --config=local option # Disable remote execution on Windows and MacOS (they cannot reach the engflow cluster): common:windows --remote_executor= common:macos --remote_executor= # Disable atlas module by default on Windows and MacOS since Atlas is only deployed on Linux common:windows --//bazel/config:build_atlas=False common:macos --//bazel/config:build_atlas=False # Enable remote build execution and caching: common --remote_executor=grpcs://sodalite.cluster.engflow.com common --experimental_remote_downloader=grpcs://sodalite.cluster.engflow.com common --remote_cache=grpcs://sodalite.cluster.engflow.com common --bes_backend=grpcs://sodalite.cluster.engflow.com common --bes_results_url=https://sodalite.cluster.engflow.com/invocation/ common --remote_cache_compression=true common --grpc_keepalive_time=30s common --nolegacy_important_outputs common --bes_keywords=repo:mongo common --remote_upload_local_results=False # Settings specific for clang-tidy --config=clang-tidy common:clang-tidy --remote_download_outputs=all common:clang-tidy --build_tag_filters=not_third_party,-mongo-tidy-tests,-mongo-tidy-tests_debug common:clang-tidy --//bazel/config:compiler_type=clang common:clang-tidy --keep_going common:clang-tidy --aspects @bazel_clang_tidy//clang_tidy:clang_tidy.bzl%clang_tidy_aspect common:clang-tidy --output_groups=report common:clang-tidy --jobs=300 --config=mod-scanner common:mod-scanner --config=dbg common:mod-scanner --build_tag_filters=not_third_party,-mongo-tidy-tests,-mongo-tidy-tests_debug common:mod-scanner --//bazel/config:compiler_type=clang common:mod-scanner --//bazel/config:mongo_toolchain_version=v5 common:mod-scanner --output_groups=report common:mod-scanner --aspects //modules_poc:mod_scanner.bzl%mod_scanner_aspect common:mod-scanner --remote_download_regex=.*\.mod_scanner_decls.json$ --config=compiledb common:compiledb --aspects //bazel/compiledb:compiledb_aspect.bzl%compiledb_aspect common:compiledb --output_groups=compiledb_report common:compiledb --keep_going common:compiledb --remote_download_regex=.*\.compile_command\.json$ --config=compiledb-aspect common:compiledb-aspect --config=compiledb --config=symbol-checker common:symbol-checker --aspects //bazel/symbol_checker:symbol_checker.bzl%symbol_checker_aspect common:symbol-checker --output_groups=symbol_checker common:symbol-checker --skip_archive=False common:symbol-checker --keep_going # if you don't have access to the remote execution cluster above, use the local config # by passing "--config=local" on the bazel command line --config=local common:local --remote_executor= common:local --experimental_remote_downloader= common:local --remote_cache= common:local --bes_backend= common:local --bes_results_url= common:local --tls_client_certificate= common:local --tls_client_key= common:local --remote_cache_compression=false common:local --grpc_keepalive_time=0s common:local --legacy_important_outputs common:local --jobs=auto # Disable remote execution but keep remote cache enabled --config=no-remote-exec common:no-remote-exec --remote_executor= common:no-remote-exec --jobs=auto # Common settings for all types of release builds --config=public-release common:public-release --//bazel/config:release=True common:public-release --//bazel/config:extensions_signature_verification_secure=True common:public-release --remote_instance_name=release common:public-release --bes_instance_name=release common:public-release --remote_upload_local_results=false common:public-release --stamp # Disable remote execution for public releases but keep remote downloader for artifact caching --config=public-release-local common:public-release-local --config=public-release common:public-release-local --remote_executor= common:public-release-local --modify_execution_info=.*=+no-cache # Release configuration with rbe enabled --config=public-release-rbe common:public-release-rbe --config=public-release common --@rules_rust//rust/toolchain/channel=nightly common --@rules_rust//rust/settings:experimental_use_allocator_libraries_with_mangled_symbols=true common --@rules_python//python/config_settings:bootstrap_impl=script # https://github.com/bazel-contrib/rules_python/issues/2864 common --@rules_python//python/config_settings:venvs_site_packages=no common --@rules_python//python/config_settings:venvs_use_declare_symlink=no # Experimental flag to collect system network usage metrics during build common --experimental_collect_system_network_usage --config=fission common:fission --fission=yes common:fission --remote_download_regex=.*\.dwo$ --config=fuzztest common:fuzztest --no@fuzztest//fuzztest:use_riegeli common:fuzztest --@fuzztest//fuzztest:centipede_integration=True common:fuzztest --//bazel/config:fsan=True common:fuzztest --//bazel/config:ubsan=True common:fuzztest --//bazel/config:opt=debug common:fuzztest --//bazel/config:allocator=system common:fuzztest --compiler_type=clang # Avoid failing builds when BES metadata fails to upload. common --bes_upload_mode=fully_async # Default distmod if not specified. common --define=MONGO_DISTMOD="" # Default if .git directory is not present common --define=GIT_COMMIT_HASH="nogitversion" # Default retry downloads three times common --experimental_repository_downloader_retries=3 # Place golden test output files where buildscripts/golden_tests.py can find them common --test_env=GOLDEN_TEST_CONFIG_PATH # Upload build events to EngFlow common --experimental_build_event_upload_strategy=remote # 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 # local default dev settings try-import %workspace%/.bazelrc.common_bes # Settings unconditionally written by the wrapper hook try-import %workspace%/.bazelrc.wrapper_hook # Used for build profiles and any settings a user wants to consistently use try-import %workspace%/.bazelrc.local # Flag as built with bazelisk try-import %workspace%/.bazelrc.bazelisk # Flags synced from Flag Sync try-import %workspace%/.bazelrc.sync # Engflow auth credentials try-import %workspace%/.bazelrc.engflow_creds # Flags for fuzztest try-import %workspace%/.bazelrc.fuzztest # Default mongo version try-import %workspace%/.bazelrc.target_mongo_version # local git version info (after target_mongo_version so its MONGO_VERSION override wins) try-import %workspace%/.bazelrc.git # Repository root absolute path to set --execution_log_compact_file #try-import %workspace%/.bazelrc.exec_log_file # ============================================================ # macOS Cross-Compilation Configuration # ============================================================ # To cross-compile for macOS from Linux, you need: # LLVM and the macOS SDK are automatically downloaded from S3. # To override with local paths, set LLVM_PATH and/or MACOS_SDK_PATH env vars. # # The toolchain is hermetic (LLVM tools + SDK placed into the repo), # so both local and remote execution work. # # Cross-compile for macOS arm64 build:macos-cross-arm64 --platforms=//bazel/platforms:macos_arm64_cross # The rust-based allocator_library bundles the full Rust stdlib into its .a; # on Mach-O, ld64.lld then sees the same CGUs in both liballocator_library.a and # libstd.a and fails with duplicate-symbol errors. Fall back to the c-based # allocator shim for macOS cross links. build:macos-cross-arm64 --@rules_rust//rust/settings:experimental_use_allocator_libraries_with_mangled_symbols=false # Cross-compile for macOS x86_64 build:macos-cross-x86_64 --platforms=//bazel/platforms:macos_x86_64_cross build:macos-cross-x86_64 --@rules_rust//rust/settings:experimental_use_allocator_libraries_with_mangled_symbols=false