aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net
diff options
context:
space:
mode:
authorJuuxel <6596629+Juuxel@users.noreply.github.com>2020-07-30 15:10:48 +0300
committerJuuxel <6596629+Juuxel@users.noreply.github.com>2020-07-30 15:10:48 +0300
commit6e5c3a871527ffb7e35f015d7f21febb68f3d6f6 (patch)
tree2966b1255b180689d53e938183ca8b0a6323c8c5 /src/main/java/net
parent7c9edfedeee75be061a3f306ab48eb260e98d653 (diff)
downloadarchitectury-loom-6e5c3a871527ffb7e35f015d7f21febb68f3d6f6.tar.gz
architectury-loom-6e5c3a871527ffb7e35f015d7f21febb68f3d6f6.tar.bz2
architectury-loom-6e5c3a871527ffb7e35f015d7f21febb68f3d6f6.zip
Make LoomGradleExtension.isForge load from gradle.properties
Diffstat (limited to 'src/main/java/net')
-rw-r--r--src/main/java/net/fabricmc/loom/LoomGradleExtension.java7
-rw-r--r--src/main/java/net/fabricmc/loom/util/LazyBool.java26
2 files changed, 32 insertions, 1 deletions
diff --git a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java
index 0a21c707..3fb9ee97 100644
--- a/src/main/java/net/fabricmc/loom/LoomGradleExtension.java
+++ b/src/main/java/net/fabricmc/loom/LoomGradleExtension.java
@@ -54,9 +54,12 @@ import net.fabricmc.loom.providers.MinecraftMappedProvider;
import net.fabricmc.loom.providers.MinecraftProvider;
import net.fabricmc.loom.providers.PatchProvider;
import net.fabricmc.loom.providers.McpConfigProvider;
+import net.fabricmc.loom.util.LazyBool;
import net.fabricmc.loom.util.LoomDependencyManager;
public class LoomGradleExtension {
+ private static final String FORGE_PROPERTY = "loom.forge";
+
public String runDir = "run";
public String refmapName;
public String loaderLaunchMethod;
@@ -78,6 +81,7 @@ public class LoomGradleExtension {
private JsonObject installerJson;
private MappingSet[] srcMappingCache = new MappingSet[2];
private Mercury[] srcMercuryCache = new Mercury[2];
+ private final LazyBool forge;
/**
* Loom will generate a new genSources task (with a new name, based off of {@link LoomDecompiler#name()})
@@ -99,6 +103,7 @@ public class LoomGradleExtension {
this.project = project;
this.autoGenIDERuns = AbstractPlugin.isRootProject(project);
this.unmappedMods = project.files();
+ this.forge = new LazyBool(() -> Boolean.parseBoolean(Objects.toString(project.getProperties().get(FORGE_PROPERTY))));
}
/**
@@ -394,6 +399,6 @@ public class LoomGradleExtension {
}
public boolean isForge() {
- return true; // TODO
+ return forge.getAsBoolean();
}
}
diff --git a/src/main/java/net/fabricmc/loom/util/LazyBool.java b/src/main/java/net/fabricmc/loom/util/LazyBool.java
new file mode 100644
index 00000000..e76622f7
--- /dev/null
+++ b/src/main/java/net/fabricmc/loom/util/LazyBool.java
@@ -0,0 +1,26 @@
+package net.fabricmc.loom.util;
+
+import java.util.Objects;
+import java.util.function.BooleanSupplier;
+
+/**
+ * A lazily computed boolean value.
+ */
+public final class LazyBool implements BooleanSupplier {
+ private BooleanSupplier supplier;
+ private Boolean value;
+
+ public LazyBool(BooleanSupplier supplier) {
+ this.supplier = Objects.requireNonNull(supplier, "supplier");
+ }
+
+ @Override
+ public boolean getAsBoolean() {
+ if (value == null) {
+ value = supplier.getAsBoolean();
+ supplier = null; // Release the supplier
+ }
+
+ return value;
+ }
+}