Clean up leftovers

This commit is contained in:
Johannes Frohnmeyer 2022-10-07 18:42:33 +02:00
parent fbfbe4261b
commit 1725b91c94
Signed by: Johannes
GPG Key ID: E76429612C2929F4
6 changed files with 53 additions and 85 deletions

View File

@ -27,7 +27,7 @@ curseforge {
.forEach { optionalDependency(it) } .forEach { optionalDependency(it) }
} }
afterEvaluate { afterEvaluate {
uploadTask.dependsOn(tasks.build) uploadTask.dependsOn(tasks.build.get())
} }
} }
options { options {

View File

@ -58,12 +58,12 @@ allprojects {
loom { loom {
mods { mods {
register(sub.name) { register(sub.name) {
sourceSet(sub.sourceSets.main) sourceSet(sub.sourceSets.main.get())
sourceSet(sub.sourceSets.client) sourceSet(sub.sourceSets.client.get())
} }
if (!sourceSets.testmod.resources.isEmpty) { if (!sourceSets.testmod.get().resources.isEmpty) {
register("${sub.name}-testmod") { register("${sub.name}-testmod") {
sourceSet(sub.sourceSets.testmod) sourceSet(sub.sourceSets.testmod.get())
} }
} }
} }
@ -81,7 +81,7 @@ subprojects {
tasks.named("javadoc").get().enabled = false tasks.named("javadoc").get().enabled = false
if (name !in devOnlyModules && !sourceSets.testmod.resources.isEmpty) { if (name !in devOnlyModules && !sourceSets.testmod.get().resources.isEmpty) {
//TODO register testmods of subprojects as testmodInclude automatically //TODO register testmods of subprojects as testmodInclude automatically
// val configuration = configurations.create("testmodJar").name // val configuration = configurations.create("testmodJar").name
// val testmodJarTask = tasks.named<Jar>("testmodJar").get() // val testmodJarTask = tasks.named<Jar>("testmodJar").get()
@ -97,17 +97,17 @@ subprojects {
self.dependencies { self.dependencies {
api(project(mapOf("path" to project.path, "configuration" to "shadow"))) api(project(mapOf("path" to project.path, "configuration" to "shadow")))
clientImplementation(sourceSets.client.output) clientImplementation(sourceSets.client.get().output)
testmodImplementation(sourceSets.testmod.output) testmodImplementation(sourceSets.testmod.get().output)
if (name !in devOnlyModules) include(project) if (name !in devOnlyModules) include(project)
} }
afterEvaluate { afterEvaluate {
tasks.genClientOnlySources.enabled = false tasks.genClientOnlySources.get().enabled = false
tasks.genCommonSources.enabled = false tasks.genCommonSources.get().enabled = false
tasks.unpickClientOnlyJar.enabled = false tasks.unpickClientOnlyJar.get().enabled = false
tasks.unpickCommonJar.enabled = false tasks.unpickCommonJar.get().enabled = false
} }
} }

View File

@ -1,36 +1,16 @@
package io.gitlab.jfronny.scripts package io.gitlab.jfronny.scripts
import org.gradle.api.Action
import org.gradle.api.DefaultTask
import org.gradle.api.PolymorphicDomainObjectContainer import org.gradle.api.PolymorphicDomainObjectContainer
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.artifacts.Dependency import org.gradle.api.artifacts.Dependency
import org.gradle.api.artifacts.dsl.DependencyHandler import org.gradle.api.artifacts.dsl.DependencyHandler
import org.gradle.api.plugins.JavaPluginExtension
import org.gradle.api.publish.PublishingExtension
import org.gradle.api.tasks.SourceSetContainer
import org.gradle.api.tasks.TaskContainer import org.gradle.api.tasks.TaskContainer
import org.gradle.api.tasks.bundling.Jar import org.gradle.api.tasks.bundling.Jar
import org.gradle.kotlin.dsl.named import org.gradle.kotlin.dsl.named
import org.gradle.language.jvm.tasks.ProcessResources
import kotlin.reflect.KClass import kotlin.reflect.KClass
import kotlin.reflect.KProperty import kotlin.reflect.KProperty
val Project.java: JavaPluginExtension get() = extensions.getByName("java") as JavaPluginExtension val TaskContainer.sourcesJar get() = named<Jar>("sourcesJar")
fun Project.java(configure: Action<JavaPluginExtension>) = extensions.configure("java", configure)
val Project.publishing: PublishingExtension get() = extensions.getByName("publishing") as PublishingExtension
fun Project.publishing(configure: Action<PublishingExtension>) = extensions.configure("publishing", configure)
val Project.sourceSets: SourceSetContainer get() = extensions.getByName("sourceSets") as SourceSetContainer
fun Project.sourceSets(configure: Action<SourceSetContainer>) = extensions.configure("sourceSets", configure)
val TaskContainer.assemble: DefaultTask get() = named<DefaultTask>("assemble").get()
val TaskContainer.build: DefaultTask get() = named<DefaultTask>("build").get()
val TaskContainer.jar: Jar get() = named<Jar>("jar").get()
val TaskContainer.sourcesJar: Jar get() = named<Jar>("sourcesJar").get()
val TaskContainer.publish: Task get() = named("publish").get()
fun TaskContainer.processResources(configure: ProcessResources.() -> Unit) = named<ProcessResources>("processResources").configure(configure)
fun <T : Any, C : PolymorphicDomainObjectContainer<T>, U : T> C.registering(type: KClass<U>, action: U.() -> Unit): PDelegate<T, C, U> = PDelegate(this, type.java, action) fun <T : Any, C : PolymorphicDomainObjectContainer<T>, U : T> C.registering(type: KClass<U>, action: U.() -> Unit): PDelegate<T, C, U> = PDelegate(this, type.java, action)

View File

@ -1,8 +1,8 @@
package io.gitlab.jfronny.scripts package io.gitlab.jfronny.scripts
import net.fabricmc.loom.LoomGradleExtension
import net.fabricmc.loom.api.LoomGradleExtensionAPI import net.fabricmc.loom.api.LoomGradleExtensionAPI
import net.fabricmc.loom.task.RemapJarTask import net.fabricmc.loom.task.RemapJarTask
import net.fabricmc.loom.task.RemapSourcesJarTask
import net.fabricmc.loom.task.UnpickJarTask import net.fabricmc.loom.task.UnpickJarTask
import org.gradle.api.Action import org.gradle.api.Action
import org.gradle.api.DefaultTask import org.gradle.api.DefaultTask
@ -13,7 +13,7 @@ import org.gradle.api.tasks.SourceSetContainer
import org.gradle.api.tasks.TaskContainer import org.gradle.api.tasks.TaskContainer
import org.gradle.kotlin.dsl.named import org.gradle.kotlin.dsl.named
val Project.loom: LoomGradleExtensionAPI get() = extensions.getByName("loom") as LoomGradleExtensionAPI val Project.loom: LoomGradleExtensionAPI get() = LoomGradleExtension.get(this)
fun Project.loom(configure: Action<LoomGradleExtensionAPI>) = extensions.configure("loom", configure) fun Project.loom(configure: Action<LoomGradleExtensionAPI>) = extensions.configure("loom", configure)
fun DependencyHandler.minecraft(dependencyNotation: Any) = add("minecraft", dependencyNotation) fun DependencyHandler.minecraft(dependencyNotation: Any) = add("minecraft", dependencyNotation)
@ -22,16 +22,12 @@ fun DependencyHandler.modImplementation(dependencyNotation: Any) = add("modImple
fun DependencyHandler.testmodImplementation(dependencyNotation: Any) = add("testmodImplementation", dependencyNotation) fun DependencyHandler.testmodImplementation(dependencyNotation: Any) = add("testmodImplementation", dependencyNotation)
fun DependencyHandler.clientImplementation(dependencyNotation: Any) = add("clientImplementation", dependencyNotation) fun DependencyHandler.clientImplementation(dependencyNotation: Any) = add("clientImplementation", dependencyNotation)
val SourceSetContainer.main: SourceSet get() = named("main").get() val SourceSetContainer.main get() = named<SourceSet>("main")
fun SourceSetContainer.main(configure: Action<SourceSet>) = configure.execute(this.main) val SourceSetContainer.client get() = named<SourceSet>("client")
val SourceSetContainer.client: SourceSet get() = named("client").get() val SourceSetContainer.testmod get() = named<SourceSet>("testmod")
fun SourceSetContainer.client(configure: Action<SourceSet>) = configure.execute(this.client)
val SourceSetContainer.testmod: SourceSet get() = named("testmod").get()
fun SourceSetContainer.testmod(configure: Action<SourceSet>) = configure.execute(this.testmod)
fun TaskContainer.remapJar(configure: RemapJarTask.() -> Unit) = named<RemapJarTask>("remapJar").configure(configure) fun TaskContainer.remapJar(configure: RemapJarTask.() -> Unit) = named<RemapJarTask>("remapJar").configure(configure)
val TaskContainer.remapSourcesJar: RemapSourcesJarTask get() = named<RemapSourcesJarTask>("remapSourcesJar").get() val TaskContainer.genClientOnlySources get() = named<DefaultTask>("genClientOnlySources")
val TaskContainer.genClientOnlySources: DefaultTask get() = named<DefaultTask>("genClientOnlySources").get() val TaskContainer.genCommonSources get() = named<DefaultTask>("genCommonSources")
val TaskContainer.genCommonSources: DefaultTask get() = named<DefaultTask>("genCommonSources").get() val TaskContainer.unpickClientOnlyJar get() = named<UnpickJarTask>("unpickClientOnlyJar")
val TaskContainer.unpickClientOnlyJar: UnpickJarTask get() = named<UnpickJarTask>("unpickClientOnlyJar").get() val TaskContainer.unpickCommonJar get() = named<UnpickJarTask>("unpickCommonJar")
val TaskContainer.unpickCommonJar: UnpickJarTask get() = named<UnpickJarTask>("unpickCommonJar").get()

View File

@ -1,11 +0,0 @@
package io.gitlab.jfronny.scripts
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import org.gradle.api.artifacts.Configuration
import org.gradle.api.artifacts.ConfigurationContainer
import org.gradle.api.tasks.TaskContainer
import org.gradle.kotlin.dsl.named
val ConfigurationContainer.shadow: Configuration get() = named("shadow").get()
val TaskContainer.shadowJar get() = named<ShadowJar>("shadowJar")

View File

@ -10,6 +10,13 @@ import org.gradle.api.tasks.compile.JavaCompile
import org.gradle.kotlin.dsl.* import org.gradle.kotlin.dsl.*
import java.io.File import java.io.File
plugins {
idea
`java-library`
`maven-publish`
id("com.github.johnrengelman.shadow")
}
val devlibs = File(project.buildDir, "devlibs") val devlibs = File(project.buildDir, "devlibs")
val args = extensions.create<LomExtension>("lom") val args = extensions.create<LomExtension>("lom")
@ -21,17 +28,13 @@ afterEvaluate {
else loom.officialMojangMappings() else loom.officialMojangMappings()
modImplementation("net.fabricmc:fabric-loader:${args.loaderVersion.get()}") modImplementation("net.fabricmc:fabric-loader:${args.loaderVersion.get()}")
testmodImplementation(sourceSets.main.output) testmodImplementation(sourceSets.main.get().output)
testmodImplementation(sourceSets.client.output) testmodImplementation(sourceSets.client.get().output)
} }
} }
// Apply necessary plugins // Apply loom manually to ensure the afterEvaluate block above is done before looms are called
apply(plugin = "idea")
apply(plugin = "java-library")
apply(plugin = "fabric-loom") apply(plugin = "fabric-loom")
apply(plugin = "maven-publish")
apply(plugin = "com.github.johnrengelman.shadow")
// Configure loom for stricter dev env // Configure loom for stricter dev env
loom { loom {
@ -42,26 +45,26 @@ loom {
// Create testmod source set with access to main and client classpaths // Create testmod source set with access to main and client classpaths
sourceSets { sourceSets {
create("testmod") { create("testmod") {
compileClasspath += sourceSets.main.compileClasspath compileClasspath += sourceSets.main.get().compileClasspath
runtimeClasspath += sourceSets.main.runtimeClasspath runtimeClasspath += sourceSets.main.get().runtimeClasspath
compileClasspath += sourceSets.client.compileClasspath compileClasspath += sourceSets.client.get().compileClasspath
runtimeClasspath += sourceSets.client.runtimeClasspath runtimeClasspath += sourceSets.client.get().runtimeClasspath
} }
} }
val hasTestmod = !sourceSets.testmod.resources.isEmpty val hasTestmod = !sourceSets.testmod.get().resources.isEmpty
// Class path groups (required to allow ultra early init) // Class path groups (required to allow ultra early init)
loom { loom {
mods { mods {
register(name) { register(name) {
sourceSet(sourceSets.main) sourceSet(sourceSets.main.get())
sourceSet(sourceSets.client) sourceSet(sourceSets.client.get())
} }
if (hasTestmod) { if (hasTestmod) {
register("$name-testmod") { register("$name-testmod") {
sourceSet(sourceSets.testmod) sourceSet(sourceSets.testmod.get())
} }
} }
} }
@ -72,13 +75,13 @@ loom {
client() client()
ideConfigGenerated(rootProject == project) ideConfigGenerated(rootProject == project)
name("Testmod Client") name("Testmod Client")
source(sourceSets.testmod) source(sourceSets.testmod.get())
} }
create("testmodServer") { create("testmodServer") {
server() server()
ideConfigGenerated(rootProject == project) ideConfigGenerated(rootProject == project)
name("Testmod Server") name("Testmod Server")
source(sourceSets.testmod) source(sourceSets.testmod.get())
} }
} }
} }
@ -111,20 +114,20 @@ repositories {
} }
// Mark normal jars as -dev // Mark normal jars as -dev
tasks.jar.archiveClassifier.set("dev") tasks.jar.get().archiveClassifier.set("dev")
// Used for referencing the unremapped jars of other projects // Used for referencing the unremapped jars of other projects
artifacts.add(configurations.create("dev").name, tasks.jar.archiveFile.get().asFile) { artifacts.add(configurations.create("dev").name, tasks.jar.get().archiveFile.get().asFile) {
type = "jar" type = "jar"
builtBy(tasks.jar) builtBy(tasks.jar.get())
} }
// configure the shadow task to not shadow by default and output to builds/devlibs // configure the shadow task to not shadow by default and output to builds/devlibs
tasks.shadowJar { tasks.shadowJar {
val inputTask: Jar = tasks.findByName("injectCompiledConfig") as Jar? ?: tasks.jar // get injectCompiledConfig task if present (-> LibJF) or use normal jar task val inputTask: Jar = tasks.findByName("injectCompiledConfig") as Jar? ?: tasks.jar.get() // get injectCompiledConfig task if present (-> LibJF) or use normal jar task
dependsOn(inputTask) dependsOn(inputTask)
configurations.clear() configurations.clear()
from(project.configurations.shadow, inputTask.archiveFile.get()) from(project.configurations.shadow.get(), inputTask.archiveFile.get())
archiveClassifier.set("shadow") archiveClassifier.set("shadow")
destinationDirectory.set(devlibs) destinationDirectory.set(devlibs)
} }
@ -147,7 +150,7 @@ val remapMavenJar by tasks.registering(RemapJarTask::class) {
archiveFileName.set("${archiveBaseName.get()}-${project.versionS}-maven.jar") archiveFileName.set("${archiveBaseName.get()}-${project.versionS}-maven.jar")
addNestedDependencies.set(false) addNestedDependencies.set(false)
} }
tasks.assemble.dependsOn(remapMavenJar) tasks.assemble.get().dependsOn(remapMavenJar)
// configure remapJar to use the output of shadow // configure remapJar to use the output of shadow
tasks.remapJar { tasks.remapJar {
@ -168,12 +171,12 @@ publishing {
publications { publications {
create<MavenPublication>("lom") { create<MavenPublication>("lom") {
from(components["java"]) from(components["java"])
setArtifacts(listOf(remapMavenJar, tasks.sourcesJar)) setArtifacts(listOf(remapMavenJar, tasks.sourcesJar.get()))
} }
} }
} }
tasks.publish.dependsOn(tasks.build) tasks.publish.get().dependsOn(tasks.build.get())
tasks.deployDebug.dependsOn(tasks.publish) tasks.deployDebug.dependsOn(tasks.publish.get())
// create testmodInclude configuration // create testmodInclude configuration
val testmodIncludeConfiguration = configurations.create("testmodInclude") val testmodIncludeConfiguration = configurations.create("testmodInclude")
@ -181,7 +184,7 @@ val testmodIncludeConfiguration = configurations.create("testmodInclude")
if (hasTestmod) { if (hasTestmod) {
// generate jar from testmod source set // generate jar from testmod source set
val testmodJar by tasks.registering(Jar::class) { val testmodJar by tasks.registering(Jar::class) {
from(sourceSets.testmod.output) from(sourceSets.testmod.get().output)
destinationDirectory.set(devlibs) destinationDirectory.set(devlibs)
archiveClassifier.set("testmod") archiveClassifier.set("testmod")
} }
@ -196,7 +199,7 @@ if (hasTestmod) {
addNestedDependencies.set(true) addNestedDependencies.set(true)
nestedJars.setFrom(*testmodIncludeConfiguration.files.toTypedArray()) nestedJars.setFrom(*testmodIncludeConfiguration.files.toTypedArray())
} }
tasks.assemble.dependsOn(remapTestmodJar) tasks.assemble.get().dependsOn(remapTestmodJar)
} }
} }