80 lines
2.0 KiB
Groovy
80 lines
2.0 KiB
Groovy
plugins {
|
|
id 'org.autojs.build.utils'
|
|
id 'org.autojs.build.properties'
|
|
id 'org.autojs.build.jvm-convention'
|
|
id 'com.android.library'
|
|
id 'org.jetbrains.kotlin.android'
|
|
}
|
|
|
|
ext {
|
|
projectName = "Image Quantization"
|
|
}
|
|
|
|
def versionMap = [
|
|
"libimagequant": "2.17.0",
|
|
"libpng" : "1.6.49",
|
|
|
|
"MIN_SDK" : props["MIN_SDK"] as Integer,
|
|
"COMPILE_SDK" : props["COMPILE_SDK"] as Integer,
|
|
"TARGET_SDK" : props["TARGET_SDK"] as Integer,
|
|
|
|
"NDK" : props["IMAGE_QUANT/NDK"],
|
|
"CMAKE" : props["IMAGE_QUANT/CMAKE"],
|
|
]
|
|
|
|
def nameMap = [
|
|
"PROJECT": ext["projectName"],
|
|
"NDK" : "NDK",
|
|
"CMAKE" : "Cmake",
|
|
]
|
|
|
|
utils.configureLibraryLifecycleHooks(project, nameMap.PROJECT, [
|
|
"libimagequant",
|
|
"libpng",
|
|
"NDK",
|
|
"CMAKE",
|
|
].collect { "${nameMap[it] ?: it}: ${versionMap[it]}" }, Collections.emptyList(), null, [".cxx"])
|
|
|
|
android {
|
|
|
|
namespace = "org.pngquant"
|
|
|
|
ndkVersion versionMap.NDK
|
|
compileSdk versionMap.COMPILE_SDK
|
|
|
|
defaultConfig {
|
|
minSdk versionMap.MIN_SDK
|
|
targetSdk versionMap.TARGET_SDK
|
|
|
|
externalNativeBuild {
|
|
cmake {
|
|
cppFlags "-std=c++17"
|
|
|
|
// @Hint by SuperMonster003 on Aug 28, 2025.
|
|
// ! Moved into `target_link_libraries(pngquant_bridge ...)` in `CMakeLists.txt`.
|
|
// ! zh-CN: 移至 `CMakeLists.txt` 文件 `target_link_libraries(pngquant_bridge ...)` 代码中.
|
|
// # cFlags "-ljnigraphics"
|
|
}
|
|
}
|
|
|
|
ndk {
|
|
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled false
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
}
|
|
}
|
|
|
|
externalNativeBuild {
|
|
cmake {
|
|
path "CMakeLists.txt"
|
|
version versionMap.CMAKE
|
|
}
|
|
}
|
|
|
|
}
|