Migrate from GradleExt to SharedProps and LomExt

This commit is contained in:
Johannes Frohnmeyer 2022-10-13 20:36:58 +02:00
parent 03a9d42d9b
commit dd973d64cd
Signed by: Johannes
GPG Key ID: E76429612C2929F4
4 changed files with 16 additions and 37 deletions

View File

@ -22,4 +22,8 @@ var Project.changelog: String
set(value) = extra.set("changelog", value)
val TaskContainer.deployDebug: Task get() = findByName("deployDebug") ?: register("deployDebug").get().dependsOn(named<DefaultTask>("build").get())
val TaskContainer.deployRelease: Task get() = findByName("deployRelease") ?: register("deployRelease").get().dependsOn(deployDebug)
val TaskContainer.deployRelease: Task get() = findByName("deployRelease") ?: register("deployRelease").get().dependsOn(deployDebug)
fun Project.prop(name: String, default: String? = null): String =
if (default == null || hasProperty(name)) property(name).toString()
else default

View File

@ -1,29 +0,0 @@
package io.gitlab.jfronny.scripts
import org.gradle.api.PolymorphicDomainObjectContainer
import org.gradle.api.Project
import org.gradle.api.artifacts.Dependency
import org.gradle.api.artifacts.dsl.DependencyHandler
import org.gradle.api.tasks.TaskContainer
import org.gradle.api.tasks.bundling.Jar
import org.gradle.kotlin.dsl.named
import kotlin.reflect.KClass
import kotlin.reflect.KProperty
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)
class PDelegate<T : Any, C : PolymorphicDomainObjectContainer<T>, U : T>(private val container: C, private val type: Class<U>, private val action: U.() -> Unit) {
operator fun provideDelegate(thisRef: Any?, property: KProperty<*>): SDelegate<U> = SDelegate(container.register(property.name, type, action).get())
}
class SDelegate<T>(private val delegate: T) {
operator fun getValue(thisRef: Any?, property: KProperty<*>): T = delegate
}
fun Project.prop(name: String, default: String? = null): String =
if (default == null || hasProperty(name)) property(name).toString()
else default
fun DependencyHandler.devProject(path: String): Dependency = project(mapOf("path" to path, "configuration" to "dev"))

View File

@ -2,10 +2,12 @@ package io.gitlab.jfronny.scripts
import net.fabricmc.loom.task.UnpickJarTask
import org.gradle.api.DefaultTask
import org.gradle.api.artifacts.Dependency
import org.gradle.api.artifacts.dsl.DependencyHandler
import org.gradle.api.tasks.SourceSet
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
fun DependencyHandler.testmodImplementation(dependencyNotation: Any) = add("testmodImplementation", dependencyNotation)
@ -17,4 +19,7 @@ val SourceSetContainer.testmod get() = named<SourceSet>("testmod")
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")
val TaskContainer.unpickCommonJar get() = named<UnpickJarTask>("unpickCommonJar")
val TaskContainer.sourcesJar get() = named<Jar>("sourcesJar")
fun DependencyHandler.devProject(path: String): Dependency = project(mapOf("path" to path, "configuration" to "dev"))

View File

@ -1,5 +1,4 @@
import io.gitlab.jfronny.scripts.*
import io.gitlab.jfronny.scripts.registering
import net.fabricmc.loom.task.PrepareJarRemapTask
import net.fabricmc.loom.task.RemapJarTask
import org.gradle.api.publish.maven.MavenPublication
@ -149,7 +148,7 @@ val remapMavenJar by tasks.registering(RemapJarTask::class) {
archiveFileName.set("${archiveBaseName.get()}-${project.versionS}-maven.jar")
addNestedDependencies.set(false)
}
tasks.assemble.get().dependsOn(remapMavenJar)
tasks.assemble.get().dependsOn(remapMavenJar.get())
// configure remapJar to use the output of shadow
tasks.remapJar {
@ -170,7 +169,7 @@ publishing {
publications {
create<MavenPublication>("lom") {
from(components["java"])
setArtifacts(listOf(remapMavenJar, tasks.sourcesJar.get()))
setArtifacts(listOf(remapMavenJar.get(), tasks.sourcesJar.get()))
}
}
}
@ -191,14 +190,14 @@ if (hasTestmod) {
afterEvaluate {
// remap configuration for outputting usable testmod jar
val remapTestmodJar by tasks.registering(RemapJarTask::class) {
dependsOn(testmodJar)
inputFile.set(testmodJar.archiveFile.get())
dependsOn(testmodJar.get())
inputFile.set(testmodJar.get().archiveFile.get())
archiveClassifier.set("testmod")
// add nested jars from testmodInclude
addNestedDependencies.set(true)
nestedJars.setFrom(*testmodIncludeConfiguration.files.toTypedArray())
}
tasks.assemble.get().dependsOn(remapTestmodJar)
tasks.assemble.get().dependsOn(remapTestmodJar.get())
}
}