module(
    name = "rules_java",
    version = "7.11.1",
    bazel_compatibility = [">=6.2.0"],
    compatibility_level = 1,
)

bazel_dep(name = "platforms", version = "0.0.4")
bazel_dep(name = "rules_cc", version = "0.0.2")
bazel_dep(name = "bazel_features", version = "1.11.0")
bazel_dep(name = "bazel_skylib", version = "1.6.1")

# Required by @remote_java_tools, which is loaded via module extension.
bazel_dep(name = "rules_proto", version = "6.0.2")
bazel_dep(name = "rules_license", version = "0.0.3")
bazel_dep(name = "abseil-cpp", version = "20230802.1", repo_name = "com_google_absl")

register_toolchains("//toolchains:all")

toolchains = use_extension("//java:extensions.bzl", "toolchains")

# Declare remote java tools repos
use_repo(toolchains, "remote_java_tools")
use_repo(toolchains, "remote_java_tools_linux")
use_repo(toolchains, "remote_java_tools_windows")
use_repo(toolchains, "remote_java_tools_darwin_x86_64")
use_repo(toolchains, "remote_java_tools_darwin_arm64")

# Declare local jdk repo
use_repo(toolchains, "local_jdk")

register_toolchains(
    "@local_jdk//:runtime_toolchain_definition",
    "@local_jdk//:bootstrap_runtime_toolchain_definition",
)

# Declare all remote jdk toolchain config repos
JDKS = {
    # Must match JDK repos defined in remote_jdk8_repos()
    "8": [
        "linux",
        "linux_aarch64",
        "linux_s390x",
        "macos",
        "macos_aarch64",
        "windows",
    ],
    # Must match JDK repos defined in remote_jdk11_repos()
    "11": [
        "linux",
        "linux_aarch64",
        "linux_ppc64le",
        "linux_s390x",
        "macos",
        "macos_aarch64",
        "win",
        "win_arm64",
    ],
    # Must match JDK repos defined in remote_jdk17_repos()
    "17": [
        "linux",
        "linux_aarch64",
        "linux_ppc64le",
        "linux_s390x",
        "macos",
        "macos_aarch64",
        "win",
        "win_arm64",
    ],
    # Must match JDK repos defined in remote_jdk21_repos()
    "21": [
        "linux",
        "linux_aarch64",
        "linux_ppc64le",
        "linux_s390x",
        "macos",
        "macos_aarch64",
        "win",
        "win_arm64",
    ],
}

REMOTE_JDK_REPOS = [(("remote_jdk" if version == "8" else "remotejdk") + version + "_" + platform) for version in JDKS for platform in JDKS[version]]

[use_repo(
    toolchains,
    repo + "_toolchain_config_repo",
) for repo in REMOTE_JDK_REPOS]

[register_toolchains("@" + name + "_toolchain_config_repo//:all") for name in REMOTE_JDK_REPOS]

# Dev dependencies
bazel_dep(name = "rules_pkg", version = "0.9.1", dev_dependency = True)

# Override rules_python version to deal with #161 and https://github.com/bazelbuild/bazel/issues/20458
single_version_override(
    module_name = "rules_python",
    version = "0.24.0",
)

# TODO: drop this & update version from BCR above
archive_override(
    module_name = "rules_cc",
    integrity = "sha256-ZvxtrlaB2jZk56tUDasvs4b1ThcPMaEa64u+MZSwf1E=",
    strip_prefix = "rules_cc-0.0.10-rc2",
    urls = ["https://github.com/bazelbuild/rules_cc/releases/download/0.0.10-rc2/rules_cc-0.0.10-rc2.tar.gz"],
)
