aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-09-11 04:24:40 +0800
committershedaniel <daniel@shedaniel.me>2021-09-11 04:24:40 +0800
commitd06081d560f3f75e7a9e558828a2ff72cdcde6d2 (patch)
tree7b7fd1756b179b0aba091713ee6154646e2d8e68 /src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
parent3bc5ab25c0e1bcd9a7476ca9f988c8c2b86c253b (diff)
parent2c464cdef372e92ea719eec618ae713d54cede89 (diff)
downloadarchitectury-loom-d06081d560f3f75e7a9e558828a2ff72cdcde6d2.tar.gz
architectury-loom-d06081d560f3f75e7a9e558828a2ff72cdcde6d2.tar.bz2
architectury-loom-d06081d560f3f75e7a9e558828a2ff72cdcde6d2.zip
Merge remote-tracking branch 'FabricMC/dev/0.10' into dev/future
# Conflicts: # build.gradle # src/main/java/net/fabricmc/loom/LoomGradleExtension.java # src/main/java/net/fabricmc/loom/LoomRepositoryPlugin.java # src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java # src/main/java/net/fabricmc/loom/build/MixinRefmapHelper.java # src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java # src/main/java/net/fabricmc/loom/configuration/MavenPublication.java # src/main/java/net/fabricmc/loom/extension/LoomGradleExtensionApiImpl.java # src/main/java/net/fabricmc/loom/extension/MinecraftGradleExtension.java # src/main/java/net/fabricmc/loom/extension/MixinExtensionImpl.java # src/main/java/net/fabricmc/loom/task/RemapJarTask.java # src/main/java/net/fabricmc/loom/util/Constants.java # src/main/java/net/fabricmc/loom/util/SourceRemapper.java # src/test/groovy/net/fabricmc/loom/test/util/ProjectTestTrait.groovy
Diffstat (limited to 'src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java')
-rw-r--r--src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java63
1 files changed, 38 insertions, 25 deletions
diff --git a/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java b/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
index d23072f6..b0aaa53b 100644
--- a/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
+++ b/src/main/java/net/fabricmc/loom/configuration/CompileConfiguration.java
@@ -25,14 +25,12 @@
package net.fabricmc.loom.configuration;
import org.gradle.api.Project;
-import org.gradle.api.artifacts.ConfigurationContainer;
import org.gradle.api.plugins.JavaPlugin;
import org.gradle.api.plugins.JavaPluginConvention;
import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.javadoc.Javadoc;
import org.gradle.jvm.tasks.Jar;
-import net.fabricmc.loom.extension.MixinApExtension;
import net.fabricmc.loom.LoomGradleExtension;
import net.fabricmc.loom.build.mixin.JavaApInvoker;
import net.fabricmc.loom.build.mixin.KaptApInvoker;
@@ -48,6 +46,7 @@ import net.fabricmc.loom.configuration.providers.forge.McpConfigProvider;
import net.fabricmc.loom.configuration.providers.forge.PatchProvider;
import net.fabricmc.loom.configuration.providers.forge.SrgProvider;
import net.fabricmc.loom.configuration.providers.mappings.MappingsProviderImpl;
+import net.fabricmc.loom.extension.MixinExtension;
import net.fabricmc.loom.task.GenVsCodeProjectTask;
import net.fabricmc.loom.util.Constants;
@@ -56,7 +55,6 @@ public final class CompileConfiguration {
}
public static void setupConfigurations(Project project) {
- final ConfigurationContainer configurations = project.getConfigurations();
LoomGradleExtension extension = LoomGradleExtension.get(project);
project.afterEvaluate(project1 -> {
@@ -121,11 +119,18 @@ public final class CompileConfiguration {
extension.createLazyConfiguration(entry.getRemappedConfiguration())
.configure(configuration -> configuration.setTransitive(false));
- extendsFrom(entry.getTargetConfiguration(configurations), entry.getRemappedConfiguration(), project);
-
- if (entry.isOnModCompileClasspath()) {
+ if (entry.compileClasspath()) {
extendsFrom(Constants.Configurations.MOD_COMPILE_CLASSPATH, entry.sourceConfiguration(), project);
extendsFrom(Constants.Configurations.MOD_COMPILE_CLASSPATH_MAPPED, entry.getRemappedConfiguration(), project);
+ extendsFrom(JavaPlugin.COMPILE_CLASSPATH_CONFIGURATION_NAME, entry.getRemappedConfiguration(), project);
+ }
+
+ if (entry.runtimeClasspath()) {
+ extendsFrom(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME, entry.getRemappedConfiguration(), project);
+ }
+
+ if (entry.hasConsumerConfiguration()) {
+ extendsFrom(entry.consumerConfiguration(), entry.sourceConfiguration(), project);
}
}
@@ -137,7 +142,7 @@ public final class CompileConfiguration {
extendsFrom(Constants.Configurations.LOADER_DEPENDENCIES, Constants.Configurations.MINECRAFT_DEPENDENCIES, project);
extendsFrom(Constants.Configurations.MINECRAFT_NAMED, Constants.Configurations.LOADER_DEPENDENCIES, project);
- extendsFrom(JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME, Constants.Configurations.MAPPINGS_FINAL, project);
+ extendsFrom(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME, Constants.Configurations.MAPPINGS_FINAL, project);
extendsFrom(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME, Constants.Configurations.LOOM_DEVELOPMENT_DEPENDENCIES, project);
extendsFrom(JavaPlugin.TEST_RUNTIME_CLASSPATH_CONFIGURATION_NAME, Constants.Configurations.LOOM_DEVELOPMENT_DEPENDENCIES, project);
@@ -195,25 +200,10 @@ public final class CompileConfiguration {
extension.getUnmappedModCollection().from(jarTask);
}
- // Disable some things used by log4j via the mixin AP that prevent it from being garbage collected
- System.setProperty("log4j2.disable.jmx", "true");
- System.setProperty("log4j.shutdownHookEnabled", "false");
- System.setProperty("log4j.skipJansi", "true");
-
- project.getLogger().info("Configuring compiler arguments for Java");
- MixinApExtension mixinApExtension = LoomGradleExtension.get(project).getMixin();
- mixinApExtension.init();
-
- new JavaApInvoker(project).configureMixin();
-
- if (project.getPluginManager().hasPlugin("scala")) {
- project.getLogger().info("Configuring compiler arguments for Scala");
- new ScalaApInvoker(project).configureMixin();
- }
+ MixinExtension mixin = LoomGradleExtension.get(project).getMixin();
- if (project.getPluginManager().hasPlugin("org.jetbrains.kotlin.kapt")) {
- project.getLogger().info("Configuring compiler arguments for Kapt plugin");
- new KaptApInvoker(project).configureMixin();
+ if (mixin.getUseLegacyMixinAp().get()) {
+ setupMixinAp(project, mixin);
}
});
@@ -223,6 +213,29 @@ public final class CompileConfiguration {
}
}
+ private static void setupMixinAp(Project project, MixinExtension mixin) {
+ mixin.init();
+
+ // Disable some things used by log4j via the mixin AP that prevent it from being garbage collected
+ System.setProperty("log4j2.disable.jmx", "true");
+ System.setProperty("log4j.shutdownHookEnabled", "false");
+ System.setProperty("log4j.skipJansi", "true");
+
+ project.getLogger().info("Configuring compiler arguments for Java");
+
+ new JavaApInvoker(project).configureMixin();
+
+ if (project.getPluginManager().hasPlugin("scala")) {
+ project.getLogger().info("Configuring compiler arguments for Scala");
+ new ScalaApInvoker(project).configureMixin();
+ }
+
+ if (project.getPluginManager().hasPlugin("org.jetbrains.kotlin.kapt")) {
+ project.getLogger().info("Configuring compiler arguments for Kapt plugin");
+ new KaptApInvoker(project).configureMixin();
+ }
+ }
+
private static void extendsFrom(String a, String b, Project project) {
project.getConfigurations().getByName(a, configuration -> configuration.extendsFrom(project.getConfigurations().getByName(b)));
}