diff --git a/AndroidCompat/build.gradle.kts b/AndroidCompat/build.gradle.kts index c7f80f17..55ce64d9 100644 --- a/AndroidCompat/build.gradle.kts +++ b/AndroidCompat/build.gradle.kts @@ -1,68 +1,28 @@ - -plugins { - application - kotlin("plugin.serialization") -} - - -repositories { - mavenCentral() - maven { - url = uri("https://jitpack.io") - } - - maven { - url = uri("https://maven.google.com") - } -} - dependencies { // Android stub library implementation(fileTree("lib/")) - // JSON - compileOnly("com.google.code.gson:gson:2.8.6") - // XML - compileOnly(group= "xmlpull", name= "xmlpull", version= "1.1.3.1") + compileOnly("xmlpull:xmlpull:1.1.3.4a") // Config API implementation(project(":AndroidCompat:Config")) // APK sig verifier - compileOnly("com.android.tools.build:apksig:4.2.0-alpha13") + compileOnly("com.android.tools.build:apksig:7.1.0-alpha12") // AndroidX annotations - compileOnly("androidx.annotation:annotation:1.2.0-alpha01") + compileOnly("androidx.annotation:annotation:1.2.0") // substitute for duktape-android implementation("org.mozilla:rhino-runtime:1.7.13") // slimmer version of 'org.mozilla:rhino' implementation("org.mozilla:rhino-engine:1.7.13") // provides the same interface as 'javax.script' a.k.a Nashorn // Kotlin wrapper around Java Preferences, makes certain things easier - val multiplatformSettingsVersion = "0.7.7" + val multiplatformSettingsVersion = "0.8" implementation("com.russhwolf:multiplatform-settings-jvm:$multiplatformSettingsVersion") implementation("com.russhwolf:multiplatform-settings-serialization-jvm:$multiplatformSettingsVersion") // Android version of SimpleDateFormat implementation("com.ibm.icu:icu4j:69.1") } - -tasks { - withType { - kotlinOptions.freeCompilerArgs = listOf("-Xopt-in=kotlin.RequiresOptIn") - } -} - -//def fatJarTask = tasks.getByPath(':AndroidCompat:JVMPatch:fatJar') -// -//// Copy JVM core patches -//task copyJVMPatches(type: Copy) { -// from fatJarTask.outputs.files -// into 'src/main/resources/patches' -//} -// -//compileOnly(Java.dependsOn gradle.includedBuild('dex2jar').task(':dex-translator:assemble') -//compileOnly(Java.dependsOn copyJVMPatches -//copyJVMPatches.dependsOn fatJarTask -// diff --git a/build.gradle.kts b/build.gradle.kts index e47ed1e1..c3d4819e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,8 +1,11 @@ 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" } allprojects { @@ -12,10 +15,8 @@ allprojects { repositories { mavenCentral() - maven("https://maven.google.com/") + google() maven("https://jitpack.io") - maven("https://oss.sonatype.org/content/repositories/snapshots/") - maven("https://dl.google.com/dl/android/maven2/") } } @@ -27,18 +28,36 @@ val projects = listOf( configure(projects) { apply(plugin = "org.jetbrains.kotlin.jvm") + apply(plugin = "org.jetbrains.kotlin.plugin.serialization") java { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } - tasks.withType { - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8.toString() + tasks { + withType { + 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")) @@ -46,7 +65,7 @@ configure(projects) { testImplementation(kotlin("test-junit5")) // coroutines - val coroutinesVersion = "1.5.1" + 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") @@ -55,14 +74,13 @@ configure(projects) { 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.7.0") + implementation("org.kodein.di:kodein-di-conf-jvm:7.8.0") // Logging - implementation("org.slf4j:slf4j-api:1.7.30") - implementation("ch.qos.logback:logback-classic:1.2.3") - implementation("io.github.microutils:kotlin-logging:2.0.6") + 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") @@ -70,7 +88,7 @@ configure(projects) { 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.1") + implementation("org.jsoup:jsoup:1.14.2") // dependency of :AndroidCompat:Config implementation("com.typesafe:config:1.4.1") @@ -87,7 +105,6 @@ configure(projects) { // 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") } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index af7be50b..a0f7639f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/server/build.gradle.kts b/server/build.gradle.kts index d7fb06db..357de611 100644 --- a/server/build.gradle.kts +++ b/server/build.gradle.kts @@ -1,25 +1,11 @@ - import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -import org.jmailen.gradle.kotlinter.tasks.FormatTask -import org.jmailen.gradle.kotlinter.tasks.LintTask +import de.undercouch.gradle.tasks.download.Download import java.time.Instant plugins { application - kotlin("plugin.serialization") id("com.github.johnrengelman.shadow") version "7.0.0" - id("org.jmailen.kotlinter") version "3.6.0" - id("com.github.gmazzo.buildconfig") version "3.0.2" -} - -repositories { - maven { - url = uri("https://repo1.maven.org/maven2/") - } - maven { - url = uri("https://jitpack.io") - } + id("com.github.gmazzo.buildconfig") version "3.0.3" } dependencies { @@ -33,8 +19,9 @@ dependencies { // Javalin api implementation("io.javalin:javalin:4.0.0") // jackson version locked by javalin, ref: `io.javalin.core.util.OptionalDependency` - implementation("com.fasterxml.jackson.core:jackson-databind:2.12.4") - implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.12.4") + val jacksonVersion = "2.12.4" + implementation("com.fasterxml.jackson.core:jackson-databind:$jacksonVersion") + implementation("com.fasterxml.jackson.module:jackson-module-kotlin:$jacksonVersion") // Exposed ORM val exposedVersion = "0.34.1" @@ -46,8 +33,7 @@ dependencies { implementation("com.h2database:h2:1.4.200") // Exposed Migrations - val exposedMigrationsVersion = "3.1.2" - implementation("com.github.Suwayomi:exposed-migrations:$exposedMigrationsVersion") + implementation("com.github.Suwayomi:exposed-migrations:3.1.2") // tray icon implementation("com.dorkbox:SystemTray:4.1") @@ -57,8 +43,8 @@ dependencies { implementation("com.github.inorichi.injekt:injekt-core:65b0440") implementation("com.squareup.okhttp3:okhttp:4.9.1") implementation("io.reactivex:rxjava:1.3.8") - implementation("org.jsoup:jsoup:1.14.1") - implementation("com.google.code.gson:gson:2.8.7") + implementation("org.jsoup:jsoup:1.14.2") + implementation("com.google.code.gson:gson:2.8.8") implementation("com.github.salomonbrys.kotson:kotson:2.5.0") // Sort @@ -131,29 +117,17 @@ tasks { shadowJar { manifest { attributes( - mapOf( - "Main-Class" to MainClass, - "Implementation-Title" to rootProject.name, - "Implementation-Vendor" to "The Suwayomi Project", - "Specification-Version" to tachideskVersion, - "Implementation-Version" to tachideskRevision - ) + "Main-Class" to MainClass, + "Implementation-Title" to rootProject.name, + "Implementation-Vendor" to "The Suwayomi Project", + "Specification-Version" to tachideskVersion, + "Implementation-Version" to tachideskRevision ) } archiveBaseName.set(rootProject.name) archiveVersion.set(tachideskVersion) archiveClassifier.set(tachideskRevision) } - withType { - kotlinOptions { - freeCompilerArgs = listOf( - "-Xopt-in=kotlin.RequiresOptIn", - "-Xopt-in=kotlinx.coroutines.ExperimentalCoroutinesApi", - "-Xopt-in=kotlinx.coroutines.InternalCoroutinesApi", - "-Xopt-in=kotlinx.serialization.ExperimentalSerializationApi", - ) - } - } test { useJUnit() @@ -172,7 +146,7 @@ tasks { mustRunAfter("downloadWebUI") } - register("downloadWebUI") { + register("downloadWebUI") { src("https://github.com/Suwayomi/Tachidesk-WebUI-preview/releases/download/$webUIRevisionTag/Tachidesk-WebUI-$webUIRevisionTag.zip") dest("src/main/resources/WebUI.zip") @@ -187,8 +161,9 @@ tasks { it.readText().trim() } - if (zipRevision == webUIRevisionTag) + if (zipRevision == webUIRevisionTag) { shouldOverwrite = false + } } return shouldOverwrite @@ -196,12 +171,4 @@ tasks { overwrite(shouldOverwrite()) } - - withType { - source(files("src/kotlin")) - } - - withType { - source(files("src/kotlin")) - } }