build: update dependencies

- add "core" and "all" product flavor
This commit is contained in:
rhunk
2023-10-05 00:01:12 +02:00
parent 2917f1b6e5
commit db2a709042
6 changed files with 82 additions and 50 deletions

View File

@@ -15,7 +15,7 @@ android {
}
composeOptions {
kotlinCompilerExtensionVersion = "1.4.8"
kotlinCompilerExtensionVersion = "1.5.2"
}
defaultConfig {
@@ -53,6 +53,11 @@ android {
excludes += "META-INF/*.kotlin_module"
}
}
create("core") {
dimension = "abi"
}
create("armv8") {
ndk {
abiFilters += "arm64-v8a"
@@ -66,15 +71,25 @@ android {
}
dimension = "abi"
}
create("all") {
ndk {
abiFilters += listOf("arm64-v8a", "armeabi-v7a")
}
dimension = "abi"
}
}
properties["debug_flavor"]?.let {
android.productFlavors[it.toString()].setIsDefault(true)
android.productFlavors.find { it.name == it.toString()}?.setIsDefault(true)
}
applicationVariants.all {
outputs.map { it as BaseVariantOutputImpl }.forEach { variant ->
variant.outputFileName = "app-${rootProject.ext["appVersionName"]}-${variant.name}.apk"
outputs.map { it as BaseVariantOutputImpl }.forEach { outputVariant ->
outputVariant.outputFileName = when {
name.startsWith("core") -> "core.apk"
else -> "snapenhance_${rootProject.ext["appVersionName"]}-${outputVariant.name}.apk"
}
}
}
@@ -88,30 +103,44 @@ android {
}
}
androidComponents {
onVariants(selector().withFlavor("abi", "core")) {
it.packaging.jniLibs.apply {
pickFirsts.set(listOf("**/lib${rootProject.ext["nativeName"]}.so"))
excludes.set(listOf("**/*.so"))
}
}
}
dependencies {
fun fullImplementation(dependencyNotation: Any) {
compileOnly(dependencyNotation)
for (flavorName in listOf("armv8", "armv7", "all")) {
dependencies.add("${flavorName}Implementation", dependencyNotation)
}
}
implementation(project(":core"))
implementation(libs.androidx.material.icons.core)
implementation(libs.androidx.material.ripple)
implementation(libs.androidx.material.icons.extended)
implementation(libs.androidx.material3)
implementation(libs.androidx.activity.ktx)
implementation(libs.androidx.navigation.compose)
implementation(libs.androidx.documentfile)
implementation(libs.gson)
implementation(libs.coil.compose)
implementation(libs.coil.video)
implementation(libs.ffmpeg.kit)
implementation(libs.osmdroid.android)
implementation(libs.rhino)
implementation(libs.bcprov.jdk18on)
debugImplementation("androidx.compose.ui:ui-tooling:1.4.3")
implementation("androidx.compose.ui:ui-tooling-preview:1.4.3")
implementation(kotlin("reflect"))
implementation(libs.androidx.activity.ktx)
fullImplementation(libs.bcprov.jdk18on)
fullImplementation(libs.androidx.navigation.compose)
fullImplementation(libs.androidx.material.icons.core)
fullImplementation(libs.androidx.material.ripple)
fullImplementation(libs.androidx.material.icons.extended)
fullImplementation(libs.androidx.material3)
fullImplementation(libs.coil.compose)
fullImplementation(libs.coil.video)
fullImplementation(libs.androidx.ui.tooling.preview)
debugImplementation(libs.androidx.ui.tooling)
}
afterEvaluate {
properties["debug_assemble_task"]?.let { tasks.named(it.toString()) }?.orNull?.doLast {
properties["debug_assemble_task"]?.let { tasks.findByName(it.toString()) }?.doLast {
runCatching {
val apkDebugFile = android.applicationVariants.find { it.buildType.name == "debug" && it.flavorName == properties["debug_flavor"] }?.outputs?.first()?.outputFile ?: return@doLast
exec {

View File

@@ -8,5 +8,6 @@ plugins {
rootProject.ext.set("appVersionName", "2.0.0")
rootProject.ext.set("appVersionCode", 10)
rootProject.ext.set("applicationId", "me.rhunk.snapenhance")
rootProject.ext.set("nativeName", java.security.SecureRandom().nextLong(1000000000, 99999999999).toString(16))
true // Needed to make the Suppress annotation work for the plugins block

View File

@@ -34,7 +34,6 @@ tasks.register("getVersion") {
dependencies {
compileOnly(files("libs/LSPosed-api-1.0-SNAPSHOT.jar"))
implementation(libs.coroutines)
implementation(libs.kotlin.reflect)
implementation(libs.recyclerview)
implementation(libs.gson)
implementation(libs.okhttp)

View File

@@ -1,4 +1,4 @@
org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8
org.gradle.jvmargs=-Xmx6G -Xms6G -Dfile.encoding=UTF-8
android.useAndroidX=true
kotlin.code.style=official
android.nonTransitiveRClass=true

View File

@@ -1,47 +1,49 @@
[versions]
agp = "8.1.1"
bcprov-jdk18on = "1.76"
coil-compose = "2.4.0"
junit = "4.13.2"
kotlin = "1.8.22"
agp = "8.1.2"
kotlin = "1.9.0"
kotlinx-coroutines-android = "1.7.3"
kotlin-reflect = "1.9.0"
material-icons-core = "1.5.0"
material-icons-extended = "1.6.0-alpha04"
navigation-compose = "2.7.1"
recyclerview = "1.3.1"
gson = "2.10.1"
# DO NOT UPDATE FFMPEG-KIT TO "5.1" it breaks stuff :3
ffmpeg-kit = "5.1.LTS"
osmdroid-android = "6.1.16"
okhttp = "5.0.0-alpha.11"
dexlib2 = "2.5.2"
activity-ktx = "1.8.0"
androidx-documentfile = "1.1.0-alpha01"
activity-ktx = "1.7.2"
material3 = "1.1.1"
material-icons-core = "1.5.3"
material-icons-extended = "1.6.0-alpha07"
coil-compose = "2.4.0"
navigation-compose = "2.7.4"
osmdroid-android = "6.1.16"
recyclerview = "1.3.1"
bcprov-jdk18on = "1.76"
dexlib2 = "2.5.2"
ffmpeg-kit = "5.1.LTS" # DO NOT UPDATE FFMPEG-KIT TO "5.1" it breaks stuff :3
gson = "2.10.1"
junit = "4.13.2"
material3 = "1.1.2"
okhttp = "5.0.0-alpha.11"
rhino = "1.7.14"
ui-tooling-preview = "1.5.3"
[libraries]
androidx-activity-ktx = { group = "androidx.activity", name = "activity-ktx", version.ref = "activity-ktx" }
androidx-documentfile = { group = "androidx.documentfile", name = "documentfile", version.ref = "androidx-documentfile" }
androidx-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "material3" }
androidx-material-icons-core = { module = "androidx.compose.material:material-icons-core", version.ref = "material-icons-core" }
androidx-material-icons-extended = { module = "androidx.compose.material:material-icons-extended", version.ref = "material-icons-extended" }
androidx-material-ripple = { module = "androidx.compose.material:material-ripple", version.ref = "material-icons-core" }
androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "navigation-compose" }
androidx-ui-tooling = { module = "androidx.compose.ui:ui-tooling", version.ref = "ui-tooling-preview" }
androidx-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview", version.ref = "ui-tooling-preview" }
bcprov-jdk18on = { module = "org.bouncycastle:bcprov-jdk18on", version.ref = "bcprov-jdk18on" }
coil-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil-compose" }
coil-video = { module = "io.coil-kt:coil-video", version.ref = "coil-compose" }
coroutines = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinx-coroutines-android" }
junit = { module = "junit:junit", version.ref = "junit" }
kotlin-reflect = { group = "org.jetbrains.kotlin", name = "kotlin-reflect", version.ref = "kotlin-reflect" }
recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "recyclerview" }
gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
ffmpeg-kit = { group = "com.arthenica", name = "ffmpeg-kit-full-gpl", version.ref = "ffmpeg-kit" }
osmdroid-android = { group = "org.osmdroid", name = "osmdroid-android", version.ref = "osmdroid-android" }
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" }
dexlib2 = { group = "org.smali", name = "dexlib2", version.ref = "dexlib2" }
androidx-documentfile = { group = "androidx.documentfile", name = "documentfile", version.ref = "androidx-documentfile" }
androidx-activity-ktx = { group = "androidx.activity", name = "activity-ktx", version.ref = "activity-ktx" }
androidx-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "material3" }
ffmpeg-kit = { group = "com.arthenica", name = "ffmpeg-kit-full-gpl", version.ref = "ffmpeg-kit" }
gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
junit = { module = "junit:junit", version.ref = "junit" }
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" }
osmdroid-android = { group = "org.osmdroid", name = "osmdroid-android", version.ref = "osmdroid-android" }
recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "recyclerview" }
rhino = { module = "org.mozilla:rhino", version.ref = "rhino" }

View File

@@ -3,7 +3,7 @@ plugins {
alias(libs.plugins.kotlinAndroid)
}
val nativeName = System.nanoTime().toString(16)
val nativeName = rootProject.ext.get("nativeName")
android {
namespace = rootProject.ext["applicationId"].toString() + ".nativelib"
@@ -29,7 +29,8 @@ android {
}
ndk {
//noinspection ChromeOsAbiSupport
abiFilters += listOf("arm64-v8a", "armeabi-v7a")
abiFilters += properties["custom_abi_filters"]?.toString()?.split(",")
?: listOf("arm64-v8a", "armeabi-v7a")
}
}
}