Files
unmeta-gradle-plugin/plugin-build/unmeta/src/main/java/com/axzae/unmeta/UnmetaPlugin.kt
You Qi e7c643784c Rename plugin directory to unmeta
Signed-off-by: You Qi <youqi@axzae.com>
2023-04-29 16:03:40 +08:00

26 lines
1.2 KiB
Kotlin

package com.axzae.unmeta
import com.android.build.api.variant.ApplicationAndroidComponentsExtension
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.configurationcache.extensions.capitalized
abstract class UnmetaPlugin : Plugin<Project> {
override fun apply(project: Project) {
val extension = project.extensions.create("unmeta", UnmetaExtension::class.java, project)
val androidComponents = project.extensions.getByType(ApplicationAndroidComponentsExtension::class.java)
androidComponents.onVariants(androidComponents.selector().withBuildType("release")) { variant ->
val compileKotlinTaskName = "compile${variant.name.capitalized()}Kotlin"
val unmetaTask = project.tasks.create("unmeta${variant.name.capitalized()}", UnmetaTask::class.java).apply {
isEnabled = extension.isEnabled.get()
verbose.set(extension.verbose.get())
variantName.set(variant.name)
outputFile.set(extension.outputFile)
}
project.afterEvaluate {
project.tasks.findByName(compileKotlinTaskName)?.finalizedBy(unmetaTask)
}
}
}
}