import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jmailen.gradle.kotlinter.tasks.FormatTask import org.jmailen.gradle.kotlinter.tasks.LintTask plugins { kotlin("jvm") version kotlinVersion kotlin("plugin.serialization") version kotlinVersion id("org.jmailen.kotlinter") version "3.6.0" id("com.github.gmazzo.buildconfig") version "3.0.3" apply false } allprojects { group = "suwayomi" version = "1.0" repositories { mavenCentral() google() maven("https://jitpack.io") } } val projects = listOf( project(":AndroidCompat"), project(":AndroidCompat:Config"), project(":server") ) configure(projects) { apply(plugin = "org.jetbrains.kotlin.jvm") apply(plugin = "org.jetbrains.kotlin.plugin.serialization") apply(plugin = "org.jmailen.kotlinter") java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } tasks { withType { dependsOn(formatKotlin) kotlinOptions { jvmTarget = JavaVersion.VERSION_1_8.toString() freeCompilerArgs = listOf( "-Xopt-in=kotlin.RequiresOptIn", "-Xopt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", "-Xopt-in=kotlinx.coroutines.InternalCoroutinesApi", "-Xopt-in=kotlinx.serialization.ExperimentalSerializationApi", ) } } withType { source(files("src/kotlin")) } withType { source(files("src/kotlin")) } } dependencies { // Kotlin implementation(kotlin("stdlib-jdk8")) implementation(kotlin("reflect")) testImplementation(kotlin("test-junit5")) // coroutines val coroutinesVersion = "1.5.2" implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:$coroutinesVersion") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutinesVersion") val kotlinSerializationVersion = "1.3.0-RC" implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinSerializationVersion") implementation("org.jetbrains.kotlinx:kotlinx-serialization-protobuf:$kotlinSerializationVersion") // Dependency Injection implementation("org.kodein.di:kodein-di-conf-jvm:7.8.0") // Logging implementation("org.slf4j:slf4j-api:1.7.32") implementation("ch.qos.logback:logback-classic:1.2.6") implementation("io.github.microutils:kotlin-logging:2.0.11") // ReactiveX implementation("io.reactivex:rxjava:1.3.8") implementation("io.reactivex:rxkotlin:1.0.0") implementation("com.jakewharton.rxrelay:rxrelay:1.2.0") // dependency both in AndroidCompat and extensions, version locked by Tachiyomi app/extensions implementation("org.jsoup:jsoup:1.14.2") // dependency of :AndroidCompat:Config implementation("com.typesafe:config:1.4.1") implementation("io.github.config4k:config4k:0.4.2") // to get application content root implementation("net.harawata:appdirs:1.2.1") // dex2jar val dex2jarVersion = "v26" implementation("com.github.ThexXTURBOXx.dex2jar:dex-translator:$dex2jarVersion") implementation("com.github.ThexXTURBOXx.dex2jar:dex-tools:$dex2jarVersion") // APK parser implementation("net.dongliu:apk-parser:2.6.10") // dependency both in AndroidCompat and server, version locked by javalin implementation("com.fasterxml.jackson.core:jackson-annotations:2.12.4") } }