diff --git a/java/gradle/build.gradle.kts b/java/gradle/build.gradle.kts index 0171384f4..b5718a890 100644 --- a/java/gradle/build.gradle.kts +++ b/java/gradle/build.gradle.kts @@ -38,4 +38,16 @@ publishing{ url = uri(project(":app").layout.buildDirectory.dir("resources-bundled/common/repository").get().asFile.absolutePath) } } +} + +tasks.register("writeVersion") { + // make the version available to the plugin at runtime by writing it to a properties file in the resources directory + doLast { + val file = layout.buildDirectory.file("resources/main/version.properties").get().asFile + file.parentFile.mkdirs() + file.writeText("version=${project.version}") + } +} +tasks.named("processResources") { + dependsOn("writeVersion") } \ No newline at end of file diff --git a/java/gradle/src/main/kotlin/ProcessingPlugin.kt b/java/gradle/src/main/kotlin/ProcessingPlugin.kt index df558710f..375b17549 100644 --- a/java/gradle/src/main/kotlin/ProcessingPlugin.kt +++ b/java/gradle/src/main/kotlin/ProcessingPlugin.kt @@ -20,7 +20,10 @@ class ProcessingPlugin @Inject constructor(private val objectFactory: ObjectFact val sketchName = project.layout.projectDirectory.asFile.name.replace(Regex("[^a-zA-Z0-9_]"), "_") val isProcessing = project.findProperty("processing.version") != null - val processingVersion = project.findProperty("processing.version") as String? ?: "4.3.4" + val processingVersion = project.findProperty("processing.version") as String? + ?: javaClass.classLoader.getResourceAsStream("version.properties")?.use { stream -> + java.util.Properties().apply { load(stream) }.getProperty("version") + } ?: "4.3.4" val processingGroup = project.findProperty("processing.group") as String? ?: "org.processing" val workingDir = project.findProperty("processing.workingDir") as String? val debugPort = project.findProperty("processing.debugPort") as String?