All Downloads are FREE. Search and download functionalities are using the official Maven repository.

sh.christian.aaraar.gradle.agp.Agp7.kt Maven / Gradle / Ivy

The newest version!
package sh.christian.aaraar.gradle.agp

import com.android.build.api.attributes.BuildTypeAttr
import com.android.build.api.dsl.LibraryExtension
import com.android.build.api.variant.LibraryAndroidComponentsExtension
import org.gradle.api.Project
import org.gradle.api.attributes.AttributeContainer
import org.gradle.kotlin.dsl.getByType
import org.gradle.kotlin.dsl.named

/**
 * Compatibility layer for using AGP 7 at runtime.
 */
class Agp7(private val project: Project) : AgpCompat {
  private val androidComponents = project.extensions.getByType()

  override val android: AndroidExtension =
    Agp7AndroidExtension(project.extensions.getByType())

  override fun AttributeContainer.buildTypeAttribute(buildType: String) {
    attribute(BuildTypeAttr.ATTRIBUTE, project.objects.named(buildType))
  }

  override fun onVariants(callback: (AndroidVariant) -> Unit) {
    return androidComponents.onVariants { callback(Agp7AndroidVariant(it)) }
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy