353 lines
13 KiB
Plaintext
353 lines
13 KiB
Plaintext
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
load("//bazel/toolchains:mongo_toolchain.bzl", "setup_mongo_toolchains")
|
|
|
|
# Apple cc toolchain needs to be loaded before regular cc toolchain or else Apple will just use regular cc toolchain
|
|
http_archive(
|
|
name = "build_bazel_apple_support",
|
|
sha256 = "b53f6491e742549f13866628ddffcc75d1f3b2d6987dc4f14a16b242113c890b",
|
|
url = "https://github.com/bazelbuild/apple_support/releases/download/1.17.1/apple_support.1.17.1.tar.gz",
|
|
)
|
|
|
|
load(
|
|
"@build_bazel_apple_support//lib:repositories.bzl",
|
|
"apple_support_dependencies",
|
|
)
|
|
|
|
apple_support_dependencies()
|
|
|
|
load("@bazel_features//:deps.bzl", "bazel_features_deps")
|
|
|
|
bazel_features_deps()
|
|
|
|
http_archive(
|
|
name = "bazel_clang_tidy",
|
|
sha256 = "f77f7f63fc43b6f7dba23f807132e24c36110d481826685ce49f38a04058c4ea",
|
|
strip_prefix = "bazel_clang_tidy-1.5",
|
|
urls = [
|
|
# Implements retry by relisting each url multiple times to be used as a failover.
|
|
# TODO(SERVER-86719): Re-implement http_archive to allow sleeping between retries
|
|
"https://github.com/mongodb-forks/bazel_clang_tidy/archive/refs/tags/v1.5.tar.gz",
|
|
"https://github.com/mongodb-forks/bazel_clang_tidy/archive/refs/tags/v1.5.tar.gz",
|
|
"https://github.com/mongodb-forks/bazel_clang_tidy/archive/refs/tags/v1.5.tar.gz",
|
|
"https://github.com/mongodb-forks/bazel_clang_tidy/archive/refs/tags/v1.5.tar.gz",
|
|
"https://github.com/mongodb-forks/bazel_clang_tidy/archive/refs/tags/v1.5.tar.gz",
|
|
],
|
|
)
|
|
|
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
|
|
http_archive(
|
|
name = "aspect_rules_lint",
|
|
sha256 = "f60e4a737a5e09402f5fa3bd182efa80dac5523ca4b9bc5c6fa8c06fbfb46630",
|
|
strip_prefix = "rules_lint-1.1.0",
|
|
url = "https://github.com/aspect-build/rules_lint/releases/download/v1.1.0/rules_lint-v1.1.0.tar.gz",
|
|
)
|
|
|
|
# aspect_rules_lint depends on aspect_bazel_lib.
|
|
http_archive(
|
|
name = "aspect_bazel_lib",
|
|
sha256 = "6d758a8f646ecee7a3e294fbe4386daafbe0e5966723009c290d493f227c390b",
|
|
strip_prefix = "bazel-lib-2.7.7",
|
|
url = "https://github.com/aspect-build/bazel-lib/releases/download/v2.7.7/bazel-lib-v2.7.7.tar.gz",
|
|
)
|
|
|
|
load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies")
|
|
|
|
# aspect_bazel_lib depends on bazel_skylib
|
|
aspect_bazel_lib_dependencies()
|
|
|
|
load(
|
|
"@aspect_rules_lint//format:repositories.bzl",
|
|
# Fetch additional formatter binaries you need:
|
|
"fetch_java_format",
|
|
"fetch_ktfmt",
|
|
"fetch_swiftformat",
|
|
"rules_lint_dependencies",
|
|
)
|
|
|
|
rules_lint_dependencies()
|
|
|
|
fetch_java_format()
|
|
|
|
fetch_ktfmt()
|
|
|
|
fetch_swiftformat()
|
|
|
|
load("@aspect_rules_lint//lint:checkstyle.bzl", "fetch_checkstyle")
|
|
|
|
fetch_checkstyle()
|
|
|
|
load("@aspect_rules_lint//lint:pmd.bzl", "fetch_pmd")
|
|
|
|
fetch_pmd()
|
|
|
|
load("@aspect_rules_lint//lint:vale.bzl", "fetch_vale")
|
|
|
|
fetch_vale()
|
|
|
|
load("@aspect_rules_lint//lint:ktlint.bzl", "fetch_ktlint")
|
|
|
|
fetch_ktlint()
|
|
|
|
load("@aspect_rules_lint//lint:spotbugs.bzl", "fetch_spotbugs")
|
|
|
|
fetch_spotbugs()
|
|
|
|
########################
|
|
# Optional: multitool provides defaults for some tools such as yamlfmt
|
|
# If you do not set up multitool, you must provide these tools yourself
|
|
load("@rules_multitool//multitool:multitool.bzl", "multitool")
|
|
|
|
multitool(
|
|
name = "multitool",
|
|
lockfiles = [
|
|
"@aspect_rules_lint//format:multitool.lock.json",
|
|
"@aspect_rules_lint//lint:multitool.lock.json",
|
|
],
|
|
)
|
|
|
|
load("//bazel/platforms:local_config_platform.bzl", "setup_local_config_platform")
|
|
load("//bazel/toolchains:mongo_toolchain.bzl", "toolchain_download")
|
|
|
|
setup_local_config_platform(name = "internal_platforms_do_not_use")
|
|
|
|
setup_mongo_toolchains()
|
|
|
|
load("//bazel/toolchains/mongo_apple:mongo_apple_toolchain.bzl", "mongo_apple_toolchain_config", "mongo_apple_toolchain_setup")
|
|
|
|
mongo_apple_toolchain_config(name = "mongo_apple_toolchain_config")
|
|
|
|
mongo_apple_toolchain_setup(name = "mongo_apple_toolchain")
|
|
|
|
register_toolchains("@mongo_apple_toolchain//...")
|
|
|
|
http_archive(
|
|
name = "windows_sasl",
|
|
build_file_content = """
|
|
package(default_visibility = ["//visibility:public"])
|
|
|
|
filegroup(
|
|
name = "includes",
|
|
srcs = select({
|
|
"@platforms//os:windows": glob(["include/**/*.h"]),
|
|
"//conditions:default": [],
|
|
}),
|
|
)
|
|
|
|
filegroup(
|
|
name = "libraries",
|
|
srcs = select({
|
|
"@platforms//os:windows": glob(["lib/**/*"]),
|
|
"//conditions:default": [],
|
|
}),
|
|
)
|
|
|
|
filegroup(
|
|
name = "bins",
|
|
srcs = select({
|
|
"@platforms//os:windows": glob(["bin/**/*"]),
|
|
"//conditions:default": [],
|
|
}),
|
|
)
|
|
""",
|
|
sha256 = "3e22e2b16f802277123590f64dfda44f1c9c8a2b7e758180cd956d8ab0965817",
|
|
url = "https://s3.amazonaws.com/boxes.10gen.com/build/windows_cyrus_sasl-2.1.28.zip",
|
|
)
|
|
|
|
load("//bazel/toolchains:python_toolchain.bzl", "setup_mongo_python_toolchains")
|
|
|
|
[register_toolchains(toolchain) for toolchain in setup_mongo_python_toolchains()]
|
|
|
|
load("//bazel/coverity:coverity_toolchain.bzl", "coverity_toolchain")
|
|
|
|
coverity_toolchain(
|
|
name = "rules_coverity",
|
|
)
|
|
|
|
load("@rules_coverity//coverity:repositories.bzl", "rules_coverity_toolchains")
|
|
|
|
rules_coverity_toolchains()
|
|
|
|
http_archive(
|
|
name = "platforms",
|
|
sha256 = "8150406605389ececb6da07cbcb509d5637a3ab9a24bc69b1101531367d89d74",
|
|
urls = [
|
|
# Implements retry by relisting each url multiple times to be used as a failover.
|
|
# TODO(SERVER-86719): Re-implement http_archive to allow sleeping between retries
|
|
"https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
|
|
"https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
|
|
"https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
|
|
"https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
|
|
"https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
|
|
"https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
|
|
"https://mirror.bazel.build/github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
|
|
"https://github.com/bazelbuild/platforms/releases/download/0.0.8/platforms-0.0.8.tar.gz",
|
|
],
|
|
)
|
|
|
|
# We need skylib to be able to use config_setting_group in rule_poetry below
|
|
# https://github.com/bazelbuild/bazel-skylib/blob/main/docs/selects_doc.md#selectsconfig_setting_group
|
|
http_archive(
|
|
name = "bazel_skylib",
|
|
sha256 = "cd55a062e763b9349921f0f5db8c3933288dc8ba4f76dd9416aac68acee3cb94",
|
|
urls = [
|
|
# Implements retry by relisting each url multiple times to be used as a failover.
|
|
# TODO(SERVER-86719): Re-implement http_archive to allow sleeping between retries
|
|
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
|
|
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
|
|
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
|
|
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
|
|
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
|
|
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
|
|
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
|
|
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.5.0/bazel-skylib-1.5.0.tar.gz",
|
|
],
|
|
)
|
|
|
|
# Poetry rules for managing Python dependencies
|
|
http_archive(
|
|
name = "rules_poetry",
|
|
sha256 = "48001b928488e78f03a47bcc712c56432a471fc6cdd90fe57c884efbfcd13696",
|
|
strip_prefix = "rules_poetry-917630033c736c188605cf0f558c34afc1eca540",
|
|
urls = [
|
|
# Implements retry by relisting each url multiple times to be used as a failover.
|
|
# TODO(SERVER-86719): Re-implement http_archive to allow sleeping between retries
|
|
"https://github.com/mongodb-forks/rules_poetry/archive/917630033c736c188605cf0f558c34afc1eca540.tar.gz",
|
|
"https://github.com/mongodb-forks/rules_poetry/archive/917630033c736c188605cf0f558c34afc1eca540.tar.gz",
|
|
"https://github.com/mongodb-forks/rules_poetry/archive/917630033c736c188605cf0f558c34afc1eca540.tar.gz",
|
|
"https://github.com/mongodb-forks/rules_poetry/archive/917630033c736c188605cf0f558c34afc1eca540.tar.gz",
|
|
"https://github.com/mongodb-forks/rules_poetry/archive/917630033c736c188605cf0f558c34afc1eca540.tar.gz",
|
|
],
|
|
)
|
|
|
|
load("@rules_poetry//rules_poetry:defs.bzl", "poetry_deps")
|
|
|
|
poetry_deps()
|
|
|
|
load("@rules_poetry//rules_poetry:poetry.bzl", "poetry")
|
|
|
|
poetry(
|
|
name = "poetry",
|
|
lockfile = "//:poetry.lock",
|
|
pyproject = "//:pyproject.toml",
|
|
python_interpreter_target_default = "@py_host//:dist/bin/python3",
|
|
python_interpreter_target_mac = "@py_host//:dist/bin/python3",
|
|
python_interpreter_target_win = "@py_host//:dist/python.exe",
|
|
)
|
|
|
|
http_archive(
|
|
name = "aspect_rules_js",
|
|
sha256 = "875b8d01af629dbf626eddc5cf239c9f0da20330f4d99ad956afc961096448dd",
|
|
strip_prefix = "rules_js-2.1.3",
|
|
urls = [
|
|
# Implements retry by relisting each url multiple times to be used as a failover.
|
|
# TODO(SERVER-86719): Re-implement http_archive to allow sleeping between retries
|
|
"https://github.com/aspect-build/rules_js/releases/download/v2.1.3/rules_js-v2.1.3.tar.gz",
|
|
"https://github.com/aspect-build/rules_js/releases/download/v2.1.3/rules_js-v2.1.3.tar.gz",
|
|
"https://github.com/aspect-build/rules_js/releases/download/v2.1.3/rules_js-v2.1.3.tar.gz",
|
|
"https://github.com/aspect-build/rules_js/releases/download/v2.1.3/rules_js-v2.1.3.tar.gz",
|
|
"https://github.com/aspect-build/rules_js/releases/download/v2.1.3/rules_js-v2.1.3.tar.gz",
|
|
],
|
|
)
|
|
|
|
load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
|
|
|
|
rules_js_dependencies()
|
|
|
|
load("@aspect_rules_js//js:toolchains.bzl", "DEFAULT_NODE_VERSION", "rules_js_register_toolchains")
|
|
|
|
rules_js_register_toolchains(node_version = DEFAULT_NODE_VERSION)
|
|
|
|
load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock")
|
|
|
|
npm_translate_lock(
|
|
name = "npm",
|
|
npmrc = "//:.npmrc",
|
|
pnpm_lock = "//:pnpm-lock.yaml",
|
|
verify_node_modules_ignored = "//:.bazelignore",
|
|
)
|
|
|
|
load("@npm//:repositories.bzl", "npm_repositories")
|
|
|
|
npm_repositories()
|
|
|
|
# Sub in the system openssl for boringssl since we don't want two implementations of
|
|
# ssl in the same address space.
|
|
new_local_repository(
|
|
name = "boringssl",
|
|
build_file_content = """
|
|
cc_library(
|
|
name = "crypto",
|
|
linkopts = ["-lcrypto"],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
cc_library(
|
|
name = "ssl",
|
|
linkopts = ["-lssl"],
|
|
visibility = ["//visibility:public"],
|
|
)
|
|
""",
|
|
path = "bazel/_openssl_placeholder_for_grpc",
|
|
)
|
|
|
|
# Overloads for the vendored repositories.
|
|
#
|
|
# WARNING: Don't change the order of the deps() calls and local_repositories.
|
|
# They're read linearly dependencies that come first override later
|
|
# ones. Dependency updates might change the correct order, though it's
|
|
# unlikely. This is obviously a temporary solution and will no longer
|
|
# be necessary once migration to bzlmod is complete.
|
|
|
|
# Note: rules_python is implicitly loaded with a grpc-compatible version.
|
|
|
|
local_repository(
|
|
name = "com_google_absl",
|
|
path = "src/third_party/abseil-cpp/dist",
|
|
)
|
|
|
|
local_repository(
|
|
name = "com_google_protobuf",
|
|
path = "src/third_party/protobuf/dist",
|
|
)
|
|
|
|
local_repository(
|
|
name = "com_github_grpc_grpc",
|
|
path = "src/third_party/grpc/dist",
|
|
)
|
|
|
|
load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
|
|
|
|
grpc_deps()
|
|
|
|
load("@com_github_grpc_grpc//bazel:grpc_extra_deps.bzl", "grpc_extra_deps")
|
|
|
|
grpc_extra_deps()
|
|
|
|
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
|
|
|
|
http_archive(
|
|
name = "rules_pkg",
|
|
sha256 = "8f9ee2dc10c1ae514ee599a8b42ed99fa262b757058f65ad3c384289ff70c4b8",
|
|
urls = [
|
|
"https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.9.1/rules_pkg-0.9.1.tar.gz",
|
|
"https://github.com/bazelbuild/rules_pkg/releases/download/0.9.1/rules_pkg-0.9.1.tar.gz",
|
|
"https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.9.1/rules_pkg-0.9.1.tar.gz",
|
|
"https://github.com/bazelbuild/rules_pkg/releases/download/0.9.1/rules_pkg-0.9.1.tar.gz",
|
|
"https://mirror.bazel.build/github.com/bazelbuild/rules_pkg/releases/download/0.9.1/rules_pkg-0.9.1.tar.gz",
|
|
],
|
|
)
|
|
|
|
load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")
|
|
|
|
rules_pkg_dependencies()
|
|
|
|
load("//bazel/install_rules:pigz.bzl", "setup_pigz")
|
|
|
|
setup_pigz(
|
|
name = "pigz",
|
|
)
|
|
|
|
load("//bazel/format:shfmt.bzl", "shfmt")
|
|
|
|
shfmt()
|