From f375f7503a4731ddfc3b64d878695aa2467a1892 Mon Sep 17 00:00:00 2001 From: swazrgb <65694696+swazrgb@users.noreply.github.com> Date: Thu, 11 Jun 2020 06:34:16 +0200 Subject: [PATCH] Add inputs & output definitions to script assembler plugin Also have assembler scripts be output into build directory Partially fixes #2665 --- runelite-client/runelite-client.gradle.kts | 6 +++++ ...unelite-script-assembler-plugin.gradle.kts | 24 ++++++++++++------- .../net/runelite/script/AssembleMojo.java | 12 ++++++++++ 3 files changed, 33 insertions(+), 9 deletions(-) diff --git a/runelite-client/runelite-client.gradle.kts b/runelite-client/runelite-client.gradle.kts index dbba829690..9cde587e41 100644 --- a/runelite-client/runelite-client.gradle.kts +++ b/runelite-client/runelite-client.gradle.kts @@ -148,6 +148,12 @@ tasks { archiveClassifier.set("shaded") } + processResources { + dependsOn(":runelite-script-assembler-plugin:indexMojo") + + from("${buildDir}/scripts") + } + withType { group = "openosrs" } diff --git a/runelite-script-assembler-plugin/runelite-script-assembler-plugin.gradle.kts b/runelite-script-assembler-plugin/runelite-script-assembler-plugin.gradle.kts index 8c4f06d11a..02c32ed9eb 100644 --- a/runelite-script-assembler-plugin/runelite-script-assembler-plugin.gradle.kts +++ b/runelite-script-assembler-plugin/runelite-script-assembler-plugin.gradle.kts @@ -39,28 +39,34 @@ dependencies { tasks { register("assembleMojo") { + inputs.files( + fileTree("${project.extra["rootPath"]}/runelite-client/src/main/scripts") + ) + + outputs.dir("${project.extra["rootPath"]}/runelite-client/build/scripts/runelite"); + classpath = project.sourceSets.main.get().runtimeClasspath main = "net.runelite.script.AssembleMojo" args(listOf( "${project.extra["rootPath"]}/runelite-client/src/main/scripts", - "${project.extra["rootPath"]}/runelite-client/src/main/resources/runelite" + "${project.extra["rootPath"]}/runelite-client/build/scripts/runelite" )) } register("indexMojo") { + inputs.files( + fileTree("${project.extra["rootPath"]}/runelite-client/build/scripts/runelite") + ) + + outputs.file("${project.extra["rootPath"]}/runelite-client/build/scripts/runelite/index"); + dependsOn("assembleMojo") classpath = project.sourceSets.main.get().runtimeClasspath main = "net.runelite.script.IndexMojo" args(listOf( - "${project.extra["rootPath"]}/runelite-client/src/main/resources/runelite", - "${project.extra["rootPath"]}/runelite-client/src/main/resources/runelite/index" + "${project.extra["rootPath"]}/runelite-client/build/scripts/runelite", + "${project.extra["rootPath"]}/runelite-client/build/scripts/runelite/index" )) } - - compileJava { - outputs.upToDateWhen {false} - - finalizedBy("indexMojo") - } } \ No newline at end of file diff --git a/runelite-script-assembler-plugin/src/main/java/net/runelite/script/AssembleMojo.java b/runelite-script-assembler-plugin/src/main/java/net/runelite/script/AssembleMojo.java index 35d567c267..72791ccfef 100644 --- a/runelite-script-assembler-plugin/src/main/java/net/runelite/script/AssembleMojo.java +++ b/runelite-script-assembler-plugin/src/main/java/net/runelite/script/AssembleMojo.java @@ -25,6 +25,8 @@ package net.runelite.script; import com.google.common.io.Files; +import com.google.common.io.MoreFiles; +import com.google.common.io.RecursiveDeleteOption; import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -86,6 +88,16 @@ public class AssembleMojo extends AbstractMojo File scriptOut = new File(outputDirectory, Integer.toString(IndexType.CLIENTSCRIPT.getNumber())); scriptOut.mkdirs(); + // Clear the target directory to remove stale entries + try + { + MoreFiles.deleteDirectoryContents(scriptOut.toPath(), RecursiveDeleteOption.ALLOW_INSECURE); + } + catch (IOException e) + { + throw new MojoExecutionException("Could not clear scriptOut: " + scriptOut, e); + } + for (File scriptFile : scriptDirectory.listFiles((dir, name) -> name.endsWith(".rs2asm"))) { log.debug("Assembling " + scriptFile);