Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add Kotlin (JVM) support #250

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ Full documentation for the current and previous versions [can be found here](htt
| [Java](https://rules-proto-grpc.com/en/latest/lang/java.html) | [java_grpc_compile](https://rules-proto-grpc.com/en/latest/lang/java.html#java-grpc-compile) | Generates a Java protobuf and gRPC srcjar file ([example](/example/java/java_grpc_compile)) |
| [Java](https://rules-proto-grpc.com/en/latest/lang/java.html) | [java_proto_library](https://rules-proto-grpc.com/en/latest/lang/java.html#java-proto-library) | Generates a Java protobuf library using ``java_library`` ([example](/example/java/java_proto_library)) |
| [Java](https://rules-proto-grpc.com/en/latest/lang/java.html) | [java_grpc_library](https://rules-proto-grpc.com/en/latest/lang/java.html#java-grpc-library) | Generates a Java protobuf and gRPC library using ``java_library`` ([example](/example/java/java_grpc_library)) |
| [Kotlin](https://rules-proto-grpc.com/en/latest/lang/kotlin.html) | [kotlin_proto_compile](https://rules-proto-grpc.com/en/latest/lang/kotlin.html#kotlin-proto-compile) | Generates a Kotlin (JVM) protobuf srcjar file ([example](/example/kotlin/kotlin_proto_compile)) |
| [Kotlin](https://rules-proto-grpc.com/en/latest/lang/kotlin.html) | [kotlin_grpc_compile](https://rules-proto-grpc.com/en/latest/lang/kotlin.html#kotlin-grpc-compile) | Generates a Kotlin (JVM) protobuf and gRPC srcjar file ([example](/example/kotlin/kotlin_grpc_compile)) |
| [Kotlin](https://rules-proto-grpc.com/en/latest/lang/kotlin.html) | [kotlin_proto_library](https://rules-proto-grpc.com/en/latest/lang/kotlin.html#kotlin-proto-library) | Generates a Kotlin (JVM) protobuf library using ``kt_jvm_library`` ([example](/example/kotlin/kotlin_proto_library)) |
| [Kotlin](https://rules-proto-grpc.com/en/latest/lang/kotlin.html) | [kotlin_grpc_library](https://rules-proto-grpc.com/en/latest/lang/kotlin.html#kotlin-grpc-library) | Generates a Kotlin (JVM) protobuf and gRPC library using ``kt_jvm_library`` ([example](/example/kotlin/kotlin_grpc_library)) |
| [JavaScript](https://rules-proto-grpc.com/en/latest/lang/js.html) | [js_proto_compile](https://rules-proto-grpc.com/en/latest/lang/js.html#js-proto-compile) | Generates JavaScript protobuf ``.js`` and ``.d.ts`` files ([example](/example/js/js_proto_compile)) |
| [JavaScript](https://rules-proto-grpc.com/en/latest/lang/js.html) | [js_grpc_node_compile](https://rules-proto-grpc.com/en/latest/lang/js.html#js-grpc-node-compile) | Generates JavaScript protobuf and gRPC-node ``.js`` and ``.d.ts`` files ([example](/example/js/js_grpc_node_compile)) |
| [JavaScript](https://rules-proto-grpc.com/en/latest/lang/js.html) | [js_grpc_web_compile](https://rules-proto-grpc.com/en/latest/lang/js.html#js-grpc-web-compile) | Generates JavaScript protobuf and gRPC-Web ``.js`` and ``.d.ts`` files ([example](/example/js/js_grpc_web_compile)) |
Expand Down
75 changes: 48 additions & 27 deletions WORKSPACE
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,54 @@ rules_proto_dependencies()

rules_proto_toolchains()

#
# Java
#
load("//java:repositories.bzl", "java_repos")

java_repos()

#
# Kotlin-JVM
#
#
# Load rules_kotlin/com_github_grpc_grpc_kotlin before #grpc_extra_deps, as it depends on an older version.
# Also so we can get the maven_install artifacts/override_targets.
#
load("//kotlin:repositories.bzl", "kotlin_repos")

kotlin_repos()

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

kotlin_repositories()

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

kt_register_toolchains()

load("@rules_jvm_external//:defs.bzl", "maven_install")
load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_ARTIFACTS", "IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS", "grpc_java_repositories")
load("@com_github_grpc_grpc_kotlin//:repositories.bzl", "IO_GRPC_GRPC_KOTLIN_ARTIFACTS", "IO_GRPC_GRPC_KOTLIN_OVERRIDE_TARGETS", "grpc_kt_repositories")

maven_install(
artifacts = IO_GRPC_GRPC_JAVA_ARTIFACTS + IO_GRPC_GRPC_KOTLIN_ARTIFACTS,
generate_compat_repositories = True,
override_targets = dict(IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS.items() +
IO_GRPC_GRPC_KOTLIN_OVERRIDE_TARGETS.items()),
repositories = [
"https://repo.maven.apache.org/maven2/",
],
)

load("@maven//:compat.bzl", "compat_repositories")

compat_repositories()

grpc_java_repositories()

grpc_kt_repositories()

#
# Android
#
Expand Down Expand Up @@ -91,24 +139,6 @@ load("//android:repositories.bzl", "android_repos")

android_repos()

load("@rules_jvm_external//:defs.bzl", "maven_install")
load("@io_grpc_grpc_java//:repositories.bzl", "IO_GRPC_GRPC_JAVA_ARTIFACTS", "IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS", "grpc_java_repositories")

maven_install(
artifacts = IO_GRPC_GRPC_JAVA_ARTIFACTS,
generate_compat_repositories = True,
override_targets = IO_GRPC_GRPC_JAVA_OVERRIDE_TARGETS,
repositories = [
"https://repo.maven.apache.org/maven2/",
],
)

load("@maven//:compat.bzl", "compat_repositories")

compat_repositories()

grpc_java_repositories()

load("@build_bazel_rules_android//android:sdk_repository.bzl", "android_sdk_repository")

android_sdk_repository(name = "androidsdk")
Expand Down Expand Up @@ -181,15 +211,6 @@ load("@com_github_grpc_ecosystem_grpc_gateway_v2//:repositories.bzl", "go_reposi

go_repositories()

#
# Java
#
load("//java:repositories.bzl", "java_repos")

java_repos()

# grpc_java_repositories already called above in android

#
# JavaScript
#
Expand Down
6 changes: 3 additions & 3 deletions docs/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -92,9 +92,9 @@ notified of new releases, you can use GitHub's 'Watch Releases Only' on the repo

http_archive(
name = "rules_proto_grpc",
sha256 = "fb7fc7a3c19a92b2f15ed7c4ffb2983e956625c1436f57a3430b897ba9864059",
strip_prefix = "rules_proto_grpc-4.3.0",
urls = ["https://github.com/rules-proto-grpc/rules_proto_grpc/archive/4.3.0.tar.gz"],
sha256 = "{ARCHIVE_TAR_GZ_SHA256}",
strip_prefix = "rules_proto_grpc-{GIT_COMMIT_ID}",
urls = ["https://github.com/rules-proto-grpc/rules_proto_grpc/archive/{GIT_COMMIT_ID}.tar.gz"],
)

load("@rules_proto_grpc//:repositories.bzl", "rules_proto_grpc_toolchains", "rules_proto_grpc_repos")
Expand Down
Loading
Loading