|
|
|
# TODO: migrate all dependencies from WORKSPACE to MODULE.bazel
|
|
|
|
# https://github.com/protocolbuffers/protobuf/issues/14313
|
|
|
|
|
|
|
|
module(
|
|
|
|
name = "protobuf",
|
|
|
|
version = "28.0-dev", # Automatically updated on release
|
|
|
|
compatibility_level = 1,
|
|
|
|
repo_name = "com_google_protobuf",
|
|
|
|
)
|
|
|
|
|
|
|
|
# LOWER BOUND dependency versions.
|
|
|
|
# Bzlmod follows MVS:
|
|
|
|
# https://bazel.build/versions/6.0.0/build/bzlmod#version-resolution
|
|
|
|
# Thus the highest version in their module graph is resolved.
|
|
|
|
bazel_dep(name = "abseil-cpp", version = "20230802.0.bcr.1", repo_name = "com_google_absl")
|
|
|
|
bazel_dep(name = "bazel_skylib", version = "1.4.1")
|
|
|
|
bazel_dep(name = "jsoncpp", version = "1.9.5")
|
|
|
|
bazel_dep(name = "rules_cc", version = "0.0.9")
|
|
|
|
bazel_dep(name = "rules_fuzzing", version = "0.5.2")
|
|
|
|
bazel_dep(name = "rules_java", version = "5.3.5")
|
|
|
|
bazel_dep(name = "rules_jvm_external", version = "5.1")
|
|
|
|
bazel_dep(name = "rules_pkg", version = "0.7.0")
|
|
|
|
bazel_dep(name = "rules_python", version = "0.28.0")
|
|
|
|
bazel_dep(name = "rules_rust", version = "0.45.1")
|
|
|
|
bazel_dep(name = "platforms", version = "0.0.8")
|
|
|
|
bazel_dep(name = "zlib", version = "1.3.1")
|
|
|
|
bazel_dep(name = "bazel_features", version = "1.13.0", repo_name = "proto_bazel_features")
|
|
|
|
|
|
|
|
# TODO: remove after toolchain types are moved to protobuf
|
|
|
|
bazel_dep(name = "rules_proto", version = "4.0.0")
|
|
|
|
|
|
|
|
SUPPORTED_PYTHON_VERSIONS = [
|
|
|
|
"3.8",
|
|
|
|
"3.9",
|
|
|
|
"3.10",
|
|
|
|
"3.11",
|
|
|
|
"3.12",
|
|
|
|
]
|
|
|
|
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
|
|
|
|
[
|
|
|
|
python.toolchain(
|
|
|
|
is_default = python_version == SUPPORTED_PYTHON_VERSIONS[-1],
|
|
|
|
python_version = python_version,
|
|
|
|
)
|
|
|
|
for python_version in SUPPORTED_PYTHON_VERSIONS
|
|
|
|
]
|
|
|
|
use_repo(python, system_python = "python_{}".format(SUPPORTED_PYTHON_VERSIONS[-1].replace(".", "_")))
|
|
|
|
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
|
|
|
|
[
|
|
|
|
pip.parse(
|
|
|
|
hub_name = "pip_deps",
|
|
|
|
python_version = python_version,
|
|
|
|
requirements_lock = "//python:requirements.txt",
|
|
|
|
)
|
|
|
|
for python_version in SUPPORTED_PYTHON_VERSIONS
|
|
|
|
]
|
|
|
|
use_repo(pip, "pip_deps")
|
|
|
|
|
|
|
|
rust = use_extension("@rules_rust//rust:extensions.bzl", "rust")
|
|
|
|
rust.toolchain(edition = "2021")
|
|
|
|
use_repo(rust, "rust_toolchains")
|
|
|
|
register_toolchains("@rust_toolchains//:all")
|
|
|
|
crate = use_extension("@rules_rust//crate_universe:extension.bzl", "crate")
|
|
|
|
crate.spec(
|
|
|
|
package = "googletest",
|
|
|
|
version = ">0.0.0",
|
|
|
|
)
|
|
|
|
crate.spec(
|
|
|
|
package = "paste",
|
|
|
|
version = ">=1",
|
|
|
|
)
|
|
|
|
crate.from_specs()
|
|
|
|
use_repo(crate, crate_index = "crates")
|
|
|
|
|
|
|
|
# Development dependencies
|
|
|
|
bazel_dep(name = "rules_testing", version = "0.6.0", dev_dependency = True)
|