package de.kuschku.justcode import com.android.build.gradle.internal.dsl.BaseAppModuleExtension import org.gradle.api.JavaVersion import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.kotlin.dsl.getByType class JustCodePlugin : Plugin<Project> { override fun apply(project: Project) { project.run { this.extensions.getByType<BaseAppModuleExtension>().run { setCompileSdkVersion(30) buildToolsVersion = "30.0.3" signingConfigs { signingData(project.rootProject.properties("signing.properties"))?.let { create("default") { storeFile = file(it.storeFile) storePassword = it.storePassword keyAlias = it.keyAlias keyPassword = it.keyPassword } } } defaultConfig { versionCode = gitVersionCode() ?: 1 versionName = gitVersionName() ?: "1.0.0" setBuildConfigField( ::buildConfigField, "GIT_HEAD", gitHead() ?: "" ) setBuildConfigField( ::buildConfigField, "FANCY_VERSION_NAME", fancyVersionName() ?: "1.0.0" ) setBuildConfigField( ::buildConfigField, "GIT_COMMIT_DATE", gitCommitDate() ) setProperty("archivesBaseName", "${rootProject.name}-$versionName") signingConfig = signingConfigs.findByName("default") testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" // Disable test runner analytics testInstrumentationRunnerArguments(mapOf( "disableAnalytics" to "true" )) } buildTypes { getByName("release") { isMinifyEnabled = true isShrinkResources = true multiDexEnabled = true proguardFiles( getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" ) } getByName("debug") { applicationIdSuffix = ".debug" multiDexEnabled = true } } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } } } } }