###############################################################################
# Bazel now uses Bzlmod by default to manage external dependencies.
# Please consider migrating your external dependencies from WORKSPACE to MODULE.bazel.
#
# For more details, please check https://github.com/bazelbuild/bazel/issues/18958
###############################################################################

# NOTE: When editing this file, also update the lockfile.
#   bazel mod deps --lockfile_mode=update

bazel_dep(name = "platforms", version = "1.0.0")
bazel_dep(name = "rules_go", repo_name = "io_bazel_rules_go")
single_version_override(
    module_name = "rules_go",
    patch_strip = 1,
    patches = [
        "//third_party/rules_go:rules_go_absolute_embedsrc.patch",
        "//third_party/rules_go:introduce-all-scope-for-nogo.patch",
        "//third_party/rules_go:cache-fix.patch",
    ],
    version = "0.55.1",
)

bazel_dep(name = "gazelle")
single_version_override(
    module_name = "gazelle",
    patch_strip = 1,
    patches = [
        "//third_party/gazelle:add-prepatching.patch",
    ],
    version = "0.44.0",
)

# rules_rust was split into multiple dependencies. Sadly, this means we have to
# patch each include separately.
RULES_RUST_VERSION = "0.61.0"

bazel_dep(name = "rules_rust")
single_version_override(
    module_name = "rules_rust",
    patch_strip = 1,
    patches = [
        "//third_party/rules_rust:rust-prost-nostd.patch",
        "//third_party/rules_rust:rust-reproducibility.patch",
        "//third_party/rules_rust:musl.patch",
    ],
    version = RULES_RUST_VERSION,
)

bazel_dep(name = "rules_rust_prost")
single_version_override(
    module_name = "rules_rust_prost",
    patch_strip = 3,
    patches = [
        "//third_party/rules_rust:rust-prost-nostd.patch",
    ],
    version = RULES_RUST_VERSION,
)

bazel_dep(name = "openssl")
single_version_override(
    module_name = "openssl",
    patch_strip = 1,
    patches = [
        "//third_party/openssl/patches:force-gnuas.patch",
    ],
    version = "3.3.1.bcr.1",
)

bazel_dep(name = "rules_rust_protobuf", version = RULES_RUST_VERSION)
bazel_dep(name = "rules_rust_mdbook", version = RULES_RUST_VERSION)
bazel_dep(name = "libuuid")
single_version_override(
    module_name = "libuuid",
    patch_strip = 1,
    patches = [
        "//third_party/libuuid/patches:musl-compat.patch",
    ],
    version = "2.39.3.bcr.1",
)

bazel_dep(name = "glib")
single_version_override(
    module_name = "glib",
    patch_strip = 1,
    patches = [
        "//third_party/glib/patches:musl-compat.patch",
    ],
    version = "2.82.2.bcr.5",
)

bazel_dep(name = "rules_python")
single_version_override(
    module_name = "rules_python",
    patch_strip = 1,
    patches = [
        # TODO: Remove if upstream PR is merged
        # https://github.com/bazel-contrib/rules_python/pull/3087
        "//third_party/rules_python:use-usr-bin-env-bash.patch",
    ],
    version = "1.4.1",
)

bazel_dep(name = "rules_oci")
single_version_override(
    module_name = "rules_oci",
    patch_strip = 1,
    patches = [
        "//third_party/rules_oci:use-default-shell-env.patch",
    ],
    version = "2.2.6",
)

bazel_dep(name = "zstd", version = "1.5.7")
bazel_dep(name = "gperf", version = "3.1")
bazel_dep(name = "zlib", version = "1.3.1.bcr.6")
bazel_dep(name = "boringssl", version = "0.20250514.0")
bazel_dep(name = "libcap", version = "2.27")
bazel_dep(name = "buildifier_prebuilt", version = "8.2.0.2")
bazel_dep(name = "bazel_skylib", version = "1.8.0")
bazel_dep(name = "rules_pkg", version = "1.1.0")
bazel_dep(name = "aspect_bazel_lib", version = "2.19.4")
bazel_dep(name = "rules_multirun", version = "0.12.0")
bazel_dep(name = "rules_cc", version = "0.1.2")
bazel_dep(name = "rules_perl", version = "0.2.4")
bazel_dep(name = "rules_proto", version = "7.1.0")
bazel_dep(name = "rules_proto_grpc_doc", version = "5.1.0")
bazel_dep(name = "rules_proto_grpc_buf", version = "5.1.0")
bazel_dep(name = "rules_foreign_cc", version = "0.14.0")

# Currently supported version are listed here:
# https://protobuf.dev/support/version-support/
bazel_dep(name = "protobuf", version = "31.1")
bazel_dep(name = "toolchain_cc_mngn")
git_override(
    module_name = "toolchain_cc_mngn",
    commit = "80acaa3e95473ad76c34c6f409b82f3802de9bd2",
    remote = "https://review.monogon.dev/toolchain_cc",
)

register_toolchains("@toolchain_cc_mngn//linux_musl:linux_x86_64_linux_x86_64_musl_static")

register_toolchains("@toolchain_cc_mngn//linux_musl:linux_x86_64_linux_aarch64_musl_static")

register_toolchains("@toolchain_cc_mngn//efi:linux_x86_64_efi_x86_64")

register_toolchains("@toolchain_cc_mngn//efi:linux_x86_64_efi_aarch64")

# Rust Toolchains
register_toolchains("@rust_toolchains//:all")

# Protobuf Toolchains
register_toolchains("@rules_rust_protobuf//:default_proto_toolchain")

register_toolchains("//build/toolchain/rust-efi:prost_efi_toolchain")

register_toolchains("//build/toolchain/toolchain-bundle:all")

# Rust config
include("//build/bazel:rust.MODULE.bazel")

# Go dependencies
include("//build/bazel:go.MODULE.bazel")

# OCI Config
include("//build/bazel:oci.MODULE.bazel")

# Third Party dependencies
include("//build/bazel:third_party.MODULE.bazel")

# Toolchain Bundle
include("//build/bazel:toolchain.MODULE.bazel")
