Code Generation

Currently includes generated key holder classes for types
used in the Registry Modification API
This commit is contained in:
Jake Potrebic
2023-05-26 18:14:44 -07:00
parent b42af839f3
commit 4fd928df47
7 changed files with 344 additions and 0 deletions

View File

@ -1,6 +1,7 @@
plugins {
`java-library`
`maven-publish`
idea // Paper
}
java {
@ -61,6 +62,22 @@ dependencies {
mockitoAgent("org.mockito:mockito-core:5.14.1") { isTransitive = false } // Paper - configure mockito agent that is needed in newer java versions
}
// Paper start
val generatedApiPath: java.nio.file.Path = rootProject.projectDir.toPath().resolve("paper-api-generator/generated")
idea {
module {
generatedSourceDirs.add(generatedApiPath.toFile())
}
}
sourceSets {
main {
java {
srcDir(generatedApiPath)
}
}
}
// Paper end
configure<PublishingExtension> {
publications.create<MavenPublication>("maven") {
from(components["java"])
@ -143,3 +160,14 @@ tasks.check {
dependsOn(scanJar)
}
// Paper end
// Paper start
val scanJarForOldGeneratedCode = tasks.register("scanJarForOldGeneratedCode", io.papermc.paperweight.tasks.ScanJarForOldGeneratedCode::class) {
mcVersion.set(providers.gradleProperty("mcVersion"))
annotation.set("Lio/papermc/paper/generated/GeneratedFrom;")
jarToScan.set(tasks.jar.flatMap { it.archiveFile })
classpath.from(configurations.compileClasspath)
}
tasks.check {
dependsOn(scanJarForOldGeneratedCode)
}
// Paper end