From d3c1a73050cad74460a7fedddb114d196e5703aa Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 15 Nov 2020 14:04:14 +0530 Subject: build: refactor for configuration cache compatibility (#1208) Signed-off-by: Harsh Shandilya --- buildSrc/src/main/java/SigningConfig.kt | 34 +++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 buildSrc/src/main/java/SigningConfig.kt (limited to 'buildSrc/src/main/java/SigningConfig.kt') diff --git a/buildSrc/src/main/java/SigningConfig.kt b/buildSrc/src/main/java/SigningConfig.kt new file mode 100644 index 00000000..1f494d5f --- /dev/null +++ b/buildSrc/src/main/java/SigningConfig.kt @@ -0,0 +1,34 @@ +/* + * Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + * SPDX-License-Identifier: GPL-3.0-only + */ + +import com.android.build.gradle.internal.dsl.BaseAppModuleExtension +import java.util.Properties +import org.gradle.api.Project + +private const val KEYSTORE_CONFIG_PATH = "keystore.properties" + +/** + * Configure signing for all build types. + */ +@Suppress("UnstableApiUsage") +internal fun BaseAppModuleExtension.configureBuildSigning(project: Project) { + with(project) { + val keystoreConfigFile = rootProject.layout.projectDirectory.file(KEYSTORE_CONFIG_PATH) + if (!keystoreConfigFile.asFile.exists()) return + val contents = providers.fileContents(keystoreConfigFile).asText.forUseAtConfigurationTime() + val keystoreProperties = Properties() + keystoreProperties.load(contents.get().byteInputStream()) + signingConfigs { + register("release") { + keyAlias = keystoreProperties["keyAlias"] as String + keyPassword = keystoreProperties["keyPassword"] as String + storeFile = rootProject.file(keystoreProperties["storeFile"] as String) + storePassword = keystoreProperties["storePassword"] as String + } + } + val signingConfig = signingConfigs.getByName("release") + buildTypes.all { setSigningConfig(signingConfig) } + } +} -- cgit v1.2.3