@@ -17,6 +17,7 @@ package com.toasttab.protokt.gradle
17
17
18
18
import com.google.protobuf.gradle.GenerateProtoTask
19
19
import com.google.protobuf.gradle.ProtobufExtension
20
+ import com.google.protobuf.gradle.ProtobufExtract
20
21
import com.google.protobuf.gradle.id
21
22
import org.gradle.api.Project
22
23
import org.gradle.api.file.FileCollection
@@ -25,6 +26,7 @@ import org.gradle.jvm.tasks.Jar
25
26
import org.gradle.kotlin.dsl.apply
26
27
import org.gradle.kotlin.dsl.configure
27
28
import org.gradle.kotlin.dsl.named
29
+ import org.gradle.kotlin.dsl.withType
28
30
import java.net.URLEncoder
29
31
30
32
internal fun configureProtobufPlugin (project : Project , ext : ProtoktExtension , binaryPath : String ) {
@@ -73,6 +75,16 @@ private fun extraClasspath(project: Project, task: GenerateProtoTask): String {
73
75
extensions + = project.configurations.getByName(TEST_EXTENSIONS )
74
76
}
75
77
78
+ // Must explicitly register input files here; if any extensions dependencies are project dependencies then Gradle
79
+ // won't pick them up as dependencies unless we do this. There may be a better way to do this but for now just
80
+ // manually do what protobuf-gradle-plugin used to do.
81
+ // https://github.com/google/protobuf-gradle-plugin/commit/0521fe707ccedee7a0b4ce0fb88409eefb04e59d
82
+ project.tasks.withType<ProtobufExtract > {
83
+ if (name.startsWith(" extractInclude" )) {
84
+ inputFiles.from(extensions)
85
+ }
86
+ }
87
+
76
88
return extensions.joinToString(" ;" ) { URLEncoder .encode(it.path, " UTF-8" ) }
77
89
}
78
90
0 commit comments