kotlin generation working even better
This commit is contained in:
parent
465cc2a7c3
commit
cb205c558b
1 changed files with 28 additions and 31 deletions
|
|
@ -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
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue