apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlinx-serialization' apply plugin: 'org.jmailen.kotlinter' assert !ext.has("pkgNameSuffix") assert !ext.has("libVersion") android { compileSdk AndroidConfig.compileSdk namespace "eu.kanade.tachiyomi.extension" sourceSets { main { manifest.srcFile "AndroidManifest.xml" java.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } } defaultConfig { minSdk AndroidConfig.minSdk targetSdk AndroidConfig.targetSdk applicationIdSuffix project.parent.name + "." + project.name versionCode extVersionCode 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, ] } 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 } } dependenciesInfo { includeInApk = false } buildFeatures { resValues false shaders false buildConfig true } 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", ] } } repositories { mavenCentral() } dependencies { implementation(project(":core")) compileOnly(libs.bundles.common) } 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('\n\n') } } manifest.srcFile(tempFile.path) } } } preBuild.dependsOn(writeManifestFile, lintKotlin) lintKotlin.dependsOn(formatKotlin)