diff options
| author | Harsh Shandilya <msfjarvis@gmail.com> | 2020-10-16 20:48:11 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-10-16 17:18:11 +0200 |
| commit | 6c1e41ba1050c92f4b615f7e857e0d085120a242 (patch) | |
| tree | 5be0bc1e6c1a2afeda9ba9566c12a791302b7918 /buildSrc/src/main/java/PasswordStorePlugin.kt | |
| parent | 92f1aab25da12411aa256c3b763e0cb6182e9320 (diff) | |
| download | HardenedPass-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.kt | 44 |
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 |
