flet-build-template/{{cookiecutter.out_dir}}/android/app/build.gradle.kts

104 lines
3.5 KiB
Plaintext

import java.util.Properties
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id("dev.flutter.flutter-gradle-plugin")
}
val localProperties = Properties().apply {
val localPropertiesFile = rootProject.file("local.properties")
if (localPropertiesFile.exists()) {
localPropertiesFile.inputStream().use { load(it) }
}
}
val flutterVersionCode = localProperties.getProperty("flutter.versionCode")?.toIntOrNull() ?: 1
val flutterVersionName = localProperties.getProperty("flutter.versionName") ?: "1.0"
android {
namespace = "{{ cookiecutter.org_name_2 }}.{{ cookiecutter.package_name }}"
compileSdk = flutter.compileSdkVersion
ndkVersion = flutter.ndkVersion
packaging {
jniLibs {
useLegacyPackaging = true
keepDebugSymbols += listOf(
"*/arm64-v8a/libpython*.so",
"*/armeabi-v7a/libpython*.so",
"*/x86/libpython*.so",
"*/x86_64/libpython*.so",
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
sourceSets["main"].java.srcDir("src/main/kotlin")
{% set min_sdk_version = get_pyproject("tool.flet.android.min_sdk_version") %}
{% set target_sdk_version = get_pyproject("tool.flet.android.target_sdk_version") %}
defaultConfig {
applicationId = "{{ cookiecutter.org_name_2 }}.{{ cookiecutter.package_name }}"
val resolvedMinSdk = {{ min_sdk_version if min_sdk_version else "flutter.minSdkVersion" }}
minSdk = resolvedMinSdk
val resolvedTargetSdk = {{ target_sdk_version if target_sdk_version else "flutter.targetSdkVersion" }}
targetSdk = resolvedTargetSdk
versionCode = flutterVersionCode
versionName = flutterVersionName
println("Gradle build config:")
println(" minSdkVersion: $resolvedMinSdk")
println(" targetSdkVersion: $resolvedTargetSdk")
println(" versionCode: $flutterVersionCode")
println(" versionName: $flutterVersionName")
// flet: split_per_abi {% if not cookiecutter.split_per_abi %}
ndk {
{% if cookiecutter.options.target_arch %}
abiFilters += listOf({% for arch in cookiecutter.options.target_arch %}"{{ arch }}"{% if not loop.last %}, {% endif %}{% endfor %})
{% else %}
abiFilters += listOf("arm64-v8a", "armeabi-v7a", "x86_64")
{% endif %}
}
// flet: end of split_per_abi {% endif %}
}
// flet: android_signing {% if cookiecutter.options.android_signing %}
signingConfigs {
create("release") {
keyAlias = System.getenv("FLET_ANDROID_SIGNING_KEY_ALIAS")
keyPassword = System.getenv("FLET_ANDROID_SIGNING_KEY_PASSWORD")
storeFile = System.getenv("FLET_ANDROID_SIGNING_KEY_STORE")?.let { file(it) }
storePassword = System.getenv("FLET_ANDROID_SIGNING_KEY_STORE_PASSWORD")
}
}
// flet: end of android_signing {% endif %}
buildTypes {
release {
// flet: android_signing {% if cookiecutter.options.android_signing %}
signingConfig = signingConfigs.getByName("release")
// {% else %}
signingConfig = signingConfigs.getByName("debug")
// flet: end of android_signing {% endif %}
}
}
}
flutter {
source = "../.."
}
dependencies {}