From 5f5dfcb3a7395910e0fda53e09503a43a7eb8de1 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Sun, 17 Apr 2022 21:15:58 +0100 Subject: [PATCH] Add refmap target namespace property. (#628) * Add refmap target namespace Property. * Fix build. --- .../net/fabricmc/loom/api/MixinExtensionAPI.java | 2 ++ .../build/mixin/AnnotationProcessorInvoker.java | 2 +- .../loom/extension/MixinExtensionApiImpl.java | 15 ++++++++++++++- 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/api/MixinExtensionAPI.java b/src/main/java/net/fabricmc/loom/api/MixinExtensionAPI.java index 78440ec2..2de8e8da 100644 --- a/src/main/java/net/fabricmc/loom/api/MixinExtensionAPI.java +++ b/src/main/java/net/fabricmc/loom/api/MixinExtensionAPI.java @@ -36,6 +36,8 @@ public interface MixinExtensionAPI { Property getDefaultRefmapName(); + Property getRefmapTargetNamespace(); + /** * Apply Mixin AP to sourceSet. * @param sourceSet the sourceSet that applies Mixin AP. diff --git a/src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java b/src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java index f6315d37..9785f1f6 100644 --- a/src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java +++ b/src/main/java/net/fabricmc/loom/build/mixin/AnnotationProcessorInvoker.java @@ -89,7 +89,7 @@ public abstract class AnnotationProcessorInvoker { put(Constants.MixinArguments.IN_MAP_FILE_NAMED_INTERMEDIARY, loom.getMappingsProvider().tinyMappings.toFile().getCanonicalPath()); put(Constants.MixinArguments.OUT_MAP_FILE_NAMED_INTERMEDIARY, MixinMappingsService.getMixinMappingFile(project, sourceSet).getCanonicalPath()); put(Constants.MixinArguments.OUT_REFMAP_FILE, getRefmapDestination(task, refmapName)); - put(Constants.MixinArguments.DEFAULT_OBFUSCATION_ENV, "named:intermediary"); + put(Constants.MixinArguments.DEFAULT_OBFUSCATION_ENV, "named:" + loom.getMixin().getRefmapTargetNamespace().get()); put(Constants.MixinArguments.QUIET, "true"); }}; diff --git a/src/main/java/net/fabricmc/loom/extension/MixinExtensionApiImpl.java b/src/main/java/net/fabricmc/loom/extension/MixinExtensionApiImpl.java index 58838e0e..74b70423 100644 --- a/src/main/java/net/fabricmc/loom/extension/MixinExtensionApiImpl.java +++ b/src/main/java/net/fabricmc/loom/extension/MixinExtensionApiImpl.java @@ -1,7 +1,7 @@ /* * This file is part of fabric-loom, licensed under the MIT License (MIT). * - * Copyright (c) 2021 FabricMC + * Copyright (c) 2021-2022 FabricMC * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -36,15 +36,21 @@ import org.gradle.api.tasks.SourceSet; import org.gradle.api.tasks.util.PatternSet; import net.fabricmc.loom.api.MixinExtensionAPI; +import net.fabricmc.loom.api.mappings.layered.MappingsNamespace; public abstract class MixinExtensionApiImpl implements MixinExtensionAPI { protected final Project project; protected final Property useMixinAp; + private final Property refmapTargetNamespace; public MixinExtensionApiImpl(Project project) { this.project = Objects.requireNonNull(project); this.useMixinAp = project.getObjects().property(Boolean.class) .convention(true); + + this.refmapTargetNamespace = project.getObjects().property(String.class) + .convention(MappingsNamespace.INTERMEDIARY.toString()); + this.refmapTargetNamespace.finalizeValueOnRead(); } protected final PatternSet add0(SourceSet sourceSet, String refmapName) { @@ -58,6 +64,13 @@ public abstract class MixinExtensionApiImpl implements MixinExtensionAPI { return useMixinAp; } + @Override + public Property getRefmapTargetNamespace() { + if (!getUseLegacyMixinAp().get()) throw new IllegalStateException("You need to set useLegacyMixinAp = true to configure Mixin annotation processor."); + + return refmapTargetNamespace; + } + @Override public void add(SourceSet sourceSet, String refmapName, Action action) { PatternSet pattern = add0(sourceSet, refmapName);