diff --git a/build.gradle b/build.gradle index fc362ed..0df6822 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ apply from: 'https://github.com/FabricMC/fabric-docs/raw/master/gradle/license.g group = 'net.fabricmc' archivesBaseName = project.name.toLowerCase() -version = '0.0.3-SNAPSHOT' +version = '0.0.4-SNAPSHOT' repositories { mavenCentral() diff --git a/src/main/java/net/fabricmc/loom/AbstractPlugin.java b/src/main/java/net/fabricmc/loom/AbstractPlugin.java index f089b9d..9fbcfc8 100644 --- a/src/main/java/net/fabricmc/loom/AbstractPlugin.java +++ b/src/main/java/net/fabricmc/loom/AbstractPlugin.java @@ -31,6 +31,7 @@ import com.google.gson.JsonObject; import net.fabricmc.loom.task.DownloadTask; import net.fabricmc.loom.util.Constants; import net.fabricmc.loom.util.Version; +import org.gradle.api.Action; import org.gradle.api.Plugin; import org.gradle.api.Project; import org.gradle.api.Task; @@ -38,6 +39,7 @@ import org.gradle.api.artifacts.repositories.MavenArtifactRepository; import org.gradle.api.plugins.JavaPlugin; import org.gradle.api.plugins.JavaPluginConvention; import org.gradle.api.tasks.SourceSet; +import org.gradle.api.tasks.compile.JavaCompile; import org.gradle.api.tasks.javadoc.Javadoc; import org.gradle.plugins.ide.eclipse.model.EclipseModel; import org.gradle.plugins.ide.idea.model.IdeaModel; @@ -46,6 +48,8 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; +import java.util.Map; +import java.util.Set; public class AbstractPlugin implements Plugin { protected Project project; @@ -62,7 +66,8 @@ public class AbstractPlugin implements Plugin { project.getExtensions().create("minecraft", LoomGradleExtension.class); project.getExtensions().getByType(LoomGradleExtension.class).project = project; - readModJson(project.getExtensions().getByType(LoomGradleExtension.class)); + LoomGradleExtension extension = project.getExtensions().getByType(LoomGradleExtension.class); + readModJson(extension); // Force add Mojang repository addMavenRepo(target, "Mojang", "https://libraries.minecraft.net/"); @@ -77,6 +82,29 @@ public class AbstractPlugin implements Plugin { configureIDEs(); configureCompile(); + + //TODO other languages? + Map> taskMap = project.getAllTasks(true); + for(Map.Entry> entry : taskMap.entrySet()) { + Project project = entry.getKey(); + Set taskSet = entry.getValue(); + for(Task task : taskSet){ + if(task instanceof JavaCompile){ + JavaCompile javaCompileTask = (JavaCompile) task; + javaCompileTask.doFirst(task1 -> { + project.getLogger().lifecycle(":setting java compiler args"); + try { + javaCompileTask.getOptions().getCompilerArgs().add("-AreobfNotchSrgFile=" + Constants.MAPPINGS_SRG.get(extension).getCanonicalPath()); + javaCompileTask.getOptions().getCompilerArgs().add("-AdefaultObfuscationEnv=notch"); + } catch (IOException e) { + e.printStackTrace(); + } + }); + } + } + + } + } /** diff --git a/src/main/java/net/fabricmc/loom/util/Constants.java b/src/main/java/net/fabricmc/loom/util/Constants.java index c741e98..5621791 100644 --- a/src/main/java/net/fabricmc/loom/util/Constants.java +++ b/src/main/java/net/fabricmc/loom/util/Constants.java @@ -46,6 +46,9 @@ public class Constants { public static final IDelayed POMF_DIR = new DelayedFile(extension -> new File(extension.getFabricUserCache(), "pomf")); public static final IDelayed MAPPINGS_ZIP = new DelayedFile(extension -> new File(POMF_DIR.get(extension), "pomf-enigma-" + extension.version + "." + extension.pomfVersion + ".zip")); public static final IDelayed MAPPINGS_DIR = new DelayedFile(extension -> new File(POMF_DIR.get(extension), "pomf-enigma-" + extension.version + "." + extension.pomfVersion + "")); + public static final IDelayed MAPPINGS_SRG = new DelayedFile(extension -> new File(WORKING_DIRECTORY, "mappings.srg")); + + public static final IDelayed REF_MAP = new DelayedFile(extension -> new File(WORKING_DIRECTORY, "RefMap.json")); public static final IDelayed MINECRAFT_LIBS = new DelayedFile(extension -> new File(extension.getFabricUserCache(), extension.version + "-libs")); public static final IDelayed MINECRAFT_NATIVES = new DelayedFile(extension -> new File(extension.getFabricUserCache(), extension.version + "-natives"));