@@ -7,6 +7,7 @@ package kotlinx.rpc.buf.tasks
77import kotlinx.rpc.protoc.PROTO_GROUP
88import kotlinx.rpc.protoc.ProtocPlugin
99import org.gradle.api.Project
10+ import org.gradle.api.file.DirectoryProperty
1011import org.gradle.api.provider.ListProperty
1112import org.gradle.api.provider.Property
1213import org.gradle.api.tasks.Input
@@ -99,7 +100,7 @@ public abstract class BufGenerateTask @Inject internal constructor(
99100 * not the directory for sources. For that see [outputSourceDirectories].
100101 */
101102 @get:OutputDirectory
102- public abstract val outputDirectory: Property < File >
103+ public abstract val outputDirectory: DirectoryProperty
103104
104105 /* *
105106 * Generated source directories by plugin name.
@@ -113,7 +114,7 @@ public abstract class BufGenerateTask @Inject internal constructor(
113114 */
114115 @get:Internal
115116 public val outputSourceDirectories: Provider <List <File >> = pluginNames.map { plugins ->
116- val out = outputDirectory.get()
117+ val out = outputDirectory.get().asFile
117118 plugins.map { out .resolve(it) }
118119 }
119120
@@ -122,7 +123,7 @@ public abstract class BufGenerateTask @Inject internal constructor(
122123
123124 val args = project.provider {
124125 buildList {
125- add(" --output" ); add(outputDirectory.get().absolutePath)
126+ add(" --output" ); add(outputDirectory.get().asFile. absolutePath)
126127
127128 if (includeImports.getOrElse(false ) || includeWkt.getOrElse(false )) {
128129 add(" --include-imports" )
@@ -169,7 +170,7 @@ internal fun Project.registerBufGenerateTask(
169170 includeWkt.convention(generate.includeWkt)
170171 errorFormat.convention(generate.errorFormat)
171172
172- this .outputDirectory.convention(outputDirectory)
173+ this .outputDirectory.convention(project.layout.dir(project.provider { outputDirectory }) )
173174
174175 pluginNames.convention(includedPlugins.map { it.map { plugin -> plugin.name } })
175176
0 commit comments