Skip to content

Commit ee8ec46

Browse files
Syer10AriaMoradi
andauthored
Improve Gradle Configuration (#478)
* Improve gradle configuration * Formatting fix Co-authored-by: Aria Moradi <aria.moradi007@gmail.com> * Improve asm version lock description Co-authored-by: Aria Moradi <aria.moradi007@gmail.com> * Improve image decoder description Co-authored-by: Aria Moradi <aria.moradi007@gmail.com> Co-authored-by: Aria Moradi <aria.moradi007@gmail.com>
1 parent deecab3 commit ee8ec46

File tree

7 files changed

+299
-139
lines changed

7 files changed

+299
-139
lines changed

AndroidCompat/Config/build.gradle.kts

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
@Suppress("DSL_SCOPE_VIOLATION")
2+
plugins {
3+
id(libs.plugins.kotlin.jvm.get().pluginId)
4+
id(libs.plugins.kotlin.serialization.get().pluginId)
5+
id(libs.plugins.kotlinter.get().pluginId)
6+
}
7+
8+
dependencies {
9+
// Shared
10+
implementation(libs.bundles.shared)
11+
testImplementation(libs.bundles.sharedTest)
12+
}

AndroidCompat/build.gradle.kts

+20-18
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,39 @@
1+
@Suppress("DSL_SCOPE_VIOLATION")
2+
plugins {
3+
id(libs.plugins.kotlin.jvm.get().pluginId)
4+
id(libs.plugins.kotlin.serialization.get().pluginId)
5+
id(libs.plugins.kotlinter.get().pluginId)
6+
}
7+
18
dependencies {
9+
// Shared
10+
implementation(libs.bundles.shared)
11+
testImplementation(libs.bundles.sharedTest)
12+
213
// Android stub library
3-
implementation("com.github.Suwayomi:android-jar:1.0.0")
14+
implementation(libs.android.stubs)
415

516
// XML
6-
compileOnly("xmlpull:xmlpull:1.1.3.4a")
17+
compileOnly(libs.xmlpull)
718

819
// Config API
9-
implementation(project(":AndroidCompat:Config"))
20+
implementation(projects.androidCompat.config)
1021

1122
// APK sig verifier
12-
compileOnly("com.android.tools.build:apksig:7.2.1")
23+
compileOnly(libs.apksig)
1324

1425
// AndroidX annotations
15-
compileOnly("androidx.annotation:annotation:1.5.0")
26+
compileOnly(libs.android.annotations)
1627

1728
// substitute for duktape-android
18-
implementation("org.mozilla:rhino-runtime:1.7.14") // slimmer version of 'org.mozilla:rhino'
19-
implementation("org.mozilla:rhino-engine:1.7.14") // provides the same interface as 'javax.script' a.k.a Nashorn
29+
implementation(libs.bundles.rhino)
2030

2131
// Kotlin wrapper around Java Preferences, makes certain things easier
22-
val multiplatformSettingsVersion = "1.0.0-RC"
23-
implementation("com.russhwolf:multiplatform-settings-jvm:$multiplatformSettingsVersion")
24-
implementation("com.russhwolf:multiplatform-settings-serialization-jvm:$multiplatformSettingsVersion")
32+
implementation(libs.bundles.settings)
2533

2634
// Android version of SimpleDateFormat
27-
implementation("com.ibm.icu:icu4j:72.1")
35+
implementation(libs.icu4j)
2836

2937
// OpenJDK lacks native JPEG encoder and native WEBP decoder
30-
implementation("com.twelvemonkeys.common:common-lang:3.9.4")
31-
implementation("com.twelvemonkeys.common:common-io:3.9.4")
32-
implementation("com.twelvemonkeys.common:common-image:3.9.4")
33-
implementation("com.twelvemonkeys.imageio:imageio-core:3.9.4")
34-
implementation("com.twelvemonkeys.imageio:imageio-metadata:3.9.4")
35-
implementation("com.twelvemonkeys.imageio:imageio-jpeg:3.4.1")
36-
implementation("com.twelvemonkeys.imageio:imageio-webp:3.9.4")
38+
implementation(libs.bundles.twelvemonkeys)
3739
}

build.gradle.kts

+15-76
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
1+
import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
22
import org.jmailen.gradle.kotlinter.tasks.FormatTask
33
import org.jmailen.gradle.kotlinter.tasks.LintTask
44

5+
@Suppress("DSL_SCOPE_VIOLATION")
56
plugins {
6-
kotlin("jvm") version kotlinVersion
7-
kotlin("plugin.serialization") version kotlinVersion
8-
id("org.jmailen.kotlinter") version "3.12.0"
9-
id("com.github.gmazzo.buildconfig") version "3.1.0" apply false
10-
id("de.undercouch.download") version "5.3.0"
7+
alias(libs.plugins.kotlin.jvm)
8+
alias(libs.plugins.kotlin.serialization)
9+
alias(libs.plugins.kotlinter)
10+
alias(libs.plugins.buildconfig) apply false
11+
alias(libs.plugins.download)
1112
}
1213

1314
allprojects {
@@ -23,25 +24,17 @@ allprojects {
2324
}
2425
}
2526

26-
val projects = listOf(
27-
project(":AndroidCompat"),
28-
project(":AndroidCompat:Config"),
29-
project(":server")
30-
)
31-
32-
configure(projects) {
33-
apply(plugin = "org.jetbrains.kotlin.jvm")
34-
apply(plugin = "org.jetbrains.kotlin.plugin.serialization")
35-
apply(plugin = "org.jmailen.kotlinter")
36-
37-
java {
38-
sourceCompatibility = JavaVersion.VERSION_1_8
39-
targetCompatibility = JavaVersion.VERSION_1_8
27+
subprojects {
28+
plugins.withType<JavaPlugin> {
29+
extensions.configure<JavaPluginExtension> {
30+
sourceCompatibility = JavaVersion.VERSION_1_8
31+
targetCompatibility = JavaVersion.VERSION_1_8
32+
}
4033
}
4134

4235
tasks {
43-
withType<KotlinCompile> {
44-
dependsOn(formatKotlin)
36+
withType<KotlinJvmCompile> {
37+
dependsOn("formatKotlin")
4538
kotlinOptions {
4639
jvmTarget = JavaVersion.VERSION_1_8.toString()
4740
}
@@ -55,58 +48,4 @@ configure(projects) {
5548
source(files("src/kotlin"))
5649
}
5750
}
58-
59-
60-
dependencies {
61-
// Kotlin
62-
implementation(kotlin("stdlib-jdk8"))
63-
implementation(kotlin("reflect"))
64-
testImplementation(kotlin("test-junit5"))
65-
66-
// coroutines
67-
val coroutinesVersion = "1.6.4"
68-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
69-
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:$coroutinesVersion")
70-
testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutinesVersion")
71-
72-
val kotlinSerializationVersion = "1.4.1"
73-
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:$kotlinSerializationVersion")
74-
implementation("org.jetbrains.kotlinx:kotlinx-serialization-protobuf:$kotlinSerializationVersion")
75-
76-
// Dependency Injection
77-
implementation("org.kodein.di:kodein-di-conf-jvm:7.15.0")
78-
79-
// Logging
80-
// Stuck on old versions since
81-
// 1. Logback 1.3.0+ requires Java 9
82-
// 2. Slf4j 2.0.0+ doesn't register older versions of Logback
83-
// 3. Kotlin-logging 3.0.2+ requires Java 11, but this is probably a bug
84-
implementation("org.slf4j:slf4j-api:1.7.32")
85-
implementation("ch.qos.logback:logback-classic:1.2.6")
86-
implementation("io.github.microutils:kotlin-logging:2.1.21")
87-
88-
// ReactiveX
89-
implementation("io.reactivex:rxjava:1.3.8")
90-
91-
// dependency both in AndroidCompat and extensions, version locked by Tachiyomi app/extensions
92-
implementation("org.jsoup:jsoup:1.15.3")
93-
94-
// dependency of :AndroidCompat:Config
95-
implementation("com.typesafe:config:1.4.2")
96-
implementation("io.github.config4k:config4k:0.5.0")
97-
98-
// to get application content root
99-
implementation("net.harawata:appdirs:1.2.1")
100-
101-
// dex2jar
102-
val dex2jarVersion = "v56"
103-
implementation("com.github.ThexXTURBOXx.dex2jar:dex-translator:$dex2jarVersion")
104-
implementation("com.github.ThexXTURBOXx.dex2jar:dex-tools:$dex2jarVersion")
105-
106-
// APK parser
107-
implementation("net.dongliu:apk-parser:2.6.10")
108-
109-
// dependency both in AndroidCompat and server, version locked by javalin
110-
implementation("com.fasterxml.jackson.core:jackson-annotations:2.12.4")
111-
}
11251
}

buildSrc/src/main/kotlin/Constants.kt

-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import java.io.BufferedReader
77
* License, v. 2.0. If a copy of the MPL was not distributed with this
88
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
99

10-
const val kotlinVersion = "1.7.20"
11-
1210
const val MainClass = "suwayomi.tachidesk.MainKt"
1311

1412
// should be bumped with each stable release

0 commit comments

Comments
 (0)