refactor(build-logic): make everything top-level

This commit is contained in:
Harsh Shandilya 2022-12-04 20:13:08 +05:30
parent f48ef0206f
commit 1267cf81e3
No known key found for this signature in database
21 changed files with 48 additions and 88 deletions

View file

@ -1 +0,0 @@
/build

View file

@ -1,57 +0,0 @@
/*
* Copyright © 2022 Harsh Shandilya.
* Use of this source code is governed by an MIT-style
* license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT.
*/
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 + "-Xsam-conversions=class"
}
}
}
gradlePlugin {
plugins {
register("android-application") {
id = "dev.msfjarvis.claw.android-application"
implementationClass = "dev.msfjarvis.aps.gradle.ApplicationPlugin"
}
register("android-common") {
id = "dev.msfjarvis.claw.android-common"
implementationClass = "dev.msfjarvis.aps.gradle.AndroidCommonPlugin"
}
register("android-library") {
id = "dev.msfjarvis.claw.android-library"
implementationClass = "dev.msfjarvis.aps.gradle.LibraryPlugin"
}
register("rename-artifacts") {
id = "dev.msfjarvis.claw.rename-artifacts"
implementationClass = "dev.msfjarvis.aps.gradle.RenameArtifactsPlugin"
}
register("versioning") {
id = "dev.msfjarvis.claw.versioning-plugin"
implementationClass = "dev.msfjarvis.aps.gradle.versioning.VersioningPlugin"
}
}
}
dependencies {
implementation(libs.build.agp)
implementation(libs.build.cachefix)
implementation(libs.build.semver)
}

View file

@ -27,38 +27,60 @@ afterEvaluate {
gradlePlugin { gradlePlugin {
plugins { plugins {
register("android-application") {
id = "dev.msfjarvis.claw.android-application"
implementationClass = "dev.msfjarvis.claw.gradle.ApplicationPlugin"
}
register("android-common") {
id = "dev.msfjarvis.claw.android-common"
implementationClass = "dev.msfjarvis.claw.gradle.AndroidCommonPlugin"
}
register("android-library") {
id = "dev.msfjarvis.claw.android-library"
implementationClass = "dev.msfjarvis.claw.gradle.LibraryPlugin"
}
register("kotlin-android") { register("kotlin-android") {
id = "dev.msfjarvis.claw.kotlin-android" id = "dev.msfjarvis.claw.kotlin-android"
implementationClass = "dev.msfjarvis.aps.gradle.KotlinAndroidPlugin" implementationClass = "dev.msfjarvis.claw.gradle.KotlinAndroidPlugin"
} }
register("kotlin-common") { register("kotlin-common") {
id = "dev.msfjarvis.claw.kotlin-common" id = "dev.msfjarvis.claw.kotlin-common"
implementationClass = "dev.msfjarvis.aps.gradle.KotlinCommonPlugin" implementationClass = "dev.msfjarvis.claw.gradle.KotlinCommonPlugin"
} }
register("kotlin-kapt") { register("kotlin-kapt") {
id = "dev.msfjarvis.claw.kotlin-kapt" id = "dev.msfjarvis.claw.kotlin-kapt"
implementationClass = "dev.msfjarvis.aps.gradle.KotlinKaptPlugin" implementationClass = "dev.msfjarvis.claw.gradle.KotlinKaptPlugin"
} }
register("kotlin-library") { register("kotlin-library") {
id = "dev.msfjarvis.claw.kotlin-library" id = "dev.msfjarvis.claw.kotlin-library"
implementationClass = "dev.msfjarvis.aps.gradle.KotlinLibraryPlugin" implementationClass = "dev.msfjarvis.claw.gradle.KotlinLibraryPlugin"
}
register("rename-artifacts") {
id = "dev.msfjarvis.claw.rename-artifacts"
implementationClass = "dev.msfjarvis.claw.gradle.RenameArtifactsPlugin"
} }
register("spotless") { register("spotless") {
id = "dev.msfjarvis.claw.spotless" id = "dev.msfjarvis.claw.spotless"
implementationClass = "dev.msfjarvis.aps.gradle.SpotlessPlugin" implementationClass = "dev.msfjarvis.claw.gradle.SpotlessPlugin"
}
register("versioning") {
id = "dev.msfjarvis.claw.versioning-plugin"
implementationClass = "dev.msfjarvis.claw.gradle.versioning.VersioningPlugin"
} }
register("versions") { register("versions") {
id = "dev.msfjarvis.claw.versions" id = "dev.msfjarvis.claw.versions"
implementationClass = "dev.msfjarvis.aps.gradle.DependencyUpdatesPlugin" implementationClass = "dev.msfjarvis.claw.gradle.DependencyUpdatesPlugin"
} }
} }
} }
dependencies { dependencies {
implementation(libs.build.agp) implementation(libs.build.agp)
implementation(libs.build.cachefix)
implementation(libs.build.detekt) implementation(libs.build.detekt)
implementation(libs.build.kotlin.gradle) implementation(libs.build.kotlin.gradle)
implementation(libs.build.kotlin.serialization) implementation(libs.build.kotlin.serialization)
implementation(libs.build.semver)
implementation(libs.build.spotless) implementation(libs.build.spotless)
implementation(libs.build.vcu) implementation(libs.build.vcu)
implementation(libs.build.versions) implementation(libs.build.versions)

View file

@ -39,7 +39,3 @@ dependencyResolutionManagement {
} }
versionCatalogs { create("libs") { from(files("../gradle/libs.versions.toml")) } } versionCatalogs { create("libs") { from(files("../gradle/libs.versions.toml")) } }
} }
include("android-plugins")
include("kotlin-plugins")

