Skip to content
Snippets Groups Projects
Select Git revision
  • 8aedf17373aa53f1c01d8a877b09f55718b9d637
  • main default protected
  • wip
  • ChenZhangg-Modify_GRADLE_1
  • jetpack-compose-rewrite
  • demo-jump-in-history
  • attachments
  • 1.7.0 protected
  • 1.6.2 protected
  • 1.6.1 protected
  • 1.6.0 protected
  • 1.5.3 protected
  • 1.5.2 protected
  • 1.5.1 protected
  • 1.5.0 protected
  • 1.4.4 protected
  • 1.4.3 protected
  • 1.4.2 protected
  • 1.4.1 protected
  • 1.4.0 protected
  • v1.3.3 protected
  • v1.3.2 protected
  • v1.3.1 protected
  • v1.3.0 protected
  • v1.2.28 protected
  • v1.2.27 protected
  • v1.2.26 protected
27 results

AndroidApplicationConvention.kt

Blame
  • AndroidApplicationConvention.kt 2.11 KiB
    import com.android.build.api.dsl.ApplicationExtension
    import org.gradle.api.JavaVersion
    import org.gradle.api.Plugin
    import org.gradle.api.Project
    import org.gradle.kotlin.dsl.configure
    import util.git
    import java.util.*
    
    class AndroidApplicationConvention : Plugin<Project> {
      override fun apply(target: Project) {
        with(target) {
          with(pluginManager) {
            apply("com.android.application")
            apply("justjanne.kotlin.android")
            apply("justjanne.signing")
          }
    
          extensions.configure<ApplicationExtension> {
              compileSdk = 35
    
            defaultConfig {
              minSdk = 21
                targetSdk = 35
    
              applicationId = "${rootProject.group}.${rootProject.name.lowercase(Locale.ROOT)}"
    
              val commit = git("rev-parse", "HEAD")
              val name = git("describe", "--always", "--tags", "HEAD")
    
              versionCode = git("rev-list", "--count", "HEAD", "--tags")?.toIntOrNull()
              versionName = git("describe", "--always", "--tags", "HEAD")
    
              val fancyVersionName = if (commit == null || name == null) name
              else "<a href=\\\"https://git.kuschku.de/justJanne/QuasselDroid-ng/commit/$commit\\\">$name</a>"
    
              buildConfigField("String", "GIT_HEAD", "\"${git("rev-parse", "HEAD") ?: ""}\"")
              buildConfigField("String", "FANCY_VERSION_NAME", "\"${fancyVersionName ?: ""}\"")
              buildConfigField("long", "GIT_COMMIT_DATE", "${git("show", "-s", "--format=%ct") ?: 0}L")
    
              signingConfig = signingConfigs.findByName("default")
    
              setProperty("archivesBaseName", "${rootProject.name}-$versionName")
    
              // Disable test runner analytics
              testInstrumentationRunnerArguments["disableAnalytics"] = "true"
            }
    
            buildFeatures {
              buildConfig = true
            }
    
            compileOptions {
              sourceCompatibility = JavaVersion.VERSION_11
              targetCompatibility = JavaVersion.VERSION_11
            }
    
            testOptions {
              unitTests.isIncludeAndroidResources = true
            }
    
            lint {
              warningsAsErrors = true
              lintConfig = file("../lint.xml")
            }
          }
        }
      }
    }