aboutsummaryrefslogtreecommitdiffstats
path: root/buildSrc/src/main/java/PasswordStorePlugin.kt
diff options
context:
space:
mode:
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