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

commonMain.co.touchlab.skie.plugin.configuration.SkieExtension.kt Maven / Gradle / Ivy

The newest version!
@file:Suppress("MemberVisibilityCanBePrivate", "unused")

package co.touchlab.skie.plugin.configuration

import co.touchlab.skie.configuration.SkieConfigurationFlag
import org.gradle.api.Action
import org.gradle.api.model.ObjectFactory
import org.gradle.api.provider.Property
import org.gradle.api.provider.SetProperty
import javax.inject.Inject

open class SkieExtension @Inject constructor(objects: ObjectFactory) {

    /**
     * Disables SKIE plugin. Useful for checking if an error is a bug in SKIE, or in the Kotlin compiler.
     */
    val isEnabled: Property = objects.property(Boolean::class.java).convention(true)

    val additionalConfigurationFlags: SetProperty =
        objects.setProperty(SkieConfigurationFlag::class.java).convention(emptySet())

    val suppressedConfigurationFlags: SetProperty =
        objects.setProperty(SkieConfigurationFlag::class.java).convention(emptySet())

    val analytics: SkieAnalyticsConfiguration = objects.newInstance(SkieAnalyticsConfiguration::class.java)

    fun analytics(action: Action) {
        action.execute(analytics)
    }

    val build: SkieBuildConfiguration = objects.newInstance(SkieBuildConfiguration::class.java)

    fun build(action: Action) {
        action.execute(build)
    }

    val debug: SkieDebugConfiguration = objects.newInstance(SkieDebugConfiguration::class.java)

    fun debug(action: Action) {
        action.execute(debug)
    }

    val features: SkieFeatureConfiguration = objects.newInstance(SkieFeatureConfiguration::class.java)

    fun features(action: Action) {
        action.execute(features)
    }

    val migration: SkieMigrationConfiguration = objects.newInstance(SkieMigrationConfiguration::class.java)

    fun migration(action: Action) {
        action.execute(migration)
    }

    val swiftBundling: SkieSwiftBundlingConfiguration = objects.newInstance(SkieSwiftBundlingConfiguration::class.java)

    fun swiftBundling(action: Action) {
        action.execute(swiftBundling)
    }

    companion object
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy