# When using the WORKSPACE.bzlmod, no WORKSPACE prefix or suffix are added.
# Therefore, we need to keep some legacy content to make the build work, eventually this
# file should be empty after fully migrating to Bzlmod.
workspace(name = "io_bazel")

# Required by @com_google_protobuf//java/util:util in protobuf 3.19.0
# TODO(pcloudy): Remove those bind rules, when com_google_protobuf can
# fetch jar dependencies via rules_jvm_external with module extension.
bind(
    name = "error_prone_annotations",
    actual = "//third_party:error_prone_annotations",
)

bind(
    name = "j2objc_annotations",
    actual = "//third_party/java/j2objc-annotations:j2objc-annotations",
)

bind(
    name = "gson",
    actual = "//third_party:gson",
)

bind(
    name = "jsr305",
    actual = "//third_party:jsr305",
)

bind(
    name = "guava",
    actual = "//third_party:guava",
)

########### Required by cc rules, should be moved to rules_cc. ###########
# Copied from cc_configure.WORKSPACE
load("@bazel_tools//tools/cpp:cc_configure.bzl", "cc_configure")
cc_configure()

########### Required on cc rules on macos, should be moved to rules_cc? ###########
# Copied from xcode_configure.WORKSPACE
load("@bazel_tools//tools/osx:xcode_configure.bzl", "xcode_configure")
xcode_configure("@bazel_tools//tools/osx:xcode_locator.m")

########### Required by python rules, should be moved to rules_python. ############
# Copied from python.WORKSPACE
register_toolchains("@bazel_tools//tools/python:autodetecting_toolchain")

############ Required by java rules, should be moved to rules_java. ############
# Copied from jdk.WORKSPACE
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
load("@bazel_tools//tools/jdk:local_java_repository.bzl", "local_java_repository")
load("@bazel_tools//tools/jdk:remote_java_repository.bzl", "remote_java_repository")

maybe(
    local_java_repository,
    name = "local_jdk",
    java_home = DEFAULT_SYSTEM_JAVABASE,
    build_file = "@bazel_tools//tools/jdk:jdk.BUILD",
)

