mirror of
				https://github.com/f-droid/fdroidserver.git
				synced 2025-11-04 14:30:30 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			94 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Kotlin
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Kotlin
		
	
	
	
	
	
import com.android.build.gradle.internal.tasks.factory.dependsOn
 | 
						|
 | 
						|
plugins {
 | 
						|
    id("com.android.library")
 | 
						|
    id("org.mozilla.rust-android-gradle.rust-android")
 | 
						|
    kotlin("android")
 | 
						|
    kotlin("kapt")
 | 
						|
    id("kotlin-parcelize")
 | 
						|
}
 | 
						|
 | 
						|
setupCore()
 | 
						|
 | 
						|
android {
 | 
						|
    defaultConfig {
 | 
						|
        consumerProguardFiles("proguard-rules.pro")
 | 
						|
 | 
						|
        externalNativeBuild.ndkBuild {
 | 
						|
            abiFilters("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
 | 
						|
            arguments("-j${Runtime.getRuntime().availableProcessors()}")
 | 
						|
        }
 | 
						|
 | 
						|
        kapt.arguments {
 | 
						|
            arg("room.incremental", true)
 | 
						|
            arg("room.schemaLocation", "$projectDir/schemas")
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    externalNativeBuild.ndkBuild.path("src/main/jni/Android.mk")
 | 
						|
 | 
						|
    sourceSets.getByName("androidTest") {
 | 
						|
        assets.setSrcDirs(assets.srcDirs + files("$projectDir/schemas"))
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
cargo {
 | 
						|
    module = "src/main/rust/shadowsocks-rust"
 | 
						|
    libname = "sslocal"
 | 
						|
    targets = listOf("arm", "arm64", "x86", "x86_64")
 | 
						|
    profile = findProperty("CARGO_PROFILE")?.toString() ?: currentFlavor
 | 
						|
    extraCargoBuildArguments = listOf("--bin", libname!!)
 | 
						|
    featureSpec.noDefaultBut(arrayOf(
 | 
						|
            "stream-cipher",
 | 
						|
            "aead-cipher-extra",
 | 
						|
            "logging",
 | 
						|
            "local-flow-stat",
 | 
						|
            "local-dns"))
 | 
						|
    exec = { spec, toolchain ->
 | 
						|
        spec.environment("RUST_ANDROID_GRADLE_LINKER_WRAPPER_PY", "$projectDir/$module/../linker-wrapper.py")
 | 
						|
        spec.environment("RUST_ANDROID_GRADLE_TARGET", "target/${toolchain.target}/$profile/lib$libname.so")
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
tasks.whenTaskAdded {
 | 
						|
    when (name) {
 | 
						|
        "mergeDebugJniLibFolders", "mergeReleaseJniLibFolders" -> dependsOn("cargoBuild")
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
tasks.register<Exec>("cargoClean") {
 | 
						|
    executable("cargo")     // cargo.cargoCommand
 | 
						|
    args("clean")
 | 
						|
    workingDir("$projectDir/${cargo.module}")
 | 
						|
}
 | 
						|
tasks.clean.dependsOn("cargoClean")
 | 
						|
 | 
						|
dependencies {
 | 
						|
    val coroutinesVersion = "1.5.2"
 | 
						|
    val roomVersion = "2.3.0"
 | 
						|
    val workVersion = "2.7.0-beta01"
 | 
						|
 | 
						|
    api(project(":plugin"))
 | 
						|
    api("androidx.core:core-ktx:1.6.0")
 | 
						|
    // https://android-developers.googleblog.com/2019/07/android-q-beta-5-update.html
 | 
						|
    api("androidx.drawerlayout:drawerlayout:1.1.1")
 | 
						|
    api("androidx.fragment:fragment-ktx:1.3.6")
 | 
						|
    api("com.google.android.material:material:1.4.0")
 | 
						|
 | 
						|
    api("androidx.lifecycle:lifecycle-livedata-core-ktx:$lifecycleVersion")
 | 
						|
    api("androidx.preference:preference:1.1.1")
 | 
						|
    api("androidx.room:room-runtime:$roomVersion")
 | 
						|
    api("androidx.work:work-multiprocess:$workVersion")
 | 
						|
    api("androidx.work:work-runtime-ktx:$workVersion")
 | 
						|
    api("com.google.android.gms:play-services-oss-licenses:17.0.0")
 | 
						|
    api("com.google.code.gson:gson:2.8.8")
 | 
						|
    api("com.google.firebase:firebase-analytics-ktx:19.0.1")
 | 
						|
    api("com.google.firebase:firebase-crashlytics:18.2.1")
 | 
						|
    api("com.jakewharton.timber:timber:5.0.1")
 | 
						|
    api("dnsjava:dnsjava:3.4.1")
 | 
						|
    api("org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion")
 | 
						|
    api("org.jetbrains.kotlinx:kotlinx-coroutines-play-services:$coroutinesVersion")
 | 
						|
    kapt("androidx.room:room-compiler:$roomVersion")
 | 
						|
    androidTestImplementation("androidx.room:room-testing:$roomVersion")
 | 
						|
    androidTestImplementation("androidx.test.ext:junit-ktx:1.1.3")
 | 
						|
}
 |