View file

@ -6,7 +6,7 @@
*/ */
@file:Suppress("UnstableApiUsage") @file:Suppress("UnstableApiUsage")
package dev.msfjarvis.aps.gradle package dev.msfjarvis.claw.gradle
import com.android.build.api.dsl.LibraryExtension import com.android.build.api.dsl.LibraryExtension
import com.android.build.api.dsl.Lint import com.android.build.api.dsl.Lint

View file

@ -6,11 +6,11 @@
*/ */
@file:Suppress("UnstableApiUsage") @file:Suppress("UnstableApiUsage")
package dev.msfjarvis.aps.gradle package dev.msfjarvis.claw.gradle
import com.android.build.gradle.AppPlugin import com.android.build.gradle.AppPlugin
import com.android.build.gradle.internal.dsl.BaseAppModuleExtension import com.android.build.gradle.internal.dsl.BaseAppModuleExtension
import dev.msfjarvis.aps.gradle.signing.configureBuildSigning import dev.msfjarvis.claw.gradle.signing.configureBuildSigning
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.kotlin.dsl.apply import org.gradle.kotlin.dsl.apply

View file

@ -4,7 +4,7 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle package dev.msfjarvis.claw.gradle
import com.github.benmanes.gradle.versions.VersionsPlugin import com.github.benmanes.gradle.versions.VersionsPlugin
import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask

View file

@ -4,7 +4,7 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle package dev.msfjarvis.claw.gradle
import io.gitlab.arturbosch.detekt.DetektPlugin import io.gitlab.arturbosch.detekt.DetektPlugin
import io.gitlab.arturbosch.detekt.extensions.DetektExtension import io.gitlab.arturbosch.detekt.extensions.DetektExtension

View file

@ -4,7 +4,7 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle package dev.msfjarvis.claw.gradle
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project

View file

@ -4,7 +4,7 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle package dev.msfjarvis.claw.gradle
import org.gradle.api.JavaVersion import org.gradle.api.JavaVersion
import org.gradle.api.Plugin import org.gradle.api.Plugin

View file

@ -4,7 +4,7 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle package dev.msfjarvis.claw.gradle
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project

View file

@ -4,7 +4,7 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle package dev.msfjarvis.claw.gradle
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project

View file

@ -4,7 +4,7 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle package dev.msfjarvis.claw.gradle
import com.android.build.gradle.LibraryPlugin import com.android.build.gradle.LibraryPlugin
import org.gradle.api.Plugin import org.gradle.api.Plugin

View file

@ -4,13 +4,13 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle package dev.msfjarvis.claw.gradle
import com.android.build.api.artifact.SingleArtifact import com.android.build.api.artifact.SingleArtifact
import com.android.build.api.variant.ApplicationAndroidComponentsExtension import com.android.build.api.variant.ApplicationAndroidComponentsExtension
import com.android.build.api.variant.VariantOutputConfiguration import com.android.build.api.variant.VariantOutputConfiguration
import dev.msfjarvis.aps.gradle.artifacts.CollectApksTask import dev.msfjarvis.claw.gradle.artifacts.CollectApksTask
import dev.msfjarvis.aps.gradle.artifacts.CollectBundleTask import dev.msfjarvis.claw.gradle.artifacts.CollectBundleTask
import java.util.Locale import java.util.Locale
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project

View file

@ -4,7 +4,7 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle package dev.msfjarvis.claw.gradle
import com.diffplug.gradle.spotless.SpotlessExtension import com.diffplug.gradle.spotless.SpotlessExtension
import com.diffplug.gradle.spotless.SpotlessPlugin import com.diffplug.gradle.spotless.SpotlessPlugin

View file

@ -4,7 +4,7 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle.artifacts package dev.msfjarvis.claw.gradle.artifacts
import com.android.build.api.variant.BuiltArtifactsLoader import com.android.build.api.variant.BuiltArtifactsLoader
import java.io.File import java.io.File

View file

@ -4,7 +4,7 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle.artifacts package dev.msfjarvis.claw.gradle.artifacts
import java.io.File import java.io.File
import java.nio.file.Files import java.nio.file.Files

View file

@ -4,7 +4,7 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle.signing package dev.msfjarvis.claw.gradle.signing
import com.android.build.gradle.internal.dsl.BaseAppModuleExtension import com.android.build.gradle.internal.dsl.BaseAppModuleExtension
import java.util.Properties import java.util.Properties

View file

@ -4,7 +4,7 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle.versioning package dev.msfjarvis.claw.gradle.versioning
const val VERSIONING_PROP_FILE = "version.properties" const val VERSIONING_PROP_FILE = "version.properties"
const val VERSIONING_PROP_VERSION_NAME = "versioning-plugin.versionName" const val VERSIONING_PROP_VERSION_NAME = "versioning-plugin.versionName"

View file

@ -4,7 +4,7 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle.versioning package dev.msfjarvis.claw.gradle.versioning
import com.android.build.api.variant.ApplicationAndroidComponentsExtension import com.android.build.api.variant.ApplicationAndroidComponentsExtension
import com.android.build.api.variant.VariantOutputConfiguration import com.android.build.api.variant.VariantOutputConfiguration

View file

@ -4,7 +4,7 @@
* license that can be found in the LICENSE file or at * license that can be found in the LICENSE file or at
* https://opensource.org/licenses/MIT. * https://opensource.org/licenses/MIT.
*/ */
package dev.msfjarvis.aps.gradle.versioning package dev.msfjarvis.claw.gradle.versioning
import com.vdurmont.semver4j.Semver import com.vdurmont.semver4j.Semver
import org.gradle.api.DefaultTask import org.gradle.api.DefaultTask