blob: 306e280c0b80490c1e8c176deb7ee01fd790f00c [file] [log] [blame] [edit]
module(
name = "rules_kotlin",
version = "2.2.0",
compatibility_level = 1,
repo_name = "rules_kotlin",
)
proto_version = "4.33.4"
proto_version_parts = proto_version.split(".")
proto_module_version = ".".join(proto_version_parts[-2:]) # Last 2 parts
kotlin_version = "2.3.20-RC2"
bazel_dep(name = "protobuf", version = proto_module_version, repo_name = "com_google_protobuf")
bazel_dep(name = "rules_cc", version = "0.0.16")
bazel_dep(name = "platforms", version = "0.0.11")
bazel_dep(name = "bazel_skylib", version = "1.8.2")
bazel_dep(name = "rules_java", version = "8.9.0")
bazel_dep(name = "rules_python", version = "0.23.1")
bazel_dep(name = "rules_android", version = "0.7.1")
remote_android_extensions = use_extension(
"@rules_android//bzlmod_extensions:android_extensions.bzl",
"remote_android_tools_extensions",
)
use_repo(remote_android_extensions, "android_tools")
android_sdk_repository_extension = use_extension("@rules_android//rules/android_sdk_repository:rule.bzl", "android_sdk_repository_extension")
use_repo(android_sdk_repository_extension, "androidsdk")
register_toolchains("@androidsdk//:all")
bazel_dep(name = "bazel_features", version = "1.39.0")
bazel_dep(name = "bazel_lib", version = "3.1.0")
bazel_dep(name = "rules_shell", version = "0.4.1")
bazel_dep(name = "bazel_worker_api", version = "0.0.10")
bazel_dep(name = "bazel_worker_java", version = "0.0.10")
bazel_dep(name = "buildifier_prebuilt", version = "8.5.1", dev_dependency = True)
rules_java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains")
use_repo(rules_java_toolchains, "remote_java_tools")
http_file = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
http_file(
name = "com_github_pinterest_ktlint",
downloaded_file_path = "ktlint.jar",
sha256 = "5ba1ac917a06b0f02daaa60d10abbedd2220d60216af670c67a45b91c74cf8bb",
urls = [
"https://github.com/pinterest/ktlint/releases/download/1.6.0/ktlint",
],
)
register_toolchains("//src/main/starlark/core/compile/cli")
register_toolchains("//kotlin/internal:default_toolchain")
# Development dependencies
# TODO(bencodes) A bunch of these dependencies need to be marked as dev_dependencies but before we can do that
# we need to sort out a few cases around how these rules are consumed in various ways.
bazel_dep(name = "rules_jvm_external", version = "6.10")
bazel_dep(name = "bazel_ci_rules", version = "1.0.0")
rbe_preconfig = use_repo_rule("@bazel_ci_rules//:rbe_repo.bzl", "rbe_preconfig")
rbe_preconfig(
name = "buildkite_config",
toolchain = "ubuntu2204",
)
maven = use_extension("@rules_jvm_external//:extensions.bzl", "maven")
maven.install(
name = "rules_kotlin_maven",
artifacts = [
"org.jetbrains:annotations:13.0",
"org.jetbrains.kotlin:kotlin-build-tools-impl:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-daemon-client:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-stdlib:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-reflect:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-test:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-script-runtime:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-compiler:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-annotation-processing:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-annotation-processing-embeddable:{}".format(kotlin_version),
"org.jetbrains.kotlin:jvm-abi-gen:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-allopen-compiler-plugin:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-noarg-compiler-plugin:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-sam-with-receiver-compiler-plugin:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-serialization-compiler-plugin:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-parcelize-compiler:{}".format(kotlin_version),
"org.jetbrains.kotlin:kotlin-parcelize-runtime:{}".format(kotlin_version),
"org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2",
"org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.1",
"org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.1",
"com.google.devtools.ksp:symbol-processing-aa:2.3.6",
"com.google.devtools.ksp:symbol-processing-api:2.3.6",
"com.google.devtools.ksp:symbol-processing-common-deps:2.3.6",
],
fail_if_repin_required = True,
fetch_sources = True,
lock_file = "//:rules_kotlin_maven_install.json",
repositories = [
"https://maven-central.storage.googleapis.com/repos/central/data/",
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
resolver = "maven",
)
maven.install(
name = "rules_kotlin_maven_dev",
artifacts = [
"com.google.code.findbugs:jsr305:3.0.2",
"com.google.errorprone:error_prone_annotations:2.23.0",
"junit:junit:4.13-beta-3",
"com.google.protobuf:protobuf-java:{}".format(proto_version),
"com.google.protobuf:protobuf-java-util:{}".format(proto_version),
"com.google.guava:guava:33.0.0-jre",
"com.google.truth:truth:0.45",
"com.google.auto.service:auto-service:1.1.1",
"com.google.auto.service:auto-service-annotations:1.1.1",
"com.google.auto.value:auto-value:1.11.0",
"com.google.auto.value:auto-value-annotations:1.11.0",
"com.google.dagger:dagger:2.57.2",
"com.google.dagger:dagger-compiler:2.57.2",
"javax.inject:javax.inject:1",
"org.apache.commons:commons-compress:1.26.2",
"com.eed3si9n.jarjarabrams:jarjar-abrams-assembly_2.13:1.14.1",
"dev.zacsweers.autoservice:auto-service-ksp:jar:1.2.0",
"com.squareup.moshi:moshi:1.15.2",
"com.squareup.moshi:moshi-kotlin:1.15.2",
"com.squareup.moshi:moshi-kotlin-codegen:1.15.2",
],
fail_if_repin_required = True,
fetch_sources = True,
lock_file = "//:rules_kotlin_maven_dev_install.json",
repositories = [
"https://maven-central.storage.googleapis.com/repos/central/data/",
"https://maven.google.com",
"https://repo1.maven.org/maven2",
],
resolver = "maven",
)
maven.override(
name = "override_target_in_deps_kotlin_stdlib",
coordinates = "org.jetbrains.kotlin.kotlin:kotlin-stdlib",
target = "@rules_kotlin//kotlin/compiler:kotlin-stdlib",
)
maven.override(
name = "override_target_in_deps_protobuf_java",
coordinates = "com.google.protobuf:protobuf-java",
target = "@com_google_protobuf//:protobuf_java",
)
maven.override(
name = "override_target_in_deps_protobuf_java_util",
coordinates = "com.google.protobuf:protobuf-java-util",
target = "@com_google_protobuf//:protobuf_java_util",
)
use_repo(
maven,
"rules_kotlin_maven",
"rules_kotlin_maven_dev",
"unpinned_rules_kotlin_maven",
"unpinned_rules_kotlin_maven_dev",
)
bazel_dep(name = "rules_pkg", version = "1.0.1")
bazel_dep(name = "stardoc", version = "0.8.1", dev_dependency = True, repo_name = "io_bazel_stardoc")
bazel_dep(name = "rules_testing", version = "0.9.0", dev_dependency = True)
bazel_dep(name = "rules_bazel_integration_test", version = "0.37.1", dev_dependency = True)
bazel_binaries = use_extension("@rules_bazel_integration_test//:extensions.bzl", "bazel_binaries", dev_dependency = True)
bazel_binaries.download(version = "7.x")
bazel_binaries.download(version = "8.x")
bazel_binaries.download(version_file = "//:.bazelversion")
use_repo(
bazel_binaries,
"bazel_binaries",
"bazel_binaries_bazelisk",
"build_bazel_bazel_.bazelversion",
"build_bazel_bazel_7_x",
"build_bazel_bazel_8_x",
)