Skip to content

Commit 7b1880b

Browse files
committed
Add API variant using scoped dependencies
1 parent 5cc3605 commit 7b1880b

File tree

3 files changed

+30
-3
lines changed

3 files changed

+30
-3
lines changed

settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ dependencyResolutionManagement.versionCatalogs.register('libs') {
4141
library 'utils-download', 'net.minecraftforge', 'download-utils' version '0.4.0'
4242
library 'utils-files', 'net.minecraftforge', 'file-utils' version '0.3.2'
4343
library 'utils-hash', 'net.minecraftforge', 'hash-utils' version '0.1.12'
44-
library 'utils-data', 'net.minecraftforge', 'json-data-utils' version '0.4.0'
44+
library 'utils-data', 'net.minecraftforge', 'json-data-utils' version '0.4.1'
4545
library 'utils-logging', 'net.minecraftforge', 'log-utils' version '0.5.0'
4646
library 'utils-os', 'net.minecraftforge', 'os-utils' version '0.1.0'
4747
bundle 'utils', ['utils-download', 'utils-files', 'utils-hash', 'utils-data', 'utils-logging', 'utils-os']

src/main/java/net/minecraftforge/mcmaven/impl/repo/Repo.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.io.IOException;
2525
import java.nio.charset.StandardCharsets;
2626
import java.util.ArrayList;
27+
import java.util.Collection;
2728
import java.util.EnumSet;
2829
import java.util.HashMap;
2930
import java.util.HashSet;
@@ -110,8 +111,12 @@ protected Supplier<GradleModule.Variant[]> simpleVariant(String name, Mappings m
110111
};
111112
}
112113

114+
protected GradleModule.Variant[] classVariants(Mappings mappings, MCPSide side) {
115+
return classVariants(mappings, side, List.of(), List.of(), List.of());
116+
}
117+
113118
// Classes needs a variant for each OS type so that we can have different natives
114-
protected GradleModule.Variant[] classVariants(Mappings mappings, MCPSide side, Artifact... extraDeps) {
119+
protected GradleModule.Variant[] classVariants(Mappings mappings, MCPSide side, Collection<Artifact> extraDeps, Collection<Artifact> extraCompileDeps, Collection<Artifact> extraRuntimeDeps) {
115120
var all = new ArrayList<Artifact>();
116121
var natives = new HashMap<GradleAttributes.OperatingSystemFamily, List<Artifact>>();
117122

@@ -173,6 +178,10 @@ protected GradleModule.Variant[] classVariants(Mappings mappings, MCPSide side,
173178
variants.add(variant);
174179
}
175180

181+
var apiVariant = GradleModule.Variant.of("api-classes", common);
182+
apiVariant.attribute("org.gradle.usage", "java-api");
183+
variants.add(apiVariant);
184+
176185
return variants.toArray(new GradleModule.Variant[0]);
177186
}
178187

src/main/java/net/minecraftforge/mcmaven/impl/repo/forge/ForgeRepo.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import java.nio.file.StandardCopyOption;
3636
import java.util.ArrayList;
3737
import java.util.Arrays;
38+
import java.util.Collection;
3839
import java.util.List;
3940
import java.util.stream.Stream;
4041

@@ -260,6 +261,23 @@ private static Task pom(File build, Patcher patcher, String version, Artifact cl
260261
protected GradleModule.Variant[] classVariants(Mappings mappings, Patcher patcher, Artifact... extraDeps) {
261262
var extra = new ArrayList<>(Arrays.asList(extraDeps));
262263
extra.addAll(patcher.getArtifacts());
263-
return super.classVariants(mappings, patcher.getMCPSide(), extra.toArray(Artifact[]::new));
264+
265+
var extraCompile = new ArrayList<Artifact>();
266+
var extraRuntime = new ArrayList<Artifact>();
267+
if (patcher.config.extraDependencies != null) {
268+
if (patcher.config.extraDependencies.compileOnly != null) {
269+
for (var descriptor : patcher.config.extraDependencies.compileOnly) {
270+
extraCompile.add(Artifact.from(descriptor));
271+
}
272+
}
273+
274+
if (patcher.config.extraDependencies.runtimeOnly != null) {
275+
for (var descriptor : patcher.config.extraDependencies.runtimeOnly) {
276+
extraRuntime.add(Artifact.from(descriptor));
277+
}
278+
}
279+
}
280+
281+
return super.classVariants(mappings, patcher.getMCPSide(), extra, extraCompile, extraRuntime);
264282
}
265283
}

0 commit comments

Comments
 (0)