plugins { id 'org.autojs.build.utils' id 'org.autojs.build.properties' 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' } } compileOptions { sourceCompatibility = JavaVersion.toVersion(project.ext.javaVersion) targetCompatibility = JavaVersion.toVersion(project.ext.javaVersion) } kotlinOptions { jvmTarget = project.ext.javaVersion } externalNativeBuild { cmake { path "CMakeLists.txt" version versionMap.CMAKE } } }