diff --git a/buildSrc/src/main/kotlin/cc/tweaked/gradle/CCTweakedExtension.kt b/buildSrc/src/main/kotlin/cc/tweaked/gradle/CCTweakedExtension.kt index dd097d08d2..c254d55b6c 100644 --- a/buildSrc/src/main/kotlin/cc/tweaked/gradle/CCTweakedExtension.kt +++ b/buildSrc/src/main/kotlin/cc/tweaked/gradle/CCTweakedExtension.kt @@ -255,7 +255,7 @@ abstract class CCTweakedExtension( } /** - * Exclude a dependency from being publisehd in Maven. + * Exclude a dependency from being published in Maven. */ fun exclude(dep: Dependency) { excludedDeps.add(dep) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7148b657cc..7c30489939 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -180,7 +180,6 @@ kotlin = ["kotlin-stdlib", "kotlin-coroutines"] externalMods-common = ["jei-api", "nightConfig-core", "nightConfig-toml"] externalMods-forge-compile = ["moreRed", "oculus", "jei-api"] externalMods-forge-runtime = ["jei-forge"] -externalMods-fabric = ["nightConfig-core", "nightConfig-toml"] externalMods-fabric-compile = ["fabricPermissions", "iris", "jei-api", "rei-api", "rei-builtin"] externalMods-fabric-runtime = ["jei-fabric", "modmenu"] diff --git a/projects/fabric/build.gradle.kts b/projects/fabric/build.gradle.kts index 5d5cfee6ce..a7381070bf 100644 --- a/projects/fabric/build.gradle.kts +++ b/projects/fabric/build.gradle.kts @@ -46,9 +46,25 @@ fun addRemappedConfiguration(name: String) { addRemappedConfiguration("testWithSodium") addRemappedConfiguration("testWithIris") +configurations { + // Declare some configurations which are both included (jar-in-jar-ed) and a normal dependency (so they appear in + // our POM). + val includeRuntimeOnly by registering { + isCanBeConsumed = false + isCanBeResolved = false + } + val includeImplementation by registering { + isCanBeConsumed = false + isCanBeResolved = false + } + + include { extendsFrom(includeRuntimeOnly.get(), includeImplementation.get()) } + runtimeOnly { extendsFrom(includeRuntimeOnly.get()) } + implementation { extendsFrom(includeImplementation.get()) } +} + dependencies { clientCompileOnly(variantOf(libs.emi) { classifier("api") }) - modImplementation(libs.bundles.externalMods.fabric) { cct.exclude(this) } modCompileOnly(libs.bundles.externalMods.fabric.compile) { exclude("net.fabricmc", "fabric-loader") exclude("net.fabricmc.fabric-api") @@ -63,24 +79,19 @@ dependencies { "modTestWithIris"(libs.iris) "modTestWithIris"(libs.sodium) - include(libs.cobalt) - include(libs.jzlib) - include(libs.netty.http) - include(libs.netty.socks) - include(libs.netty.proxy) - include(libs.nightConfig.core) - include(libs.nightConfig.toml) + "includeRuntimeOnly"(libs.cobalt) + "includeRuntimeOnly"(libs.jzlib) + "includeRuntimeOnly"(libs.netty.http) + "includeRuntimeOnly"(libs.netty.socks) + "includeRuntimeOnly"(libs.netty.proxy) + + "includeImplementation"(libs.nightConfig.core) + "includeImplementation"(libs.nightConfig.toml) // Pull in our other projects. See comments in MinecraftConfigurations on this nastiness. api(commonClasses(project(":fabric-api"))) { cct.exclude(this) } clientApi(clientClasses(project(":fabric-api"))) { cct.exclude(this) } implementation(project(":core")) { cct.exclude(this) } - // These are transitive deps of :core, so we don't need these deps. However, we want them to appear as runtime deps - // in our POM, and this is the easiest way. - runtimeOnly(libs.cobalt) - runtimeOnly(libs.netty.http) - runtimeOnly(libs.netty.socks) - runtimeOnly(libs.netty.proxy) annotationProcessorEverywhere(libs.autoService)