Files
b2txt25/language_model/runtime/device/android/wenet/app/build.gradle
2025-07-02 12:18:09 -07:00

104 lines
2.7 KiB
Groovy

plugins {
id 'com.android.application'
}
repositories {
jcenter()
maven {
url "https://oss.sonatype.org/content/repositories/snapshots"
}
}
android {
signingConfigs {
release {
storeFile file('wenet.keystore')
storePassword '123456'
keyAlias 'wenet'
keyPassword '123456'
}
}
packagingOptions {
pickFirst 'lib/arm64-v8a/libc++_shared.so'
}
configurations {
extractForNativeBuild
}
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "com.mobvoi.wenet"
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
targets "wenet", "decoder_main"
cppFlags "-std=c++14", "-DC10_USE_GLOG", "-DC10_USE_MINIMAL_GLOG", "-DANDROID", "-Wno-c++11-narrowing", "-fexceptions"
}
}
ndkVersion '21.1.6352462'
ndk {
abiFilters 'arm64-v8a', 'x86_64'
}
}
buildTypes {
release {
minifyEnabled false
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "src/main/cpp/CMakeLists.txt"
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation 'org.pytorch:pytorch_android:1.6.0'
extractForNativeBuild 'org.pytorch:pytorch_android:1.6.0'
implementation 'com.github.pengzhendong:wenet-openfst-android:1.0.1'
extractForNativeBuild 'com.github.pengzhendong:wenet-openfst-android:1.0.1'
}
task extractAARForNativeBuild {
doLast {
configurations.extractForNativeBuild.files.each {
def file = it.absoluteFile
copy {
from zipTree(file)
into "$buildDir/$file.name"
include "headers/**"
include "jni/**"
}
}
}
}
tasks.whenTaskAdded { task ->
if (task.name.contains('externalNativeBuild')) {
task.dependsOn(extractAARForNativeBuild)
}
}