From 6c1e41ba1050c92f4b615f7e857e0d085120a242 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Fri, 16 Oct 2020 20:48:11 +0530 Subject: Revamp build configuration (#1156) * release: move scripts to scripts directory Signed-off-by: Harsh Shandilya * Move CI secrets to secrets directory Signed-off-by: Harsh Shandilya * gradle: uprev to 6.7 Signed-off-by: Harsh Shandilya * gradle: suppress warnings about unsupported options Signed-off-by: Harsh Shandilya * build: update dependencies Signed-off-by: Harsh Shandilya * build: move Gradle plugins to ext Signed-off-by: Harsh Shandilya * build: move configuration tasks to buildSrc Signed-off-by: Harsh Shandilya * CHANGELOG: add entry for #1137 Signed-off-by: Harsh Shandilya * Fix lint warnings Signed-off-by: Harsh Shandilya --- buildSrc/src/main/java/PasswordStorePlugin.kt | 44 +++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 buildSrc/src/main/java/PasswordStorePlugin.kt (limited to 'buildSrc/src/main/java/PasswordStorePlugin.kt') diff --git a/buildSrc/src/main/java/PasswordStorePlugin.kt b/buildSrc/src/main/java/PasswordStorePlugin.kt new file mode 100644 index 00000000..37a23b02 --- /dev/null +++ b/buildSrc/src/main/java/PasswordStorePlugin.kt @@ -0,0 +1,44 @@ +/* + * Copyright © 2014-2020 The Android Password Store Authors. All Rights Reserved. + * SPDX-License-Identifier: GPL-3.0-only + */ + +import com.android.build.gradle.TestedExtension +import com.android.build.gradle.internal.plugins.AppPlugin +import com.android.build.gradle.internal.plugins.LibraryPlugin +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.api.plugins.JavaLibraryPlugin +import org.gradle.api.plugins.JavaPlugin +import org.gradle.api.tasks.compile.JavaCompile +import org.gradle.kotlin.dsl.getByType +import org.gradle.kotlin.dsl.withType + +class PasswordStorePlugin : Plugin { + + override fun apply(project: Project) { + project.configureForAllProjects() + + if (project.isRoot) { + project.configureForRootProject() + } + + project.plugins.all { + when (this) { + is JavaPlugin, + is JavaLibraryPlugin -> { + project.tasks.withType { + options.compilerArgs.add("-Xlint:unchecked") + options.isDeprecation = true + } + } + is LibraryPlugin, + is AppPlugin -> { + project.extensions.getByType().configureCommonAndroidOptions() + } + } + } + } +} + +private val Project.isRoot get() = this == this.rootProject -- cgit v1.2.3