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) }
}
afterEvaluate {
uploadTask.dependsOn(tasks.build)
uploadTask.dependsOn(tasks.build.get())
}
}
options {

View File

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

View File

@ -1,36 +1,16 @@
package io.gitlab.jfronny.scripts
import org.gradle.api.Action
import org.gradle.api.DefaultTask
import org.gradle.api.PolymorphicDomainObjectContainer
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.artifacts.Dependency
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.bundling.Jar
import org.gradle.kotlin.dsl.named
import org.gradle.language.jvm.tasks.ProcessResources
import kotlin.reflect.KClass
import kotlin.reflect.KProperty
val Project.java: JavaPluginExtension get() = extensions.getByName("java") as JavaPluginExtension
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)
val TaskContainer.sourcesJar get() = named<Jar>("sourcesJar")
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
import net.fabricmc.loom.LoomGradleExtension
import net.fabricmc.loom.api.LoomGradleExtensionAPI
import net.fabricmc.loom.task.RemapJarTask
import net.fabricmc.loom.task.RemapSourcesJarTask
import net.fabricmc.loom.task.UnpickJarTask
import org.gradle.api.Action
import org.gradle.api.DefaultTask
@ -13,7 +13,7 @@ import org.gradle.api.tasks.SourceSetContainer
import org.gradle.api.tasks.TaskContainer
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 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.clientImplementation(dependencyNotation: Any) = add("clientImplementation", dependencyNotation)
val SourceSetContainer.main: SourceSet get() = named("main").get()
fun SourceSetContainer.main(configure: Action<SourceSet>) = configure.execute(this.main)
val SourceSetContainer.client: SourceSet get() = named("client").get()
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)
val SourceSetContainer.main get() = named<SourceSet>("main")
val SourceSetContainer.client get() = named<SourceSet>("client")
val SourceSetContainer.testmod get() = named<SourceSet>("testmod")
fun TaskContainer.remapJar(configure: RemapJarTask.() -> Unit) = named<RemapJarTask>("remapJar").configure(configure)
val TaskContainer.remapSourcesJar: RemapSourcesJarTask get() = named<RemapSourcesJarTask>("remapSourcesJar").get()
val TaskContainer.genClientOnlySources: DefaultTask get() = named<DefaultTask>("genClientOnlySources").get()
val TaskContainer.genCommonSources: DefaultTask get() = named<DefaultTask>("genCommonSources").get()
val TaskContainer.unpickClientOnlyJar: UnpickJarTask get() = named<UnpickJarTask>("unpickClientOnlyJar").get()
val TaskContainer.unpickCommonJar: UnpickJarTask get() = named<UnpickJarTask>("unpickCommonJar").get()
val TaskContainer.genClientOnlySources get() = named<DefaultTask>("genClientOnlySources")
val TaskContainer.genCommonSources get() = named<DefaultTask>("genCommonSources")
val TaskContainer.unpickClientOnlyJar get() = named<UnpickJarTask>("unpickClientOnlyJar")
val TaskContainer.unpickCommonJar get() = named<UnpickJarTask>("unpickCommonJar")

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 java.io.File
plugins {
idea
`java-library`
`maven-publish`
id("com.github.johnrengelman.shadow")
}
val devlibs = File(project.buildDir, "devlibs")
val args = extensions.create<LomExtension>("lom")
@ -21,17 +28,13 @@ afterEvaluate {
else loom.officialMojangMappings()
modImplementation("net.fabricmc:fabric-loader:${args.loaderVersion.get()}")
testmodImplementation(sourceSets.main.output)
testmodImplementation(sourceSets.client.output)
testmodImplementation(sourceSets.main.get().output)
testmodImplementation(sourceSets.client.get().output)
}
}
// Apply necessary plugins
apply(plugin = "idea")
apply(plugin = "java-library")
// Apply loom manually to ensure the afterEvaluate block above is done before looms are called
apply(plugin = "fabric-loom")
apply(plugin = "maven-publish")
apply(plugin = "com.github.johnrengelman.shadow")
// Configure loom for stricter dev env
loom {
@ -42,26 +45,26 @@ loom {
// Create testmod source set with access to main and client classpaths
sourceSets {
create("testmod") {
compileClasspath += sourceSets.main.compileClasspath
runtimeClasspath += sourceSets.main.runtimeClasspath
compileClasspath += sourceSets.main.get().compileClasspath
runtimeClasspath += sourceSets.main.get().runtimeClasspath
compileClasspath += sourceSets.client.compileClasspath
runtimeClasspath += sourceSets.client.runtimeClasspath
compileClasspath += sourceSets.client.get().compileClasspath
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)
loom {
mods {
register(name) {
sourceSet(sourceSets.main)
sourceSet(sourceSets.client)
sourceSet(sourceSets.main.get())
sourceSet(sourceSets.client.get())
}
if (hasTestmod) {
register("$name-testmod") {
sourceSet(sourceSets.testmod)
sourceSet(sourceSets.testmod.get())
}
}
}
@ -72,13 +75,13 @@ loom {
client()
ideConfigGenerated(rootProject == project)
name("Testmod Client")
source(sourceSets.testmod)
source(sourceSets.testmod.get())
}
create("testmodServer") {
server()
ideConfigGenerated(rootProject == project)
name("Testmod Server")
source(sourceSets.testmod)
source(sourceSets.testmod.get())
}
}
}
@ -111,20 +114,20 @@ repositories {
}
// 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
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"
builtBy(tasks.jar)
builtBy(tasks.jar.get())
}
// configure the shadow task to not shadow by default and output to builds/devlibs
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)
configurations.clear()
from(project.configurations.shadow, inputTask.archiveFile.get())
from(project.configurations.shadow.get(), inputTask.archiveFile.get())
archiveClassifier.set("shadow")
destinationDirectory.set(devlibs)
}
@ -147,7 +150,7 @@ val remapMavenJar by tasks.registering(RemapJarTask::class) {
archiveFileName.set("${archiveBaseName.get()}-${project.versionS}-maven.jar")
addNestedDependencies.set(false)
}
tasks.assemble.dependsOn(remapMavenJar)
tasks.assemble.get().dependsOn(remapMavenJar)
// configure remapJar to use the output of shadow
tasks.remapJar {
@ -168,12 +171,12 @@ publishing {
publications {
create<MavenPublication>("lom") {
from(components["java"])
setArtifacts(listOf(remapMavenJar, tasks.sourcesJar))
setArtifacts(listOf(remapMavenJar, tasks.sourcesJar.get()))
}
}
}
tasks.publish.dependsOn(tasks.build)
tasks.deployDebug.dependsOn(tasks.publish)
tasks.publish.get().dependsOn(tasks.build.get())
tasks.deployDebug.dependsOn(tasks.publish.get())
// create testmodInclude configuration
val testmodIncludeConfiguration = configurations.create("testmodInclude")
@ -181,7 +184,7 @@ val testmodIncludeConfiguration = configurations.create("testmodInclude")
if (hasTestmod) {
// generate jar from testmod source set
val testmodJar by tasks.registering(Jar::class) {
from(sourceSets.testmod.output)
from(sourceSets.testmod.get().output)
destinationDirectory.set(devlibs)
archiveClassifier.set("testmod")
}
@ -196,7 +199,7 @@ if (hasTestmod) {
addNestedDependencies.set(true)
nestedJars.setFrom(*testmodIncludeConfiguration.files.toTypedArray())
}
tasks.assemble.dependsOn(remapTestmodJar)
tasks.assemble.get().dependsOn(remapTestmodJar)
}
}