import com.android.build.api.dsl.ApplicationDefaultConfig import com.android.build.api.dsl.CommonExtension import com.android.build.gradle.api.AndroidBasePlugin import java.io.ByteArrayOutputStream plugins { alias(libs.plugins.agp.app) apply false alias(libs.plugins.agp.lib) apply false alias(libs.plugins.kotlin) apply false alias(libs.plugins.compose.compiler) apply false alias(libs.plugins.lsplugin.cmaker) } cmaker { default { arguments.addAll( arrayOf( "-DANDROID_STL=none", ) ) abiFilters("arm64-v8a", "x86_64", "riscv64") } buildTypes { if (it.name == "release") { arguments += "-DDEBUG_SYMBOLS_PATH=${layout.buildDirectory.asFile.get().absolutePath}/symbols" } } } val androidMinSdkVersion = 26 val androidTargetSdkVersion = 35 val androidCompileSdkVersion = 35 val androidBuildToolsVersion = "35.0.0" val androidCompileNdkVersion = "27.0.12077973" val androidSourceCompatibility = JavaVersion.VERSION_21 val androidTargetCompatibility = JavaVersion.VERSION_21 val managerVersionCode by extra(getVersionCode()) val managerVersionName by extra(getVersionName()) fun getGitCommitCount(): Int { val out = ByteArrayOutputStream() exec { commandLine("git", "rev-list", "--count", "HEAD") standardOutput = out } return out.toString().trim().toInt() } fun getGitDescribe(): String { val out = ByteArrayOutputStream() exec { commandLine("git", "describe", "--tags", "--always") standardOutput = out } return out.toString().trim() } fun getVersionCode(): Int { val commitCount = getGitCommitCount() val major = 1 return major * 10000 + commitCount + 200 } fun getVersionName(): String { return getGitDescribe() } subprojects { plugins.withType(AndroidBasePlugin::class.java) { extensions.configure(CommonExtension::class.java) { compileSdk = androidCompileSdkVersion ndkVersion = androidCompileNdkVersion buildToolsVersion = androidBuildToolsVersion defaultConfig { minSdk = androidMinSdkVersion if (this is ApplicationDefaultConfig) { targetSdk = androidTargetSdkVersion versionCode = managerVersionCode versionName = managerVersionName } } lint { abortOnError = true checkReleaseBuilds = false } compileOptions { sourceCompatibility = androidSourceCompatibility targetCompatibility = androidTargetCompatibility } } } }