2024-01-15 19:38:53 +01:00
|
|
|
apply plugin: 'com.android.application'
|
|
|
|
apply plugin: 'kotlin-android'
|
|
|
|
apply plugin: 'kotlinx-serialization'
|
2024-01-08 23:12:39 +01:00
|
|
|
apply plugin: 'org.jmailen.kotlinter'
|
|
|
|
|
2024-01-30 15:33:54 +01:00
|
|
|
assert !ext.has("pkgNameSuffix")
|
|
|
|
assert !ext.has("libVersion")
|
|
|
|
|
2024-02-02 23:07:51 +01:00
|
|
|
assert extName.chars().max().asInt < 0x180 : "Extension name should be romanized"
|
|
|
|
|
2024-02-13 15:16:14 +01:00
|
|
|
Project theme = ext.has("themePkg") ? project(":lib-multisrc:$themePkg") : null
|
|
|
|
|
2024-01-08 23:12:39 +01:00
|
|
|
android {
|
2024-01-29 07:12:08 +01:00
|
|
|
compileSdk AndroidConfig.compileSdk
|
2024-01-08 23:12:39 +01:00
|
|
|
|
|
|
|
namespace "eu.kanade.tachiyomi.extension"
|
|
|
|
sourceSets {
|
|
|
|
main {
|
|
|
|
manifest.srcFile "AndroidManifest.xml"
|
|
|
|
java.srcDirs = ['src']
|
|
|
|
res.srcDirs = ['res']
|
|
|
|
assets.srcDirs = ['assets']
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
defaultConfig {
|
2024-01-29 07:12:08 +01:00
|
|
|
minSdk AndroidConfig.minSdk
|
|
|
|
targetSdk AndroidConfig.targetSdk
|
2024-01-16 02:35:29 +01:00
|
|
|
applicationIdSuffix project.parent.name + "." + project.name
|
2024-02-13 15:16:14 +01:00
|
|
|
versionCode theme == null ? extVersionCode : theme.baseVersionCode + overrideVersionCode
|
2024-01-30 15:33:54 +01:00
|
|
|
versionName "1.4.$versionCode"
|
2024-01-15 08:53:42 +01:00
|
|
|
base {
|
2024-01-16 02:35:29 +01:00
|
|
|
archivesName = "tachiyomi-$applicationIdSuffix-v$versionName"
|
2024-01-15 08:53:42 +01:00
|
|
|
}
|
2024-01-30 15:33:54 +01:00
|
|
|
assert extClass.startsWith(".")
|
2024-01-08 23:12:39 +01:00
|
|
|
manifestPlaceholders = [
|
|
|
|
appName : "Tachiyomi: $extName",
|
|
|
|
extClass: extClass,
|
2024-02-13 15:16:14 +01:00
|
|
|
nsfw : project.ext.find("isNsfw") ? 1 : 0,
|
2024-01-08 23:12:39 +01:00
|
|
|
]
|
2024-02-13 15:16:14 +01:00
|
|
|
String baseUrl = project.ext.find("baseUrl") ?: ""
|
|
|
|
if (theme != null && !baseUrl.isEmpty()) {
|
|
|
|
def split = baseUrl.split("://")
|
|
|
|
assert split.length == 2
|
|
|
|
def path = split[1].split("/")
|
|
|
|
manifestPlaceholders += [
|
|
|
|
SOURCEHOST : path[0],
|
|
|
|
SOURCESCHEME: split[0],
|
|
|
|
]
|
|
|
|
}
|
2024-01-08 23:12:39 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
signingConfigs {
|
|
|
|
release {
|
|
|
|
storeFile rootProject.file("signingkey.jks")
|
|
|
|
storePassword System.getenv("KEY_STORE_PASSWORD")
|
|
|
|
keyAlias System.getenv("ALIAS")
|
|
|
|
keyPassword System.getenv("KEY_PASSWORD")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
buildTypes {
|
|
|
|
release {
|
|
|
|
signingConfig signingConfigs.release
|
|
|
|
minifyEnabled false
|
2024-06-03 14:52:59 +02:00
|
|
|
vcsInfo.include false
|
2024-01-08 23:12:39 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependenciesInfo {
|
|
|
|
includeInApk = false
|
|
|
|
}
|
|
|
|
|
|
|
|
buildFeatures {
|
2024-01-14 21:04:00 +01:00
|
|
|
buildConfig true
|
2024-01-08 23:12:39 +01:00
|
|
|
}
|
|
|
|
|
2024-06-03 14:52:59 +02:00
|
|
|
packaging {
|
|
|
|
resources.excludes.add("kotlin-tooling-metadata.json")
|
|
|
|
}
|
|
|
|
|
2024-01-08 23:12:39 +01:00
|
|
|
compileOptions {
|
|
|
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
|
|
|
targetCompatibility = JavaVersion.VERSION_1_8
|
|
|
|
}
|
|
|
|
|
|
|
|
kotlinOptions {
|
|
|
|
jvmTarget = JavaVersion.VERSION_1_8.toString()
|
|
|
|
freeCompilerArgs += "-opt-in=kotlinx.serialization.ExperimentalSerializationApi"
|
|
|
|
}
|
|
|
|
|
|
|
|
kotlinter {
|
|
|
|
experimentalRules = true
|
|
|
|
disabledRules = [
|
|
|
|
"experimental:argument-list-wrapping", // Doesn't play well with Android Studio
|
|
|
|
"experimental:comment-wrapping",
|
|
|
|
]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2024-02-13 15:16:14 +01:00
|
|
|
if (theme != null) implementation(theme) // Overrides core launcher icons
|
2024-01-08 23:12:39 +01:00
|
|
|
implementation(project(":core"))
|
|
|
|
compileOnly(libs.bundles.common)
|
|
|
|
}
|
|
|
|
|
2024-01-29 21:08:15 +01:00
|
|
|
tasks.register("writeManifestFile") {
|
|
|
|
doLast {
|
|
|
|
def manifest = android.sourceSets.getByName("main").manifest
|
|
|
|
if (!manifest.srcFile.exists()) {
|
|
|
|
File tempFile = layout.buildDirectory.get().file("tempAndroidManifest.xml").getAsFile()
|
|
|
|
if (!tempFile.exists()) {
|
|
|
|
tempFile.withWriter {
|
|
|
|
it.write('<?xml version="1.0" encoding="utf-8"?>\n<manifest />\n')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
manifest.srcFile(tempFile.path)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
preBuild.dependsOn(writeManifestFile, lintKotlin)
|
2024-02-13 20:38:19 +01:00
|
|
|
if (System.getenv("CI") != "true") {
|
|
|
|
lintKotlin.dependsOn(formatKotlin)
|
|
|
|
}
|