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/BaseProjectConfig.kt | |
parent | 92f1aab25da12411aa256c3b763e0cb6182e9320 (diff) |
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/BaseProjectConfig.kt')
-rw-r--r-- | buildSrc/src/main/java/BaseProjectConfig.kt | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/buildSrc/src/main/java/BaseProjectConfig.kt b/buildSrc/src/main/java/BaseProjectConfig.kt new file mode 100644 index 00000000..3b2a3f3b --- /dev/null +++ b/buildSrc/src/main/java/BaseProjectConfig.kt @@ -0,0 +1,83 @@ +/* + * 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 org.gradle.api.JavaVersion +import org.gradle.api.Project +import org.gradle.api.tasks.Delete +import org.gradle.api.tasks.testing.Test +import org.gradle.api.tasks.testing.logging.TestLogEvent +import org.gradle.api.tasks.wrapper.Wrapper +import org.gradle.kotlin.dsl.repositories +import org.gradle.kotlin.dsl.withType +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +/** + * Configure root project. + * Note that classpath dependencies still need to be defined in the `buildscript` block in the top-level build.gradle.kts file. + */ +internal fun Project.configureForRootProject() { + // register task for cleaning the build directory in the root project + tasks.register("clean", Delete::class.java) { + delete(rootProject.buildDir) + } + tasks.withType<Wrapper> { + gradleVersion = "6.7" + distributionType = Wrapper.DistributionType.ALL + distributionSha256Sum = "0080de8491f0918e4f529a6db6820fa0b9e818ee2386117f4394f95feb1d5583" + } + configureBinaryCompatibilityValidator() +} + +/** + * Configure all projects including the root project + */ +internal fun Project.configureForAllProjects() { + repositories { + google() + jcenter() + maven { setUrl("https://jitpack.io") } + } + tasks.withType<KotlinCompile> { + kotlinOptions { + jvmTarget = JavaVersion.VERSION_1_8.toString() + freeCompilerArgs = freeCompilerArgs + additionalCompilerArgs + languageVersion = "1.4" + } + } + tasks.withType<Test> { + maxParallelForks = Runtime.getRuntime().availableProcessors() * 2 + testLogging { + events(TestLogEvent.PASSED, TestLogEvent.SKIPPED, TestLogEvent.FAILED) + } + } +} + +/** + * Apply baseline configurations for all Android projects (Application and Library). + */ +@Suppress("UnstableApiUsage") +internal fun TestedExtension.configureCommonAndroidOptions() { + compileSdkVersion(29) + + defaultConfig { + minSdkVersion(23) + targetSdkVersion(29) + } + + packagingOptions { + exclude("**/*.version") + exclude("**/*.txt") + exclude("**/*.kotlin_module") + exclude("**/plugin.properties") + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + testOptions.animationsDisabled = true +} |