Kafkatorio/gradle-plugins/factorio-gradle/build.gradle.kts

55 lines
1.6 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)
}
gradlePlugin {
plugins {
create("factorioMod") {
displayName = "Factorio Mod"
id = "dev.adamko.factorio-mod"
implementationClass = "dev.adamko.gradle.factorio.FactorioModPlugin"
}
}
}
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",
)
}