apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlinx-serialization' apply plugin: 'keiyoushi.lint' assert !ext.has("pkgNameSuffix") assert !ext.has("libVersion") assert extName.chars().max().asInt < 0x180 : "Extension name should be romanized" Project theme = ext.has("themePkg") ? project(":lib-multisrc:$themePkg") : null if (theme != null) evaluationDependsOn(theme.path) android { compileSdk AndroidConfig.compileSdk namespace "eu.kanade.tachiyomi.extension" sourceSets { main { manifest.srcFile "AndroidManifest.xml" if (!manifest.srcFile.exists()) { def buildDir = layout.buildDirectory.get().getAsFile().path mkdir(buildDir) File tempFile = new File(buildDir, "tempAndroidManifest.xml") if (!tempFile.exists()) { tempFile.withWriter { it.write('\n\n') } } manifest.srcFile(tempFile.path) } java.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } } defaultConfig { minSdk AndroidConfig.minSdk targetSdk AndroidConfig.targetSdk applicationIdSuffix project.parent.name + "." + project.name versionCode theme == null ? extVersionCode : theme.baseVersionCode + overrideVersionCode versionName "1.4.$versionCode" base { archivesName = "tachiyomi-$applicationIdSuffix-v$versionName" } assert extClass.startsWith(".") manifestPlaceholders = [ appName : "Tachiyomi: $extName", extClass: extClass, nsfw : project.ext.find("isNsfw") ? 1 : 0, ] 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], ] } } 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 vcsInfo.include false } } dependenciesInfo { includeInApk = false } buildFeatures { buildConfig true } packaging { resources.excludes.add("kotlin-tooling-metadata.json") } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = JavaVersion.VERSION_17.toString() freeCompilerArgs += "-opt-in=kotlinx.serialization.ExperimentalSerializationApi" } } dependencies { if (theme != null) implementation(theme) // Overrides core launcher icons implementation(project(":core")) compileOnly(libs.bundles.common) }