2022-10-11 08:51:26 +00:00
|
|
|
plugins {
|
|
|
|
id 'com.android.application'
|
|
|
|
id 'org.jetbrains.kotlin.android'
|
2022-10-12 14:03:29 +00:00
|
|
|
id "org.mozilla.rust-android-gradle.rust-android"
|
2022-10-11 08:51:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
android {
|
|
|
|
namespace 'dev.lonami.talaria'
|
2022-10-11 08:56:06 +00:00
|
|
|
compileSdk 33
|
2022-10-11 08:51:26 +00:00
|
|
|
|
|
|
|
defaultConfig {
|
|
|
|
applicationId "dev.lonami.talaria"
|
2022-10-23 17:06:18 +00:00
|
|
|
minSdk 26
|
2022-10-11 08:56:06 +00:00
|
|
|
targetSdk 33
|
2022-10-11 08:51:26 +00:00
|
|
|
versionCode 1
|
|
|
|
versionName "0.1.0"
|
|
|
|
|
|
|
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
|
|
vectorDrawables {
|
|
|
|
useSupportLibrary true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
buildTypes {
|
|
|
|
release {
|
|
|
|
minifyEnabled false
|
|
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
compileOptions {
|
|
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
|
|
}
|
|
|
|
kotlinOptions {
|
|
|
|
jvmTarget = '1.8'
|
|
|
|
}
|
|
|
|
buildFeatures {
|
|
|
|
compose true
|
|
|
|
}
|
|
|
|
composeOptions {
|
|
|
|
kotlinCompilerExtensionVersion '1.1.1'
|
|
|
|
}
|
|
|
|
packagingOptions {
|
|
|
|
resources {
|
|
|
|
excludes += '/META-INF/{AL2.0,LGPL2.1}'
|
|
|
|
}
|
|
|
|
}
|
2022-10-12 14:03:29 +00:00
|
|
|
ndkVersion '25.1.8937393'
|
2022-10-11 08:51:26 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
2022-10-11 08:56:06 +00:00
|
|
|
implementation 'androidx.core:core-ktx:1.9.0'
|
|
|
|
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1'
|
2022-10-11 18:58:40 +00:00
|
|
|
implementation "androidx.lifecycle:lifecycle-viewmodel-compose:2.5.1"
|
2022-10-11 08:56:06 +00:00
|
|
|
implementation 'androidx.activity:activity-compose:1.6.0'
|
2022-10-11 08:51:26 +00:00
|
|
|
implementation "androidx.compose.ui:ui:$compose_ui_version"
|
|
|
|
implementation "androidx.compose.ui:ui-tooling-preview:$compose_ui_version"
|
2022-10-11 08:56:06 +00:00
|
|
|
implementation 'androidx.compose.material:material:1.2.1'
|
2022-10-12 09:44:38 +00:00
|
|
|
implementation "androidx.navigation:navigation-compose:2.5.2"
|
2022-10-27 15:38:46 +00:00
|
|
|
implementation "net.java.dev.jna:jna:5.12.0@aar"
|
2022-10-11 08:51:26 +00:00
|
|
|
testImplementation 'junit:junit:4.13.2'
|
|
|
|
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
|
|
|
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
|
|
|
|
androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_ui_version"
|
|
|
|
debugImplementation "androidx.compose.ui:ui-tooling:$compose_ui_version"
|
|
|
|
debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_ui_version"
|
2022-10-11 08:56:06 +00:00
|
|
|
}
|
2022-10-12 14:03:29 +00:00
|
|
|
|
|
|
|
// See https://github.com/mozilla/rust-android-gradle for other targets and required toolchains
|
|
|
|
cargo {
|
|
|
|
module = "../native"
|
2022-10-27 15:38:46 +00:00
|
|
|
libname = "uniffi_talaria"
|
2022-10-17 15:44:31 +00:00
|
|
|
targets = ["arm64"]
|
2022-10-12 14:03:29 +00:00
|
|
|
profile = 'release'
|
|
|
|
}
|
|
|
|
|
|
|
|
tasks.whenTaskAdded { task ->
|
|
|
|
if ((task.name == 'javaPreCompileDebug' || task.name == 'javaPreCompileRelease')) {
|
|
|
|
task.dependsOn 'cargoBuild'
|
|
|
|
}
|
|
|
|
}
|
2022-10-27 15:38:46 +00:00
|
|
|
|
|
|
|
// See https://mozilla.github.io/uniffi-rs/kotlin/gradle.html for more details on this snippet
|
|
|
|
android.applicationVariants.all { variant ->
|
|
|
|
def t = tasks.register("generate${variant.name.capitalize()}UniFFIBindings", Exec) {
|
|
|
|
workingDir "${project.projectDir}"
|
|
|
|
commandLine 'uniffi-bindgen', 'generate', '../native/src/talaria.udl', '--language', 'kotlin', '--no-format', '--out-dir', "${buildDir}/generated/source/uniffi/${variant.name}/java"
|
|
|
|
}
|
|
|
|
variant.javaCompileProvider.get().dependsOn(t)
|
|
|
|
def sourceSet = variant.sourceSets.find { it.name == variant.name }
|
|
|
|
sourceSet.java.srcDir new File(buildDir, "generated/source/uniffi/${variant.name}/java")
|
|
|
|
}
|