workspace(name = "android_example")

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_kotlin",
    sha256 = "34e8c0351764b71d78f76c8746e98063979ce08dcf1a91666f3f3bc2949a533d",
    url = "https://github.com/bazelbuild/rules_kotlin/releases/download/v1.9.5/rules_kotlin-v1.9.5.tar.gz",
)

load("@rules_kotlin//kotlin:repositories.bzl", "kotlin_repositories", "versions")

http_archive(
    name = "rules_jvm_external",
    sha256 = versions.RULES_JVM_EXTERNAL.sha256,
    strip_prefix = "rules_jvm_external-%s" % versions.RULES_JVM_EXTERNAL.version,
    urls = [url.format(version = versions.RULES_JVM_EXTERNAL.version) for url in versions.RULES_JVM_EXTERNAL.url_templates],
)

http_archive(
    name = "rules_android",
    sha256 = versions.RULES_ANDROID.sha256,
    strip_prefix = versions.RULES_ANDROID.strip_prefix_template.format(version = versions.RULES_ANDROID.version),
    urls = [url.format(version = versions.RULES_ANDROID.version) for url in versions.RULES_ANDROID.url_templates],
)

http_archive(
    name = "robolectric",
    sha256 = "b2d2164bae80fcfbdd078eb2f0935ba06557402b8c814928d9e3bec7358e2b7b",
    strip_prefix = "robolectric-bazel-4.14.1.2",
    urls = ["https://github.com/robolectric/robolectric-bazel/releases/download/4.14.1.2/robolectric-bazel-4.14.1.2.tar.gz"],
)

http_archive(
    name = "bazel_skylib",
    sha256 = versions.BAZEL_SKYLIB.sha256,
    urls = [url.format(version = versions.BAZEL_SKYLIB.version) for url in versions.BAZEL_SKYLIB.url_templates],
)

# Android rules dependencies
load("@rules_android//:prereqs.bzl", "rules_android_prereqs")

rules_android_prereqs()

##### rules_java setup for rules_android #####
load("@rules_java//java:rules_java_deps.bzl", "rules_java_dependencies")

rules_java_dependencies()

# note that the following line is what is minimally required from protobuf for the java rules
# consider using the protobuf_deps() public API from @com_google_protobuf//:protobuf_deps.bzl
load("@com_google_protobuf//bazel/private:proto_bazel_features.bzl", "proto_bazel_features")  # buildifier: disable=bzl-visibility

proto_bazel_features(name = "proto_bazel_features")

# register toolchains
load("@rules_java//java:repositories.bzl", "rules_java_toolchains")

rules_java_toolchains()

##### rules_jvm_external setup for rules_android #####
load("@rules_jvm_external//:repositories.bzl", "rules_jvm_external_deps")

rules_jvm_external_deps()

load("@rules_jvm_external//:setup.bzl", "rules_jvm_external_setup")

rules_jvm_external_setup()

##### rules_android setup #####
load("@rules_android//:defs.bzl", "rules_android_workspace")

rules_android_workspace()

# Android SDK setup
load("@rules_android//rules:rules.bzl", "android_sdk_repository")

android_sdk_repository(name = "androidsdk")

register_toolchains(
    "@rules_android//toolchains/android:android_default_toolchain",
    "@rules_android//toolchains/android_sdk:android_sdk_tools",
)

kotlin_repositories()

load("@rules_kotlin//kotlin:core.bzl", "kt_register_toolchains")

kt_register_toolchains()

load("@rules_jvm_external//:defs.bzl", "maven_install")

maven_install(
    name = "maven_rules_kotlin_example",
    aar_import_bzl_label = "@rules_android//rules:rules.bzl",
    artifacts = [
        "androidx.appcompat:appcompat:1.0.0",
        "junit:junit:4.12",
        "androidx.test.espresso:espresso-core:3.1.1",
        "org.hamcrest:hamcrest-library:1.3",
        "org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3",
        "com.squareup.moshi:moshi:1.14.0",
        "com.squareup.moshi:moshi-kotlin:1.14.0",
        "com.squareup.moshi:moshi-kotlin-codegen:1.14.0",
        "com.google.dagger:dagger:2.45",
        "com.google.dagger:dagger-compiler:2.45",
        "com.google.dagger:dagger-producers:2.45",
        "com.google.auto.value:auto-value:1.6.5",
        "com.google.auto.value:auto-value-annotations:1.6.5",
        "org.robolectric:robolectric:4.10.3",
    ],
    repositories = [
        "https://maven.google.com",
        "https://repo1.maven.org/maven2",
    ],
    use_starlark_android_rules = True,
)

load("@robolectric//bazel:robolectric.bzl", "robolectric_repositories")

robolectric_repositories()
