import org.jetbrains.kotlin.gradle.dsl.JvmTarget plugins { id("com.android.library") id("org.jetbrains.kotlin.android") } android { namespace = "com.follow.clash.core" compileSdk = libs.versions.compileSdk.get().toInt() ndkVersion = libs.versions.ndkVersion.get() defaultConfig { minSdk = libs.versions.minSdk.get().toInt() } sourceSets { getByName("main") { jniLibs.srcDirs("src/main/jniLibs") } } externalNativeBuild { cmake { path("src/main/cpp/CMakeLists.txt") version = "3.22.1" } } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } buildTypes { release { proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } } kotlin { compilerOptions { jvmTarget.set(JvmTarget.JVM_17) } } dependencies { implementation(libs.annotation.jvm) } val copyNativeLibs by tasks.register("copyNativeLibs") { doFirst { delete("src/main/jniLibs") } from("../../libclash/android") into("src/main/jniLibs") doLast { val includesDir = file("src/main/jniLibs/includes") val targetDir = file("src/main/cpp/includes") if (includesDir.exists()) { copy { from(includesDir) into(targetDir) } delete(includesDir) } } } afterEvaluate { tasks.named("preBuild") { dependsOn(copyNativeLibs) } }