123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- plugins {
- id("com.android.application")
- id("org.jetbrains.kotlin.android")
- id("rustPlugin")
- {{~#each android-app-plugins}}
- id("{{this}}"){{/each}}
- }
- android {
- compileSdk = 33
- defaultConfig {
- manifestPlaceholders["usesCleartextTraffic"] = "false"
- applicationId = "{{reverse-domain app.domain}}.{{snake-case app.name}}"
- minSdk = {{android.min-sdk-version}}
- targetSdk = 33
- versionCode = 1
- versionName = "1.0"
- }
- sourceSets.getByName("main") {
- {{#if android.vulkan-validation}}// Vulkan validation layers
- val ndkHome = System.getenv("NDK_HOME")
- jniLibs.srcDir("${ndkHome}/sources/third_party/vulkan/src/build-android/jniLibs")
- {{/if}}
- }
- buildTypes {
- getByName("debug") {
- manifestPlaceholders["usesCleartextTraffic"] = "true"
- isDebuggable = true
- isJniDebuggable = true
- isMinifyEnabled = false
- packagingOptions {
- {{~#each targets}}
- jniLibs.keepDebugSymbols.add("*/{{this.abi}}/*.so")
- {{/each}}
- }
- }
- getByName("release") {
- isMinifyEnabled = true
- val proguards = fileTree(".") {
- include("**/*.pro")
- }
- proguardFiles(*proguards.toList().toTypedArray())
- }
- }
- flavorDimensions.add("abi")
- productFlavors {
- create("universal") {
- dimension = "abi"
- ndk {
- abiFilters += (findProperty("abiList") as? String)?.split(",") ?: listOf(
- {{~#each targets}}
- "{{this.abi}}",{{/each}}
- )
- }
- }
- {{~#each targets}}
- create("{{this.arch}}") {
- dimension = "abi"
- ndk {
- abiFilters += listOf("{{this.abi}}")
- }
- }
- {{/each}}
- }
- assetPacks += mutableSetOf({{quote-and-join-colon-prefix asset-packs}})
- namespace = "{{reverse-domain app.domain}}.{{snake-case app.name}}"
- }
- rust {
- rootDirRel = "{{root-dir-rel}}"
- targets = (findProperty("targetList") as? String)?.split(",") ?: listOf({{quote-and-join target-names}})
- arches = (findProperty("archList") as? String)?.split(",") ?: listOf({{quote-and-join arches}})
- }
- dependencies {
- {{~#each android-app-dependencies-platform}}
- implementation(platform("{{this}}")){{/each}}
- {{~#each android-app-dependencies}}
- implementation("{{this}}"){{/each}}
- implementation("androidx.webkit:webkit:1.5.0")
- implementation("androidx.appcompat:appcompat:1.5.1")
- implementation("com.google.android.material:material:1.7.0")
- testImplementation("junit:junit:4.13.2")
- androidTestImplementation("androidx.test.ext:junit:1.1.4")
- androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0")
- }
- apply(from = "tauri.build.gradle.kts")
- afterEvaluate {
- android.applicationVariants.all {
- tasks["mergeUniversalReleaseJniLibFolders"].dependsOn(tasks["rustBuildRelease"])
- tasks["mergeUniversalDebugJniLibFolders"].dependsOn(tasks["rustBuildDebug"])
- if (findProperty("targetList") == null) {
- productFlavors.filter{ it.name != "universal" }.forEach { _ ->
- val archAndBuildType = name.capitalize()
- tasks["merge${archAndBuildType}JniLibFolders"].dependsOn(tasks["rustBuild${archAndBuildType}"])
- }
- }
- }
- }
|