blob: 904dee28bb778f4bfa96944b9e51afd1de927660 [file]
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 = [
"org.jetbrains.kotlin:kotlin-compose-compiler-plugin-embeddable:2.1.20",
"androidx.core:core-ktx:1.15.0",
"androidx.appcompat:appcompat:1.7.0",
"androidx.activity:activity-compose:1.7.0",
"androidx.collection:collection:1.5.0-alpha06",
"androidx.compose.material:material:1.7.6",
"androidx.compose.ui:ui:1.7.6",
"androidx.compose.ui:ui-tooling:1.7.6",
"androidx.compose.runtime:runtime:1.7.6",
],
fetch_sources = True,
maven_install_json = "//:maven_install.json",
repositories = [
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
resolver = "maven",
use_starlark_android_rules = True,
)
load("@maven_rules_kotlin_example//:defs.bzl", "pinned_maven_install")
pinned_maven_install()
load("@robolectric//bazel:robolectric.bzl", "robolectric_repositories")
robolectric_repositories()