"""Bazel build and test dependencies."""

module(
    name = "bazel",
    version = "7.0.0-pre",
    repo_name = "io_bazel",
)

# =========================================
# Bazel module dependencies
# =========================================

bazel_dep(name = "rules_license", version = "0.0.7")
bazel_dep(name = "bazel_skylib", version = "1.4.1")
bazel_dep(name = "protobuf", version = "21.7", repo_name = "com_google_protobuf")
bazel_dep(name = "grpc", version = "1.48.1.bcr.1", repo_name = "com_github_grpc_grpc")
bazel_dep(name = "platforms", version = "0.0.7")
bazel_dep(name = "rules_pkg", version = "0.9.1")
bazel_dep(name = "stardoc", version = "0.5.3", repo_name = "io_bazel_skydoc")
bazel_dep(name = "zstd-jni", version = "1.5.2-3.bcr.1")
bazel_dep(name = "blake3", version = "1.3.3.bcr.1")
bazel_dep(name = "zlib", version = "1.3")
bazel_dep(name = "rules_cc", version = "0.0.9")
bazel_dep(name = "rules_java", version = "6.3.1")
bazel_dep(name = "rules_proto", version = "5.3.0-21.7")
bazel_dep(name = "rules_jvm_external", version = "5.2")
bazel_dep(name = "rules_python", version = "0.24.0")
bazel_dep(name = "rules_testing", version = "0.0.4")
bazel_dep(name = "googletest", version = "1.12.1", repo_name = "com_google_googletest")

# TODO(pcloudy): Add remoteapis and googleapis as Bazel modules in the BCR.
bazel_dep(name = "remoteapis", version = "")
bazel_dep(name = "googleapis", version = "")

single_version_override(
    module_name = "rules_jvm_external",
    patch_strip = 1,
    patches = ["//third_party:rules_jvm_external_5.2.patch"],
)

local_path_override(
    module_name = "remoteapis",
    path = "./third_party/remoteapis",
)

local_path_override(
    module_name = "googleapis",
    path = "./third_party/googleapis",
)

# The following Bazel modules are not direct dependencies for building Bazel,
# but are required for visibility from DIST_ARCHIVE_REPOS in distdir_deps.bzl
bazel_dep(name = "apple_support", version = "1.5.0")
bazel_dep(name = "abseil-cpp", version = "20220623.1")
bazel_dep(name = "c-ares", version = "1.15.0")
bazel_dep(name = "rules_go", version = "0.39.1")
bazel_dep(name = "upb", version = "0.0.0-20220923-a547704")

# =========================================
# Java dependencies
# =========================================

maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
maven.install(
    artifacts = [
        "com.beust:jcommander:1.82",
        "com.github.ben-manes.caffeine:caffeine:3.0.5",
        "com.github.kevinstern:software-and-algorithms:1.0",
        "com.github.stephenc.jcip:jcip-annotations:1.0-1",
        "com.google.api-client:google-api-client-gson:1.35.2",
        "com.google.api-client:google-api-client:1.35.2",
        "com.google.auth:google-auth-library-credentials:1.6.0",
        "com.google.auth:google-auth-library-oauth2-http:1.6.0",
        "com.google.auto.service:auto-service-annotations:1.0.1",
        "com.google.auto.service:auto-service:1.0",
        "com.google.auto.value:auto-value-annotations:1.9",
        "com.google.auto.value:auto-value:1.8.2",
        "com.google.auto:auto-common:1.2.1",
        "com.google.code.findbugs:jsr305:3.0.2",
        "com.google.code.gson:gson:2.9.0",
        "com.google.code.java-allocation-instrumenter:java-allocation-instrumenter:3.3.0",
        "com.google.errorprone:error_prone_annotation:2.22.0",
        "com.google.errorprone:error_prone_annotations:2.22.0",
        "com.google.errorprone:error_prone_check_api:2.22.0",
        "com.google.errorprone:error_prone_core:2.22.0",
        "com.google.errorprone:error_prone_type_annotations:2.22.0",
        "com.google.flogger:flogger-system-backend:0.5.1",
        "com.google.flogger:flogger:0.5.1",
        "com.google.flogger:google-extensions:0.5.1",
        "com.google.guava:failureaccess:1.0.1",
        "com.google.guava:guava:31.1-jre",
        "com.google.http-client:google-http-client-gson:1.42.0",
        "com.google.http-client:google-http-client:1.42.0",
        "com.google.j2objc:j2objc-annotations:1.3",
        "com.google.turbine:turbine:0.2",
        "com.ryanharter.auto.value:auto-value-gson-extension:1.3.1",
        "com.ryanharter.auto.value:auto-value-gson-runtime:1.3.1",
        "com.ryanharter.auto.value:auto-value-gson-factory:1.3.1",
        "com.squareup:javapoet:1.12.0",
        "commons-collections:commons-collections:3.2.2",
        "commons-lang:commons-lang:2.6",
        "io.github.java-diff-utils:java-diff-utils:4.12",
        "io.grpc:grpc-api:1.48.1",
        "io.grpc:grpc-auth:1.48.1",
        "io.grpc:grpc-context:1.48.1",
        "io.grpc:grpc-core:1.48.1",
        "io.grpc:grpc-netty:1.48.1",
        "io.grpc:grpc-protobuf-lite:1.48.1",
        "io.grpc:grpc-protobuf:1.48.1",
        "io.grpc:grpc-stub:1.48.1",
        "io.netty:netty-buffer:4.1.93.Final",
        "io.netty:netty-codec-http2:4.1.93.Final",
        "io.netty:netty-codec-http:4.1.93.Final",
        "io.netty:netty-codec:4.1.93.Final",
        "io.netty:netty-common:4.1.93.Final",
        "io.netty:netty-handler-proxy:4.1.93.Final",
        "io.netty:netty-handler:4.1.93.Final",
        "io.netty:netty-resolver-dns:4.1.93.Final",
        "io.netty:netty-resolver:4.1.93.Final",
        "io.netty:netty-tcnative-boringssl-static:jar:linux-aarch_64:2.0.56.Final",
        "io.netty:netty-tcnative-boringssl-static:jar:linux-x86_64:2.0.56.Final",
        "io.netty:netty-tcnative-boringssl-static:jar:osx-aarch_64:2.0.56.Final",
        "io.netty:netty-tcnative-boringssl-static:jar:osx-x86_64:2.0.56.Final",
        "io.netty:netty-tcnative-boringssl-static:jar:windows-x86_64:2.0.56.Final",
        "io.netty:netty-tcnative-classes:2.0.56.Final",
        "io.netty:netty-transport-classes-epoll:4.1.93.Final",
        "io.netty:netty-transport-classes-kqueue:4.1.93.Final",
        "io.netty:netty-transport-native-epoll:jar:linux-aarch_64:4.1.93.Final",
        "io.netty:netty-transport-native-epoll:jar:linux-x86_64:4.1.93.Final",
        "io.netty:netty-transport-native-kqueue:jar:osx-aarch_64:4.1.93.Final",
        "io.netty:netty-transport-native-kqueue:jar:osx-x86_64:4.1.93.Final",
        "io.netty:netty-transport-native-unix-common:4.1.93.Final",
        "io.netty:netty-transport-native-unix-common:jar:linux-aarch_64:4.1.93.Final",
        "io.netty:netty-transport-native-unix-common:jar:linux-x86_64:4.1.93.Final",
        "io.netty:netty-transport-native-unix-common:jar:osx-aarch_64:4.1.93.Final",
        "io.netty:netty-transport-native-unix-common:jar:osx-x86_64:4.1.93.Final",
        "io.netty:netty-transport:4.1.93.Final",
        "io.reactivex.rxjava3:rxjava:3.1.2",
        "javax.activation:javax.activation-api:1.2.0",
        "javax.annotation:javax.annotation-api:1.3.2",
        "javax.inject:javax.inject:1",
        "net.bytebuddy:byte-buddy-agent:1.14.5",
        "net.bytebuddy:byte-buddy:1.14.5",
        "org.apache.commons:commons-compress:1.19",
        "org.apache.commons:commons-pool2:2.8.0",
        "org.apache.tomcat:tomcat-annotations-api:8.0.5",
        "org.apache.velocity:velocity:1.7",
        "org.checkerframework:checker-qual:3.19.0",
        "org.ow2.asm:asm-analysis:9.2",
        "org.ow2.asm:asm-commons:9.2",
        "org.ow2.asm:asm-tree:9.2",
        "org.ow2.asm:asm-util:9.2",
        "org.ow2.asm:asm:9.2",
        "org.pcollections:pcollections:3.1.4",
        "org.threeten:threeten-extra:1.5.0",
        "org.tukaani:xz:1.9",
        "org.yaml:snakeyaml:1.28",
        "tools.profiler:async-profiler:2.9",
        # The following jars are for testing.
        # junit is not test only due to //src/java_tools/junitrunner/java/com/google/testing/junit/junit4:runner,
        # and hamcrest is a dependency of junit.
        "junit:junit:4.13.2",
        "org.hamcrest:hamcrest-core:1.3",
    ],
    excluded_artifacts = [
        # org.apache.httpcomponents and org.eclipse.jgit:org.eclipse.jgit
        # require java.security.jgss module to be embedded in the Bazel binary.
        "org.apache.httpcomponents:httpclient",
        "org.apache.httpcomponents:httpcore",
        "org.eclipse.jgit:org.eclipse.jgit",
        # We build protobuf Java library from source, exclude protobuf jars to be safe.
        "com.google.protobuf:protobuf-java",
        "com.google.protobuf:protobuf-javalite",
    ],
    # Don't forget to change this to back to True before submitting your change.
    fail_if_repin_required = True,
    strict_visibility = True,
    lock_file = "//:maven_install.json",
    repositories = [
        "https://repo1.maven.org/maven2",
    ],
)
# Test only maven dependencies
[maven.artifact(artifact = artifact, group = group, version = version, testonly = True)
  for group, artifact, version in [coord.split(":") for coord in [
    "com.google.guava:guava-testlib:31.1-jre",
    "com.google.jimfs:jimfs:1.2",
    "com.google.testing.compile:compile-testing:0.18",
    "com.google.testparameterinjector:test-parameter-injector:1.0",
    "com.google.truth:truth:1.1.3",
    "com.google.truth.extensions:truth-java8-extension:1.1.3",
    "com.google.truth.extensions:truth-liteproto-extension:1.1.3",
    "com.google.truth.extensions:truth-proto-extension:1.1.3",
    "org.mockito:mockito-core:5.4.0",
]]]
use_repo(maven, "maven", "unpinned_maven")

