Fix namedElements
not extending from api (#533)
* Fix `namedElements` not extending from api Fix artifact not waiting for remapAllJars with shared caches * Use apiElements * Add a better test for this. * Also add remapped api mods to namedElements
This commit is contained in:
parent
2994c2d488
commit
35afda4398
8 changed files with 36 additions and 29 deletions
|
@ -45,6 +45,7 @@ import org.gradle.api.artifacts.result.ComponentArtifactsResult;
|
|||
import org.gradle.api.artifacts.result.ResolvedArtifactResult;
|
||||
import org.gradle.api.file.FileCollection;
|
||||
import org.gradle.api.logging.Logger;
|
||||
import org.gradle.api.plugins.JavaPlugin;
|
||||
import org.gradle.jvm.JvmLibrary;
|
||||
import org.gradle.language.base.artifact.SourcesArtifact;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
@ -156,6 +157,11 @@ public class ModCompileRemapper {
|
|||
if (entry.replacedWith() != null && !modDependencies.isEmpty()) {
|
||||
extension.getDeprecationHelper().replaceWithInLoom0_11(entry.sourceConfiguration(), entry.replacedWith());
|
||||
}
|
||||
|
||||
// Export to other projects
|
||||
if (entry.targetConfiguration().equals(JavaPlugin.API_CONFIGURATION_NAME)) {
|
||||
project.getConfigurations().getByName(Constants.Configurations.NAMED_ELEMENTS).extendsFrom(remappedConfig);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -64,6 +64,7 @@ public final class CompileConfiguration {
|
|||
extension.createLazyConfiguration(Constants.Configurations.NAMED_ELEMENTS).configure(configuration -> {
|
||||
configuration.setCanBeConsumed(true);
|
||||
configuration.setCanBeResolved(false);
|
||||
configuration.extendsFrom(project.getConfigurations().getByName(JavaPlugin.API_CONFIGURATION_NAME));
|
||||
});
|
||||
|
||||
extendsFrom(JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME, Constants.Configurations.MAPPING_CONSTANTS, project);
|
||||
|
|
|
@ -73,7 +73,15 @@ public class RemapConfiguration {
|
|||
return;
|
||||
}
|
||||
|
||||
PublishArtifact artifact = artifacts.add(JavaPlugin.SOURCES_ELEMENTS_CONFIGURATION_NAME, task.getOutput());
|
||||
PublishArtifact artifact = artifacts.add(JavaPlugin.SOURCES_ELEMENTS_CONFIGURATION_NAME, task.getOutput(), configurablePublishArtifact -> {
|
||||
Task remapJarTask = task;
|
||||
|
||||
if (extension.getShareRemapCaches().get()) {
|
||||
remapJarTask = project.getRootProject().getTasks().getByName(DEFAULT_REMAP_ALL_JARS_TASK_NAME);
|
||||
}
|
||||
|
||||
configurablePublishArtifact.builtBy(remapJarTask);
|
||||
});
|
||||
|
||||
// Remove the existing artifact that does not run remapSourcesJar.
|
||||
// It doesn't seem to hurt, but I'm not sure if the file-level duplicates cause issues.
|
||||
|
|
|
@ -28,7 +28,7 @@ import org.gradle.util.GradleVersion
|
|||
|
||||
class LoomTestConstants {
|
||||
public final static String DEFAULT_GRADLE = GradleVersion.current().getVersion()
|
||||
public final static String PRE_RELEASE_GRADLE = "7.4-20211108233000+0000"
|
||||
public final static String PRE_RELEASE_GRADLE = "7.4-20211110232442+0000"
|
||||
|
||||
public final static String[] STANDARD_TEST_VERSIONS = [DEFAULT_GRADLE, PRE_RELEASE_GRADLE]
|
||||
}
|
||||
|
|
|
@ -43,14 +43,14 @@ class FabricAPITest extends Specification implements GradleProjectTestTrait {
|
|||
def "build and run (gradle #version)"() {
|
||||
setup:
|
||||
def gradle = gradleProject(
|
||||
repo: "https://github.com/FabricMC/fabric.git",
|
||||
commit: "46582230fb580d4c1f71e4b0737df27417ec9cb1",
|
||||
repo: "https://github.com/modmuss50/fabric.git",
|
||||
commit: "e954edb6069e36139fd70428cfe4cddb5826c498",
|
||||
version: version,
|
||||
patch: "fabric_api"
|
||||
// patch: "fabric_api"
|
||||
)
|
||||
|
||||
// Set the version to something constant
|
||||
gradle.buildGradle.text = gradle.buildGradle.text.replace('Globals.baseVersion + "+" + (ENV.GITHUB_RUN_NUMBER ? "" : "local-") + getBranch()', "\"$API_VERSION\"")
|
||||
gradle.buildGradle.text = gradle.buildGradle.text.replace('project.version + "+" + (ENV.GITHUB_RUN_NUMBER ? "" : "local-") + getBranch()', "\"$API_VERSION\"")
|
||||
|
||||
def server = ServerRunner.create(gradle.projectDir, "1.17.1")
|
||||
.withMod(gradle.getOutputFile("fabric-api-${API_VERSION}.jar"))
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
diff --git a/build.gradle b/build.gradle
|
||||
--- a/build.gradle (revision fc40aa9d88e9457957bdf3f8cec9698846828cd3)
|
||||
+++ b/build.gradle (date 1631009569915)
|
||||
@@ -257,6 +257,9 @@
|
||||
setupRepositories(repositories)
|
||||
}
|
||||
|
||||
+ // Required as moduleDependencies modifies the pom
|
||||
+ loom.disableDeprecatedPomGeneration(publishing.publications.mavenJava)
|
||||
+
|
||||
javadoc.enabled = false
|
||||
}
|
||||
|
||||
@@ -296,6 +299,8 @@
|
||||
setupRepositories(repositories)
|
||||
}
|
||||
|
||||
+loom.disableDeprecatedPomGeneration(publishing.publications.mavenJava)
|
||||
+
|
||||
void setupRepositories(RepositoryHandler repositories) {
|
||||
//repositories.mavenLocal() // uncomment for testing
|
||||
def ENV = System.getenv()
|
|
@ -1 +1,6 @@
|
|||
archivesBaseName = "core"
|
||||
archivesBaseName = "core"
|
||||
|
||||
dependencies {
|
||||
// An example api dep to be used by the other sub project.
|
||||
modApi "TechReborn:TechReborn-1.16:3.8.4+build.236"
|
||||
}
|
|
@ -1,6 +1,9 @@
|
|||
package net.fabricmc.example;
|
||||
|
||||
import net.fabricmc.api.ModInitializer;
|
||||
import net.minecraft.block.BlockState;
|
||||
import techreborn.blocks.cable.CableShapeUtil;
|
||||
import net.minecraft.util.shape.VoxelShape;
|
||||
|
||||
public class ExampleMod implements ModInitializer {
|
||||
@Override
|
||||
|
@ -10,5 +13,11 @@ public class ExampleMod implements ModInitializer {
|
|||
// Proceed with mild caution.
|
||||
|
||||
System.out.println("Hello Fabric world!");
|
||||
|
||||
if (false) {
|
||||
// Just here to make sure it compiles as named, not to test it runs
|
||||
BlockState state = null;
|
||||
VoxelShape shape = new CableShapeUtil(null).getShape(state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue