kotlin generation working even better

This commit is contained in:
Adam 2021-10-30 11:54:46 +02:00
parent 465cc2a7c3
commit cb205c558b

View file

@ -82,53 +82,50 @@ open class ProtocPlugin : Plugin<Project> {
dependsOn(protobufCompiler, libsTask) dependsOn(protobufCompiler, libsTask)
executable(protobufCompiler.singleFile) executable(protobufCompiler.singleFile)
val protoLibsDir = project.layout.buildDirectory.dir("proto/libs") val protoLibsDir = project.layout.buildDirectory.dir("proto/libs")
inputs.dir(protoLibsDir) inputs.dir(protoLibsDir)
standardOutput = System.out standardOutput = System.out
val outDir = project.layout.buildDirectory.dir("protoc") val outDir = project.layout.buildDirectory.dir("protoc/generated-sources")
// outDir.get().asFile.mkdirs() outputs.dir(outDir)
workingDir(outDir)
// if (protocConfig.operatingSystemProvider.get().get().isWindows) { workingDir(temporaryDirFactory)
// args("cmd", "/c")
// }
val srcDir = project.layout.projectDirectory.dir("src") val javaOut = workingDir.resolve("proto/java")
val javaOut = project.layout.buildDirectory.dir("proto/java") val kotlinOut = workingDir.resolve("proto/kotlin")
val kotlinOut = project.layout.buildDirectory.dir("proto/kotlin") val protoFile by project.objects.fileProperty()
val protoFile = .convention(project.layout.projectDirectory.file("src/main/proto/FactorioServerLogRecord.proto"))
project.layout.projectDirectory.file("src/main/proto/FactorioServerLogRecord.proto") val protoFileParent = project.provider { protoFile.asFile.parentFile }
inputs.file(protoFile)
args( args(
parseSpaceSeparatedArgs( parseSpaceSeparatedArgs(
""" """
-I=${protoLibsDir.map { it.asFile.canonicalPath }.get()} --proto_path=${protoFileParent.get()}
-I=${srcDir.asFile.canonicalPath} --proto_path=${protoLibsDir.get()}
--java_out=${javaOut.get().asFile.canonicalPath} --java_out=$javaOut
--kotlin_out=${kotlinOut.get().asFile.canonicalPath} --kotlin_out=$kotlinOut
${protoFile.asFile.canonicalPath} $protoFile
"""
""".trimIndent()
// """
// -I=$SRC_DIR
// --java_out=$DST_DIR
// --kotlin_out=$DST_DIR
// $SRC_DIR/addressbook.proto"
//
// """.trimIndent()
) )
) )
doFirst { doFirst {
javaOut.get().asFile.mkdirs() project.delete(workingDir)
kotlinOut.get().asFile.mkdirs()
project.mkdir(javaOut)
project.mkdir(kotlinOut)
}
doLast {
project.sync {
from(workingDir)
into(outDir)
}
project.delete(workingDir)
} }
// doLast {
// executable = protocPrepare.flatMap { it.protocOutput }.get().asFile.canonicalPath
// }
} }
} }
} }