1plugins {
 2    alias(libs.plugins.android.library)
 3    alias(libs.plugins.jetbrains.kotlin.android)
 4}
 5
 6android {
 7    namespace = "com.arm.aichat"
 8    compileSdk = 36
 9
10    ndkVersion = "29.0.13113456"
11
12    defaultConfig {
13        minSdk = 33
14
15        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
16        consumerProguardFiles("consumer-rules.pro")
17
18        ndk {
19             abiFilters += listOf("arm64-v8a", "x86_64")
20        }
21        externalNativeBuild {
22            cmake {
23                arguments += "-DCMAKE_BUILD_TYPE=Release"
24                arguments += "-DCMAKE_MESSAGE_LOG_LEVEL=DEBUG"
25                arguments += "-DCMAKE_VERBOSE_MAKEFILE=ON"
26
27                arguments += "-DBUILD_SHARED_LIBS=ON"
28                arguments += "-DLLAMA_BUILD_COMMON=ON"
29                arguments += "-DLLAMA_OPENSSL=OFF"
30
31                arguments += "-DGGML_NATIVE=OFF"
32                arguments += "-DGGML_BACKEND_DL=ON"
33                arguments += "-DGGML_CPU_ALL_VARIANTS=ON"
34                arguments += "-DGGML_LLAMAFILE=OFF"
35            }
36        }
37        aarMetadata {
38            minCompileSdk = 35
39        }
40    }
41    externalNativeBuild {
42        cmake {
43            path("src/main/cpp/CMakeLists.txt")
44            version = "3.31.6"
45        }
46    }
47    compileOptions {
48        sourceCompatibility = JavaVersion.VERSION_17
49        targetCompatibility = JavaVersion.VERSION_17
50    }
51    kotlin {
52        jvmToolchain(17)
53
54        compileOptions {
55            targetCompatibility = JavaVersion.VERSION_17
56        }
57    }
58
59    packaging {
60        resources {
61            excludes += "/META-INF/{AL2.0,LGPL2.1}"
62        }
63    }
64
65    publishing {
66        singleVariant("release") {
67            withJavadocJar()
68        }
69    }
70}
71
72dependencies {
73    implementation(libs.androidx.core.ktx)
74    implementation(libs.androidx.datastore.preferences)
75
76    testImplementation(libs.junit)
77    androidTestImplementation(libs.androidx.junit)
78}