# OpenJDK distributions that should only be downloaded on demand (e.g. when
# building a java_library or a genrule that uses java make variables).
# This will allow us to stop bundling the full JDK with Bazel.
# Note that while these are currently the same as the openjdk_* rules in
# Bazel's WORKSPACE file, but they don't have to be the same.

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk11_linux",
    exec_compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:x86_64",
    ],
    sha256 = "b8e8a63b79bc312aa90f3558edbea59e71495ef1a9c340e38900dd28a1c579f3",
    strip_prefix = "zulu11.50.19-ca-jdk11.0.12-linux_x64",
    urls = [
        "https://mirror.bazel.build/openjdk/azul-zulu11.50.19-ca-jdk11.0.12/zulu11.50.19-ca-jdk11.0.12-linux_x64.tar.gz",
    ],
    version = "11",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk11_linux_aarch64",
    exec_compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:aarch64",
    ],
    sha256 = "61254688067454d3ccf0ef25993b5dcab7b56c8129e53b73566c28a8dd4d48fb",
    strip_prefix = "zulu11.50.19-ca-jdk11.0.12-linux_aarch64",
    urls = [
        "https://mirror.bazel.build/openjdk/azul-zulu11.50.19-ca-jdk11.0.12/zulu11.50.19-ca-jdk11.0.12-linux_aarch64.tar.gz",
    ],
    version = "11",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk11_linux_ppc64le",
    exec_compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:ppc",
    ],
    sha256 = "a417db0295b1f4b538ecbaf7c774f3a177fab9657a665940170936c0eca4e71a",
    strip_prefix = "jdk-11.0.7+10",
    urls = [
        "https://mirror.bazel.build/openjdk/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz",
        "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz",
    ],
    version = "11",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk11_linux_s390x",
    exec_compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:s390x",
    ],
    sha256 = "d9b72e87a1d3ebc0c9552f72ae5eb150fffc0298a7cb841f1ce7bfc70dcd1059",
    strip_prefix = "jdk-11.0.7+10",
    urls = [
        "https://mirror.bazel.build/github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz",
        "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7+10/OpenJDK11U-jdk_s390x_linux_hotspot_11.0.7_10.tar.gz",
    ],
    version = "11",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk11_macos",
    exec_compatible_with = [
        "@platforms//os:macos",
        "@platforms//cpu:x86_64",
    ],
    sha256 = "0b8c8b7cf89c7c55b7e2239b47201d704e8d2170884875b00f3103cf0662d6d7",
    strip_prefix = "zulu11.50.19-ca-jdk11.0.12-macosx_x64",
    urls = [
        "https://mirror.bazel.build/openjdk/azul-zulu11.50.19-ca-jdk11.0.12/zulu11.50.19-ca-jdk11.0.12-macosx_x64.tar.gz",
    ],
    version = "11",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk11_macos_aarch64",
    exec_compatible_with = [
        "@platforms//os:macos",
        "@platforms//cpu:aarch64",
    ],
    sha256 = "e908a0b4c0da08d41c3e19230f819b364ff2e5f1dafd62d2cf991a85a34d3a17",
    strip_prefix = "zulu11.50.19-ca-jdk11.0.12-macosx_aarch64",
    urls = [
        "https://mirror.bazel.build/openjdk/azul-zulu11.50.19-ca-jdk11.0.12/zulu11.50.19-ca-jdk11.0.12-macosx_aarch64.tar.gz",
        "https://cdn.azul.com/zulu/bin/zulu11.50.19-ca-jdk11.0.12-macosx_aarch64.tar.gz",
    ],
    version = "11",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk11_win",
    exec_compatible_with = [
        "@platforms//os:windows",
        "@platforms//cpu:x86_64",
    ],
    sha256 = "42ae65e75d615a3f06a674978e1fa85fdf078cad94e553fee3e779b2b42bb015",
    strip_prefix = "zulu11.50.19-ca-jdk11.0.12-win_x64",
    urls = [
        "https://mirror.bazel.build/openjdk/azul-zulu11.50.19-ca-jdk11.0.12/zulu11.50.19-ca-jdk11.0.12-win_x64.zip",
    ],
    version = "11",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk15_linux",
    exec_compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:x86_64",
    ],
    sha256 = "0a38f1138c15a4f243b75eb82f8ef40855afcc402e3c2a6de97ce8235011b1ad",
    strip_prefix = "zulu15.27.17-ca-jdk15.0.0-linux_x64",
    urls = [
        "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz",
        "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz",
    ],
    version = "15",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk15_macos",
    exec_compatible_with = [
        "@platforms//os:macos",
        "@platforms//cpu:x86_64",
    ],
    sha256 = "f80b2e0512d9d8a92be24497334c974bfecc8c898fc215ce0e76594f00437482",
    strip_prefix = "zulu15.27.17-ca-jdk15.0.0-macosx_x64",
    urls = [
        "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-macosx_x64.tar.gz",
        "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-macosx_x64.tar.gz",
    ],
    version = "15",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk15_macos_aarch64",
    exec_compatible_with = [
        "@platforms//os:macos",
        "@platforms//cpu:aarch64",
    ],
    sha256 = "2613c3f15eef6b6ecd0fd102da92282b985e4573905dc902f1783d8059c1efc5",
    strip_prefix = "zulu15.29.15-ca-jdk15.0.2-macosx_aarch64",
    urls = [
        "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz",
        "https://cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.tar.gz",
    ],
    version = "15",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk15_win",
    exec_compatible_with = [
        "@platforms//os:windows",
        "@platforms//cpu:x86_64",
    ],
    sha256 = "f535a530151e6c20de8a3078057e332b08887cb3ba1a4735717357e72765cad6",
    strip_prefix = "zulu15.27.17-ca-jdk15.0.0-win_x64",
    urls = [
        "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-win_x64.zip",
        "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-win_x64.zip",
    ],
    version = "15",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk16_linux",
    exec_compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:x86_64",
    ],
    sha256 = "236b5ea97aff3cb312e743848d7efa77faf305170e41371a732ca93c1b797665",
    strip_prefix = "zulu16.28.11-ca-jdk16.0.0-linux_x64",
    urls = [
        "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-linux_x64.tar.gz",
        "https://cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-linux_x64.tar.gz",
    ],
    version = "16",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk16_macos",
    exec_compatible_with = [
        "@platforms//os:macos",
        "@platforms//cpu:x86_64",
    ],
    sha256 = "6d47ef22dc56ce1f5a102ed39e21d9a97320f0bb786818e2c686393109d79bc5",
    strip_prefix = "zulu16.28.11-ca-jdk16.0.0-macosx_x64",
    urls = [
        "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-macosx_x64.tar.gz",
        "https://cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-macosx_x64.tar.gz",
    ],
    version = "16",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk16_macos_aarch64",
    exec_compatible_with = [
        "@platforms//os:macos",
        "@platforms//cpu:aarch64",
    ],
    sha256 = "c92131e83bc71474850e667bc4e05fca33662b8feb009a0547aa14e76b40e890",
    strip_prefix = "zulu16.28.11-ca-jdk16.0.0-macosx_aarch64",
    urls = [
        "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-macosx_aarch64.tar.gz",
        "https://cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-macosx_aarch64.tar.gz",
    ],
    version = "16",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk16_win",
    exec_compatible_with = [
        "@platforms//os:windows",
        "@platforms//cpu:x86_64",
    ],
    sha256 = "6cbf98ada27476526a5f6dff79fd5f2c15e2f671818e503bdf741eb6c8fed3d4",
    strip_prefix = "zulu16.28.11-ca-jdk16.0.0-win_x64",
    urls = [
        "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-win_x64.zip",
        "https://cdn.azul.com/zulu/bin/zulu16.28.11-ca-jdk16.0.0-win_x64.zip",
    ],
    version = "16",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk17_linux",
    exec_compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:x86_64",
    ],
    sha256 = "37c4f8e48536cceae8c6c20250d6c385e176972532fd35759fa7d6015c965f56",
    strip_prefix = "zulu17.28.13-ca-jdk17.0.0-linux_x64",
    urls = [
        "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-linux_x64.tar.gz",
        "https://cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-linux_x64.tar.gz",
    ],
    version = "17",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk17_macos",
    exec_compatible_with = [
        "@platforms//os:macos",
        "@platforms//cpu:x86_64",
    ],
    sha256 = "6029b1fe6853cecad22ab99ac0b3bb4fb8c903dd2edefa91c3abc89755bbd47d",
    strip_prefix = "zulu17.28.13-ca-jdk17.0.0-macosx_x64",
    urls = [
        "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-macosx_x64.tar.gz",
        "https://cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-macosx_x64.tar.gz",
    ],
    version = "17",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk17_macos_aarch64",
    exec_compatible_with = [
        "@platforms//os:macos",
        "@platforms//cpu:aarch64",
    ],
    sha256 = "6b17f01f767ee7abf4704149ca4d86423aab9b16b68697b7d36e9b616846a8b0",
    strip_prefix = "zulu17.28.13-ca-jdk17.0.0-macosx_aarch64",
    urls = [
        "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-macosx_aarch64.tar.gz",
        "https://cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-macosx_aarch64.tar.gz",
    ],
    version = "17",
)

