apply from: "../shared.gradle"

sourceSets {

    // Benchmark
    main.java.srcDirs += "${supportRootFolder}/benchmark/gradle-plugin/src/main/kotlin"
    main.resources.srcDirs += "${supportRootFolder}/benchmark/gradle-plugin/src/main/resources"

    // Benchmark darwin
    main.java.srcDirs += "${supportRootFolder}/benchmark/benchmark-darwin-gradle-plugin/src/main/kotlin"
    main.resources.srcDirs += "${supportRootFolder}/benchmark/benchmark-darwin-gradle-plugin/src/main/resources"

    // Baseline profile
    main.java.srcDirs += "${supportRootFolder}" +
            "/benchmark/baseline-profile-gradle-plugin/src/main/kotlin"
    main.resources.srcDirs += "${supportRootFolder}" +
            "/benchmark/baseline-profile-gradle-plugin/src/main/resources"

    // Inspection
    main.java.srcDirs += "${supportRootFolder}/inspection/inspection-gradle-plugin/src/main/kotlin"
    main.resources.srcDirs += "${supportRootFolder}/inspection/inspection-gradle-plugin/src/main" +
            "/resources"

    // Compose
    main.java.srcDirs += "${supportRootFolder}/compose/material/material/icons/generator/src/main" +
            "/kotlin"

    // Glance
    main.java.srcDirs += "${supportRootFolder}/glance/glance-appwidget/glance-layout-generator/" +
            "src/main/kotlin"

    // Stable AIDL
    main.java.srcDirs += "${supportRootFolder}/stableaidl/stableaidl-gradle-plugin/src/main/java"
}

dependencies {
    // This is for androidx.benchmark.darwin
    implementation(libs.apacheCommonsMath)
}

gradlePlugin {
    plugins {
        benchmark {
            id = "androidx.benchmark"
            implementationClass = "androidx.benchmark.gradle.BenchmarkPlugin"
        }
        baselineProfileProducer {
            id = "androidx.baselineprofile.producer"
            implementationClass = "androidx.baselineprofile.gradle.producer.BaselineProfileProducerPlugin"
        }
        baselineProfileConsumer {
            id = "androidx.baselineprofile.consumer"
            implementationClass = "androidx.baselineprofile.gradle.consumer.BaselineProfileConsumerPlugin"
        }
        baselineProfileAppTarget {
            id = "androidx.baselineprofile.apptarget"
            implementationClass = "androidx.baselineprofile.gradle.apptarget.BaselineProfileAppTargetPlugin"
        }
        baselineProfileWrapper {
            id = "androidx.baselineprofile"
            implementationClass = "androidx.baselineprofile.gradle.wrapper.BaselineProfileWrapperPlugin"
        }
        inspection {
            id = "androidx.inspection"
            implementationClass = "androidx.inspection.gradle.InspectionPlugin"
        }
        darwinBenchmark {
            id = "androidx.benchmark.darwin"
            implementationClass = "androidx.benchmark.darwin.gradle.DarwinBenchmarkPlugin"
        }
        stableaidl {
            id = "androidx.stableaidl"
            implementationClass = "androidx.stableaidl.StableAidlPlugin"
        }
    }
}
