155 lines
4.5 KiB
Text
155 lines
4.5 KiB
Text
|
// This is to suppress false warnings generated by a bug in IntelliJ
|
||
|
@file:Suppress("DSL_SCOPE_VIOLATION", "MISSING_DEPENDENCY_CLASS", "FUNCTION_CALL_EXPECTED", "PropertyName")
|
||
|
|
||
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||
|
|
||
|
plugins {
|
||
|
java
|
||
|
`maven-publish`
|
||
|
|
||
|
alias(libs.plugins.kotlin)
|
||
|
alias(libs.plugins.quilt.loom)
|
||
|
}
|
||
|
|
||
|
val archives_base_name: String by project
|
||
|
|
||
|
group = "com.example"
|
||
|
version = project.version.toString()
|
||
|
base.archivesName.set(archives_base_name)
|
||
|
|
||
|
val javaVersion = 17
|
||
|
|
||
|
repositories {
|
||
|
// Add repositories to retrieve artifacts from in here.
|
||
|
// You should only use this when depending on other mods because
|
||
|
// Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
|
||
|
// See https://docs.gradle.org/current/userguide/declaring_repositories.html
|
||
|
// for more information about repositories.
|
||
|
}
|
||
|
|
||
|
// All the dependencies are declared at gradle/libs.version.toml and referenced with "libs.<id>"
|
||
|
// See https://docs.gradle.org/current/userguide/platforms.html for information on how version catalogs work.
|
||
|
dependencies {
|
||
|
minecraft(libs.minecraft)
|
||
|
mappings(
|
||
|
variantOf(libs.quilt.mappings) {
|
||
|
classifier("intermediary-v2")
|
||
|
}
|
||
|
)
|
||
|
|
||
|
// Replace the above line with the block below if you want to use Mojang mappings as your primary mappings, falling back on QM for parameters and Javadocs
|
||
|
/*
|
||
|
mappings(
|
||
|
loom.layered {
|
||
|
mappings(variantOf(libs.quilt.mappings) { classifier("intermediary-v2") })
|
||
|
officialMojangMappings()
|
||
|
}
|
||
|
)
|
||
|
*/
|
||
|
|
||
|
modImplementation(libs.quilt.loader)
|
||
|
|
||
|
|
||
|
// QSL is not a complete API; You will need Quilted Fabric API to fill in the gaps.
|
||
|
// Quilted Fabric API will automatically pull in the correct QSL version.
|
||
|
modImplementation(libs.qfapi)
|
||
|
// modImplementation(libs.bundles.qfapi) // If you wish to use the deprecated Fabric API modules
|
||
|
|
||
|
modImplementation(libs.qkl)
|
||
|
}
|
||
|
|
||
|
tasks {
|
||
|
withType<KotlinCompile> {
|
||
|
kotlinOptions {
|
||
|
jvmTarget = javaVersion.toString()
|
||
|
languageVersion = libs.plugins.kotlin.get().version.strictVersion
|
||
|
incremental = true
|
||
|
}
|
||
|
}
|
||
|
|
||
|
withType<JavaCompile> {
|
||
|
options.encoding = "UTF-8"
|
||
|
options.isDeprecation = true
|
||
|
options.isIncremental = true
|
||
|
options.release.set(javaVersion)
|
||
|
}
|
||
|
|
||
|
processResources {
|
||
|
inputs.property("version", project.version)
|
||
|
|
||
|
filesMatching("quilt.mod.json") {
|
||
|
expand(
|
||
|
mapOf(
|
||
|
"version" to project.version
|
||
|
)
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Change the gradle version here and run `./gradlew wrapper` or `gradle wrapper` to update gradle scripts
|
||
|
// BIN distribution should be sufficient for the majority of mods
|
||
|
wrapper {
|
||
|
gradleVersion = "7.6"
|
||
|
distributionType = Wrapper.DistributionType.BIN
|
||
|
}
|
||
|
|
||
|
remapJar {
|
||
|
dependsOn(remapSourcesJar)
|
||
|
}
|
||
|
|
||
|
jar {
|
||
|
from("LICENSE")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
kotlin {
|
||
|
jvmToolchain(javaVersion)
|
||
|
}
|
||
|
|
||
|
java {
|
||
|
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task if it is present.
|
||
|
// If you remove this line, sources will not be generated.
|
||
|
withSourcesJar()
|
||
|
|
||
|
// If this mod is going to be a library, then it should also generate Javadocs in order to aid with development.
|
||
|
// Uncomment this line to generate them.
|
||
|
// withJavadocJar()
|
||
|
|
||
|
// Still required by IDEs such as Eclipse and VSC
|
||
|
sourceCompatibility = JavaVersion.toVersion(javaVersion)
|
||
|
targetCompatibility = JavaVersion.toVersion(javaVersion)
|
||
|
}
|
||
|
|
||
|
|
||
|
val sourceJar = task("sourceJar", Jar::class) {
|
||
|
dependsOn(tasks["classes"])
|
||
|
archiveClassifier.set("source")
|
||
|
from(sourceSets.main.get().allSource)
|
||
|
}
|
||
|
|
||
|
val javadoc = task("javadocJar", Jar::class) {
|
||
|
archiveClassifier.set("javadoc")
|
||
|
from(tasks.javadoc)
|
||
|
from(tasks.javadoc)
|
||
|
}
|
||
|
|
||
|
|
||
|
// Configure the maven publication
|
||
|
publishing {
|
||
|
publications {
|
||
|
create<MavenPublication>("Maven") {
|
||
|
from(components.getByName("java"))
|
||
|
artifact(javadoc)
|
||
|
artifact(sourceJar)
|
||
|
}
|
||
|
|
||
|
// See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
|
||
|
repositories {
|
||
|
// Add repositories to publish to here.
|
||
|
// Notice: This block does NOT have the same function as the block in the top level.
|
||
|
// The repositories here will be used for publishing your artifact, not for
|
||
|
// retrieving dependencies.
|
||
|
}
|
||
|
}
|
||
|
}
|