# This must be kept in sync with the top-level WORKSPACE file.
maybe(
    remote_java_repository,
    name = "remotejdk17_win",
    exec_compatible_with = [
        "@platforms//os:windows",
        "@platforms//cpu:x86_64",
    ],
    sha256 = "f4437011239f3f0031c794bb91c02a6350bc941d4196bdd19c9f157b491815a3",
    strip_prefix = "zulu17.28.13-ca-jdk17.0.0-win_x64",
    urls = [
        "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-win_x64.zip",
        "https://cdn.azul.com/zulu/bin/zulu17.28.13-ca-jdk17.0.0-win_x64.zip",
    ],
    version = "17",
)

http_archive(
    name = "remote_java_tools",
    sha256 = "b763ee80e5754e593fd6d5be6d7343f905bc8b73d661d36d842b024ca11b6793",
    urls = [
        "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.5/java_tools-v11.5.zip",
        "https://github.com/bazelbuild/java_tools/releases/download/java_v11.5/java_tools-v11.5.zip",
    ],
)

http_archive(
    name = "remote_java_tools_linux",
    sha256 = "ae1eca4546eac6487c6e565f9b409536609c273207220c51e5c94f2a058a5a56",
    urls = [
        "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.5/java_tools_linux-v11.5.zip",
        "https://github.com/bazelbuild/java_tools/releases/download/java_v11.5/java_tools_linux-v11.5.zip",
    ],
)


http_archive(
    name = "remote_java_tools_windows",
    sha256 = "36766802f7ec684cecb1a14c122428de6be9784e88419e2ab5912ad4b59a8c7d",
    urls = [
        "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.5/java_tools_windows-v11.5.zip",
        "https://github.com/bazelbuild/java_tools/releases/download/java_v11.5/java_tools_windows-v11.5.zip",
    ],
)

http_archive(
    name = "remote_java_tools_darwin",
    sha256 = "792bc1352e736073b152528175ed424687f86a9f6f5f461f07d8b26806762738",
    urls = [
        "https://mirror.bazel.build/bazel_java_tools/releases/java/v11.5/java_tools_darwin-v11.5.zip",
        "https://github.com/bazelbuild/java_tools/releases/download/java_v11.5/java_tools_darwin-v11.5.zip",
    ],
)

register_toolchains("@bazel_tools//tools/jdk:all")
