Skip to content

Commit 68303a7

Browse files
committed
Add convenient api to java path customisation
1 parent ce41605 commit 68303a7

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

gradle-plugin/api/gradle-plugin.api

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,10 @@ public final class kotlinx/rpc/proto/ConstsKt {
160160
public static final field PROTO_SOURCE_SETS Ljava/lang/String;
161161
}
162162

163+
public final class kotlinx/rpc/proto/KxrpcPluginJarKt {
164+
public static final fun getKxrpcProtocPluginJarPath (Lorg/gradle/api/Project;)Lorg/gradle/api/provider/Provider;
165+
}
166+
163167
public abstract class kotlinx/rpc/proto/ProcessProtoFiles : org/gradle/api/tasks/Copy {
164168
public fun <init> ()V
165169
}

gradle-plugin/src/main/kotlin/kotlinx/rpc/grpc/DefaultGrpcExtension.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ internal open class DefaultGrpcExtension @Inject constructor(
256256
private fun createDefaultProtocPlugins() {
257257
protocPlugins.create(KXRPC) {
258258
local {
259-
javaJar(project.configurations.named(KXRPC_PLUGIN_JAR_CONFIGURATION).map { it.singleFile.absolutePath })
259+
javaJar(project.kxrpcProtocPluginJarPath)
260260
}
261261

262262
options.put("debugOutput", "protobuf-kxrpc-plugin.log")

gradle-plugin/src/main/kotlin/kotlinx/rpc/proto/kxrpcPluginJar.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,22 @@ package kotlinx.rpc.proto
66

77
import kotlinx.rpc.LIBRARY_VERSION
88
import org.gradle.api.Project
9+
import org.gradle.api.provider.Provider
10+
11+
/**
12+
* Absolute path to the `kotlinx-rpc-protobuf-plugin` jar.
13+
*
14+
* Can be used to customise the java executable path:
15+
* ```kotlin
16+
* rpc.grpc.protocPlugins.kxrpc {
17+
* local {
18+
* javaJar(kxrpcProtocPluginJarPath, provider { "my-path-to-java" })
19+
* }
20+
* }
21+
* ```
22+
*/
23+
public val Project.kxrpcProtocPluginJarPath: Provider<String>
24+
get() = project.configurations.named(KXRPC_PLUGIN_JAR_CONFIGURATION).map { it.singleFile.absolutePath }
925

1026
internal fun Project.configureKxRpcPluginJarConfiguration() {
1127
configurations.create(KXRPC_PLUGIN_JAR_CONFIGURATION)

0 commit comments

Comments
 (0)