java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains")
use_repo(java_toolchains,
    "local_jdk",
    # The following are required for visibility from TEST_REPOS in distdir_deps.bzl
    "remote_java_tools",
    "remote_java_tools_darwin_x86_64",
    "remote_java_tools_darwin_arm64",
    "remote_java_tools_linux",
    "remote_java_tools_windows",
    "remotejdk11_linux",
    "remotejdk11_linux_aarch64",
    "remotejdk11_linux_ppc64le",
    "remotejdk11_linux_s390x",
    "remotejdk11_macos",
    "remotejdk11_macos_aarch64",
    "remotejdk11_win",
    "remotejdk11_win_arm64",
    "remotejdk17_linux",
    "remotejdk17_linux_s390x",
    "remotejdk17_macos",
    "remotejdk17_macos_aarch64",
    "remotejdk17_win",
    "remotejdk17_win_arm64",
    "remotejdk20_linux",
    "remotejdk20_macos",
    "remotejdk20_macos_aarch64",
    "remotejdk20_win",
)

# =========================================
# Python dependencies
# =========================================

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(python_version = "3.8")

pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
    hub_name = "bazel_pip_dev_deps",
    python_version = "3.8",
    requirements_lock = "//:requirements.txt",
)
use_repo(pip, "bazel_pip_dev_deps")

# =========================================
# Other Bazel build dependencies
# =========================================

bazel_build_deps = use_extension("//:extensions.bzl", "bazel_build_deps")
use_repo(
    bazel_build_deps,
    "bootstrap_repo_cache",
    "debian_cc_deps",
    "openjdk_linux_aarch64_vanilla",
    "openjdk_linux_ppc64le_vanilla",
    "openjdk_linux_s390x_vanilla",
    "openjdk_linux_vanilla",
    "openjdk_macos_aarch64_vanilla",
    "openjdk_macos_x86_64_vanilla",
    "openjdk_win_arm64_vanilla",
    "openjdk_win_vanilla",
)

# Required only by `--extra_toolchains=@local_config_cc//:cc-toolchain-arm64_windows` from .bazelrc
cc_configure = use_extension("@bazel_tools//tools/cpp:cc_configure.bzl", "cc_configure_extension")
use_repo(cc_configure, "local_config_cc")

# =========================================
# Other Bazel testing dependencies
# =========================================

bazel_test_deps = use_extension("//:extensions.bzl", "bazel_test_deps")
use_repo(
    bazel_test_deps,
    "local_bazel_source_list",
    "local_config_winsdk",
    "bazelci_rules",
)

bazel_rbe_deps = use_extension("//:rbe_extension.bzl", "bazel_rbe_deps")
use_repo(bazel_rbe_deps, "rbe_ubuntu1804_java11")

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

# =========================================
# Register platforms & toolchains
# =========================================

register_execution_platforms("//:default_host_platform")

register_toolchains("@bazel_tools//tools/python:autodetecting_toolchain")

register_toolchains("@local_config_winsdk//:all")

register_toolchains("//src/main/res:empty_rc_toolchain")

# =========================================
# Android tools dependencies
# =========================================

maven_android = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
maven_android.install(
    name = "maven_android",
    artifacts = [
        "androidx.databinding:databinding-compiler:3.4.0-alpha10",
        "com.android.tools.build:builder:7.1.3",
        "com.android.tools.build:manifest-merger:30.1.3",
        "com.android.tools:sdk-common:30.1.3",
        "com.android.tools:annotations:30.1.3",
        "com.android.tools.layoutlib:layoutlib-api:30.1.3",
        "com.android.tools:common:30.1.3",
        "com.android.tools:repository:30.1.3",
    ],
    # Don't forget to change this to back to True before submitting your change.
    fail_if_repin_required = True,
    lock_file = "//src/tools/android:maven_android_install.json",
    repositories = [
        "https://dl.google.com/android/maven2",
        "https://repo1.maven.org/maven2",
    ],
)
use_repo(maven_android, "maven_android", "unpinned_maven_android")

bazel_android_deps = use_extension("//:extensions.bzl", "bazel_android_deps")
use_repo(bazel_android_deps, "desugar_jdk_libs")

remote_android_extensions = use_extension("//tools/android:android_extensions.bzl", "remote_android_tools_extensions")
use_repo(remote_android_extensions, "android_gmaven_r8", "android_tools")
