From dfee170bd813d267272d0d4a8c64a4cbef965619 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Mon, 29 Nov 2021 01:41:24 +0530 Subject: build-logic: add android convention plugins --- ...d-password-store.android-application.gradle.kts | 63 ++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 build-logic/android-plugins/src/main/kotlin/com.github.android-password-store.android-application.gradle.kts (limited to 'build-logic/android-plugins/src/main/kotlin/com.github.android-password-store.android-application.gradle.kts') diff --git a/build-logic/android-plugins/src/main/kotlin/com.github.android-password-store.android-application.gradle.kts b/build-logic/android-plugins/src/main/kotlin/com.github.android-password-store.android-application.gradle.kts new file mode 100644 index 00000000..9e38476d --- /dev/null +++ b/build-logic/android-plugins/src/main/kotlin/com.github.android-password-store.android-application.gradle.kts @@ -0,0 +1,63 @@ +/* + * Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved. + * SPDX-License-Identifier: GPL-3.0-only + */ + +import com.android.build.gradle.internal.dsl.BaseAppModuleExtension +import flavors.FlavorDimensions +import flavors.ProductFlavors +import flavors.configureSlimTests +import org.gradle.kotlin.dsl.configure + +plugins { + id("com.android.application") + id("com.github.android-password-store.android-common") +} + +fun Project.isSnapshot(): Boolean { + with(project.providers) { + val workflow = environmentVariable("GITHUB_WORKFLOW").forUseAtConfigurationTime() + val snapshot = environmentVariable("SNAPSHOT").forUseAtConfigurationTime() + return workflow.isPresent || snapshot.isPresent + } +} + +extensions.configure { + val minifySwitch = + project.providers.environmentVariable("DISABLE_MINIFY").forUseAtConfigurationTime() + + adbOptions.installOptions("--user 0") + + buildFeatures { + viewBinding = true + buildConfig = true + } + + buildTypes { + named("release") { + isMinifyEnabled = !minifySwitch.isPresent + setProguardFiles( + listOf( + "proguard-android-optimize.txt", + "proguard-rules.pro", + "proguard-rules-missing-classes.pro", + ) + ) + buildConfigField("boolean", "ENABLE_DEBUG_FEATURES", "${project.isSnapshot()}") + } + named("debug") { + applicationIdSuffix = ".debug" + versionNameSuffix = "-debug" + isMinifyEnabled = false + buildConfigField("boolean", "ENABLE_DEBUG_FEATURES", "true") + } + } + + flavorDimensions.add(FlavorDimensions.FREE) + productFlavors { + register(ProductFlavors.FREE) {} + register(ProductFlavors.NON_FREE) {} + } + + project.configureSlimTests() +} -- cgit v1.2.3