aboutsummaryrefslogtreecommitdiffstats
path: root/buildSrc/src/main/java/PasswordStorePlugin.kt
diff options
context:
space:
mode:
authorHarsh Shandilya <msfjarvis@gmail.com>2020-10-16 20:48:11 +0530
committerGitHub <noreply@github.com>2020-10-16 17:18:11 +0200
commit6c1e41ba1050c92f4b615f7e857e0d085120a242 (patch)
tree5be0bc1e6c1a2afeda9ba9566c12a791302b7918 /buildSrc/src/main/java/PasswordStorePlugin.kt
parent92f1aab25da12411aa256c3b763e0cb6182e9320 (diff)
downloadHardenedPass-6c1e41ba1050c92f4b615f7e857e0d085120a242.tar.gz
HardenedPass-6c1e41ba1050c92f4b615f7e857e0d085120a242.zip
Revamp build configuration (#1156)
* release: move scripts to scripts directory Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Move CI secrets to secrets directory Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * gradle: uprev to 6.7 Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * gradle: suppress warnings about unsupported options Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * build: update dependencies Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * build: move Gradle plugins to ext Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * build: move configuration tasks to buildSrc Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * CHANGELOG: add entry for #1137 Signed-off-by: Harsh Shandilya <me@msfjarvis.dev> * Fix lint warnings Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Diffstat (limited to 'buildSrc/src/main/java/PasswordStorePlugin.kt')
-rw-r--r--buildSrc/src/main/java/PasswordStorePlugin.kt44
1 files changed, 44 insertions, 0 deletions
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<Project> {
+
+ override fun apply(project: Project) {
+ project.configureForAllProjects()
+
+ if (project.isRoot) {
+ project.configureForRootProject()
+ }
+
+ project.plugins.all {
+ when (this) {
+ is JavaPlugin,
+ is JavaLibraryPlugin -> {
+ project.tasks.withType<JavaCompile> {
+ options.compilerArgs.add("-Xlint:unchecked")
+ options.isDeprecation = true
+ }
+ }
+ is LibraryPlugin,
+ is AppPlugin -> {
+ project.extensions.getByType<TestedExtension>().configureCommonAndroidOptions()
+ }
+ }
+ }
+ }
+}
+
+private val Project.isRoot get() = this == this.rootProject