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

tech.skot.tools.gradle.PluginViewLegacy.kt Maven / Gradle / Ivy

package tech.skot.tools.gradle

import com.android.build.gradle.LibraryExtension
import org.gradle.api.JavaVersion
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.*
import tech.skot.Versions
import tech.skot.tools.gradle.SKLibrary.Companion.addDependenciesToViewLegacy

//open class SKPluginViewLegacyExtension {
//}

class PluginViewLegacy: Plugin {

    override fun apply(project: Project) {
//        val extension = project.extensions.create("skot")
        project.plugins.apply("com.android.library")
//        project.plugins.apply("com.github.ben-manes.versions")

        project.extensions.findByType(LibraryExtension::class)?.android(project)

        project.dependencies {
            dependencies(project)
            addDependenciesToViewLegacy(this, project.rootDir.toPath())
        }

    }


    private fun LibraryExtension.android(project: Project) {

        sourceSets.getByName("main") {
            java.srcDir("src/androidMain/kotlin")
            java.srcDir("generated/androidMain/kotlin")
            assets.srcDirs("src/androidMain/assets")
            res.srcDir("src/androidMain/res_referenced")
            manifest.srcFile("src/androidMain/AndroidManifest.xml")


            skVariantsCombinaison(project.rootProject.rootDir.toPath()).forEach {
                res.srcDir("src/androidMain/res$it")
                res.srcDir("src/androidMain/res${it}_referenced")
                java.srcDir("src/androidMain/kotlin$it")
            }
            res.srcDir("src/androidMain/res")

        }

        sourceSets.getByName("androidTest") {
            java.srcDir("generated/androidTest/kotlin")
            skVariantsCombinaison(project.rootProject.rootDir.toPath()).forEach {
                java.srcDir("generated$it/androidTest/kotlin")
            }
        }

        androidBaseConfig(project)


        buildFeatures {
            viewBinding = true
        }





    }




    private fun DependencyHandlerScope.dependencies(project: Project) {

        val parentProjectPath = project.parent?.path ?: ""

        add("api", "${Versions.group}:viewlegacy:${Versions.skot}")
        add("api", project("$parentProjectPath:viewcontract"))
        add("androidTestImplementation", "${Versions.group}:viewlegacyTests:${Versions.skot}")

    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy