Kafkatorio/gradle-plugins/factorio-gradle/build.gradle.kts
Adam 9f2b9cbd5c big ol' refactor of the Gradle Factorio Mod
- handle launching in multiple OSes
- specific tasks for specific mod operations
- extension object for settings
- ground work for multiple mods
2022-12-18 01:41:14 +01:00

64 lines
1.9 KiB
Kotlin

import kafkatorio.conventions.overrideKotlinLanguageVersion
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
id("kafkatorio.conventions.kotlin-dsl")
id("kafkatorio.conventions.kotlin-serialization")
}
dependencies {
implementation(platform(libs.kotlin.bom))
implementation(platform(libs.kotlinx.coroutines.bom))
implementation(libs.kotlinx.coroutines.core)
implementation(platform(libs.kotlinxSerialization.bom))
implementation(libs.kotlinxSerialization.core)
implementation(libs.kotlinxSerialization.json)
implementation(platform(libs.okio.bom))
implementation(libs.okio.core)
implementation(libs.kotlinx.cli)
implementation(platform(libs.ktor.bom))
implementation(libs.ktorClient.auth)
implementation(libs.ktorClient.contentNegotiation)
implementation(libs.ktorClient.core)
implementation(libs.ktorClient.encoding)
implementation(libs.ktorClient.logging)
implementation(libs.ktorClient.cio)
implementation(libs.ktorClient.resources)
implementation(libs.ktorSerialization.kotlinxJson)
implementation("org.jetbrains.kotlin:kotlin-compiler-embeddable:${libs.versions.kotlin.get()}")
}
gradlePlugin {
plugins {
create("factorioMod") {
displayName = "Factorio Mod"
id = "dev.adamko.factorio-mod"
implementationClass = "dev.adamko.gradle.factorio.FactorioModPlugin"
}
}
plugins {
create("factorioModLibrary") {
displayName = "Factorio Mod Library"
id = "dev.adamko.factorio-mod-library"
implementationClass = "dev.adamko.gradle.factorio.FactorioModLibraryPlugin"
}
}
}
overrideKotlinLanguageVersion("1.7") // required for Kotlinx Serialization
tasks.withType<KotlinCompile>().configureEach {
kotlinOptions.freeCompilerArgs += listOf(
"-opt-in=kotlin.RequiresOptIn",
"-opt-in=kotlin.ExperimentalStdlibApi",
"-opt-in=kotlin.time.ExperimentalTime",
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
)
}