# NOTE: When editing this file, also update the lockfile.
#   bazel run //src/test/tools/bzlmod:update_default_lock_file
#   bazel mod deps --lockfile_mode=update

module(name = "bazel_tools")

bazel_dep(name = "rules_license", version = "1.0.0")

bazel_dep(name = "buildozer", version = "8.2.0.bcr.1")
bazel_dep(name = "platforms", version = "1.0.0")
bazel_dep(name = "zlib", version = "1.3.1.bcr.5")

# Enforce a minimal required version
bazel_dep(name = "bazel_features", version = "1.30.0", repo_name = None)

xcode_configure = use_extension("//tools/osx:xcode_configure.bzl", "xcode_configure_extension")
use_repo(xcode_configure, "local_config_xcode")

java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains")
use_repo(
    java_toolchains,
    "local_jdk",
    "remote_java_tools",
)

remote_coverage_tools_extension = use_extension("//tools/test:extensions.bzl", "remote_coverage_tools_extension")
use_repo(remote_coverage_tools_extension, "remote_coverage_tools")

# Used by bazel mod tidy (see BazelModTidyFunction).
buildozer_binary = use_extension("@buildozer//:buildozer_binary.bzl", "buildozer_binary")
use_repo(buildozer_binary, "buildozer_binary")

# Dependencies used to auto-load removed symbols and rules from Bazel (due to Starlarkification)
# See also:  --incompatible_autoload_externally, AutoloadSymbols
bazel_dep(name = "protobuf", version = "33.0", repo_name = "com_google_protobuf")
bazel_dep(name = "rules_java", version = "8.16.1")
bazel_dep(name = "rules_cc", version = "0.2.14-rc1")
bazel_dep(name = "rules_python", version = "1.6.0")
bazel_dep(name = "rules_shell", version = "0.6.1")
bazel_dep(name = "apple_support", version = "1.24.2") # xcode_configure needs it
bazel_dep(name = "rules_apple", version = "4.1.0", repo_name = None) # version bump, older versions contribute lockfile entries
bazel_dep(name = "rules_swift", version = "3.1.2", repo_name = None) # version bump, older versions don't load CcInfo
bazel_dep(name = "abseil-cpp", version = "20250814.1", repo_name = None) # version bump, fixes errors with older compilers
# add rules_android

register_toolchains(
    "//tools/launcher:all",
    "//tools/test:all",
)
