import com.android.build.api.dsl.ApplicationDefaultConfig import com.android.build.api.dsl.CommonExtension import com.android.build.gradle.api.AndroidBasePlugin plugins { alias(libs.plugins.agp.app) apply false alias(libs.plugins.agp.lib) apply false alias(libs.plugins.kotlin) apply false alias(libs.plugins.kotlin.compose.compiler) apply false } project.ext.set("kernelPatchVersion", "0.12.2") val androidMinSdkVersion = 26 val androidTargetSdkVersion = 36 val androidCompileSdkVersion = 36 val androidBuildToolsVersion = "36.0.0" val androidCompileNdkVersion = "29.0.14206865" val managerVersionCode by extra(getVersionCode()) val managerVersionName by extra(getVersionName()) val branchname by extra(getbranch()) fun Project.exec(command: String) = providers.exec { commandLine(command.split(" ")) }.standardOutput.asText.get().trim() fun getGitCommitCount(): Int { return exec("git rev-list --count HEAD").trim().toInt() } fun getGitDescribe(): String { return exec("git rev-parse --verify --short HEAD").trim() } fun getVersionCode(): Int { val commitCount = getGitCommitCount() val major = 1 return major * 10000 + commitCount + 200 } fun getbranch(): String { return exec("git rev-parse --abbrev-ref HEAD").trim() } fun getVersionName(): String { return getGitDescribe() } tasks.register("printVersion") { doLast { println("Version code: $managerVersionCode") println("Version name: $managerVersionName") } } subprojects { plugins.withType(AndroidBasePlugin::class.java) { extensions.configure(CommonExtension::class.java) { compileSdk = androidCompileSdkVersion buildToolsVersion = androidBuildToolsVersion ndkVersion = androidCompileNdkVersion defaultConfig { minSdk = androidMinSdkVersion if (this is ApplicationDefaultConfig) { targetSdk = androidTargetSdkVersion versionCode = managerVersionCode versionName = managerVersionName } } lint { abortOnError = true checkReleaseBuilds = false } } } }