summaryrefslogtreecommitdiff
path: root/build-logic/build.gradle.kts
diff options
context:
space:
mode:
authorHarsh Shandilya <me@msfjarvis.dev>2022-12-02 01:57:02 +0530
committerHarsh Shandilya <me@msfjarvis.dev>2022-12-02 01:57:02 +0530
commitafd0eebdd3287d932c53879fa1ac88f430080ef5 (patch)
tree141b9147325b96f4ab3a49927e4a1d997f3c37be /build-logic/build.gradle.kts
parent54bb4676a7c16d959769e522ac018f3e3e822797 (diff)
refactor(build-logic): move all code to a single top-level project
Diffstat (limited to 'build-logic/build.gradle.kts')
-rw-r--r--build-logic/build.gradle.kts112
1 files changed, 112 insertions, 0 deletions
diff --git a/build-logic/build.gradle.kts b/build-logic/build.gradle.kts
new file mode 100644
index 00000000..0740d609
--- /dev/null
+++ b/build-logic/build.gradle.kts
@@ -0,0 +1,112 @@
+/*
+ * Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved.
+ * SPDX-License-Identifier: GPL-3.0-only
+ */
+@file:Suppress("DSL_SCOPE_VIOLATION", "UnstableApiUsage")
+
+import org.gradle.api.JavaVersion
+import org.gradle.api.tasks.compile.JavaCompile
+import org.gradle.kotlin.dsl.withType
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
+plugins { `kotlin-dsl` }
+
+afterEvaluate {
+ tasks.withType<JavaCompile>().configureEach {
+ sourceCompatibility = JavaVersion.VERSION_11.toString()
+ targetCompatibility = JavaVersion.VERSION_11.toString()
+ }
+
+ tasks.withType<KotlinCompile>().configureEach {
+ kotlinOptions {
+ jvmTarget = JavaVersion.VERSION_11.toString()
+ freeCompilerArgs = freeCompilerArgs + listOf(
+ "-Xsam-conversions=class",
+ "-opt-in=kotlin.RequiresOptIn",
+ )
+ }
+ }
+}
+
+gradlePlugin {
+ plugins {
+ register("android-application") {
+ id = "com.github.android-password-store.android-application"
+ implementationClass = "app.passwordstore.gradle.ApplicationPlugin"
+ }
+ register("android-library") {
+ id = "com.github.android-password-store.android-library"
+ implementationClass = "app.passwordstore.gradle.LibraryPlugin"
+ }
+ register("crowdin") {
+ id = "com.github.android-password-store.crowdin-plugin"
+ implementationClass = "app.passwordstore.gradle.crowdin.CrowdinDownloadPlugin"
+ }
+ register("git-hooks") {
+ id = "com.github.android-password-store.git-hooks"
+ implementationClass = "app.passwordstore.gradle.GitHooksPlugin"
+ }
+ register("kotlin-android") {
+ id = "com.github.android-password-store.kotlin-android"
+ implementationClass = "app.passwordstore.gradle.KotlinAndroidPlugin"
+ }
+ register("kotlin-common") {
+ id = "com.github.android-password-store.kotlin-common"
+ implementationClass = "app.passwordstore.gradle.KotlinCommonPlugin"
+ }
+ register("kotlin-kapt") {
+ id = "com.github.android-password-store.kotlin-kapt"
+ implementationClass = "app.passwordstore.gradle.KotlinKaptPlugin"
+ }
+ register("kotlin-library") {
+ id = "com.github.android-password-store.kotlin-library"
+ implementationClass = "app.passwordstore.gradle.KotlinLibraryPlugin"
+ }
+ register("ktfmt") {
+ id = "com.github.android-password-store.ktfmt"
+ implementationClass = "app.passwordstore.gradle.KtfmtPlugin"
+ }
+ register("published-android-library") {
+ id = "com.github.android-password-store.published-android-library"
+ implementationClass = "app.passwordstore.gradle.PublishedAndroidLibraryPlugin"
+ }
+ register("psl") {
+ id = "com.github.android-password-store.psl-plugin"
+ implementationClass = "app.passwordstore.gradle.psl.PublicSuffixListPlugin"
+ }
+ register("rename-artifacts") {
+ id = "com.github.android-password-store.rename-artifacts"
+ implementationClass = "app.passwordstore.gradle.RenameArtifactsPlugin"
+ }
+ register("sentry") {
+ id = "com.github.android-password-store.sentry"
+ implementationClass = "app.passwordstore.gradle.SentryPlugin"
+ }
+ register("versioning") {
+ id = "com.github.android-password-store.versioning-plugin"
+ implementationClass = "app.passwordstore.gradle.versioning.VersioningPlugin"
+ }
+ register("versions") {
+ id = "com.github.android-password-store.versions"
+ implementationClass = "app.passwordstore.gradle.DependencyUpdatesPlugin"
+ }
+ }
+}
+
+dependencies {
+ implementation(libs.build.agp)
+ implementation(libs.build.detekt)
+ implementation(libs.build.diffutils)
+ implementation(libs.build.download)
+ implementation(libs.build.kotlin)
+ implementation(libs.build.ktfmt)
+ implementation(libs.build.mavenpublish)
+ implementation(libs.build.metalava)
+ implementation(libs.build.okhttp)
+ implementation(libs.build.r8)
+ implementation(libs.build.semver)
+ implementation(libs.build.sentry)
+ implementation(libs.build.vcu)
+ implementation(libs.build.versions)
+ implementation(libs.kotlin.coroutines.core)
+}