import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("fabric-loom")
kotlin("jvm")
}
base.archivesName = project.extra["archives_base_name"] as String
version = project.extra["mod_version"] as String
group = project.extra["maven_group"] as String
sourceSets.main { java.srcDirs("src/main/generatedJava") }
repositories {
maven("https://maven.wispforest.io/releases/")
}
dependencies {
minecraft("com.mojang", "minecraft", project.extra["minecraft_version"] as String)
mappings("net.fabricmc", "yarn", project.extra["yarn_mappings"] as String, null, "v2")
modImplementation("net.fabricmc", "fabric-loader", project.extra["loader_version"] as String)
modImplementation("net.fabricmc.fabric-api", "fabric-api", project.extra["fabric_version"] as String)
modImplementation("net.fabricmc", "fabric-language-kotlin", project.extra["fabric_language_kotlin_version"] as String)
annotationProcessor(modImplementation("io.wispforest", "owo-lib", project.extra["owo_version"] as String))
include("io.wispforest", "owo-sentinel", project.extra["owo_version"] as String)
}
tasks {
val javaVersion = JavaVersion.toVersion((project.extra["java_version"] as String).toInt())
withType<JavaCompile>().configureEach {
options.encoding = "UTF-8"
sourceCompatibility = javaVersion.toString()
targetCompatibility = javaVersion.toString()
options.release = javaVersion.toString().toInt()
}
withType<JavaExec>().configureEach { defaultCharacterEncoding = "UTF-8" }
withType<Javadoc>().configureEach { options.encoding = "UTF-8" }
withType<Test>().configureEach { defaultCharacterEncoding = "UTF-8" }
withType<KotlinCompile>().configureEach { compilerOptions.jvmTarget = JvmTarget.valueOf("JVM_$javaVersion") }
compileJava { options.generatedSourceOutputDirectory.set(file("$projectDir/src/main/generatedJava/com/smushytaco/solar_apocalypse/configuration_support")) }
jar { from("LICENSE") { rename { "${it}_${base.archivesName.get()}" } } }
processResources {
filesMatching("fabric.mod.json") { expand(mutableMapOf("version" to project.extra["mod_version"] as String, "fabricloader" to project.extra["loader_version"] as String, "fabric_api" to project.extra["fabric_version"] as String, "fabric_language_kotlin" to project.extra["fabric_language_kotlin_version"] as String, "minecraft" to project.extra["minecraft_version"] as String, "java" to project.extra["java_version"] as String)) }
filesMatching("*.mixins.json") { expand(mutableMapOf("java" to project.extra["java_version"] as String)) }
}
java {
toolchain.languageVersion = JavaLanguageVersion.of(javaVersion.toString())
sourceCompatibility = javaVersion
targetCompatibility = javaVersion
withSourcesJar()
}
val sourcesJar by getting(Jar::class) { dependsOn(compileJava) }
}
Comments