import static androidx.build.dependencies.DependenciesKt.*
import androidx.build.LibraryGroups
import androidx.build.LibraryVersions

plugins {
    id("SupportAndroidLibraryPlugin")
}

dependencies {
    api project(':appcompat')
    api project(':cardview')
    api "com.android.temp.support:design-widget:28.0.0-alpha1", {
        exclude group: 'androidx.annotation'
        exclude group: 'androidx.core'
        exclude group: 'androidx.legacy'
        exclude group: 'androidx.fragment'
        exclude group: 'androidx.transition'
        exclude group: 'androidx.appcompat'
        exclude group: 'androidx.recyclerview'
        exclude group: 'androidx.cardview'
    }
    api project(':annotation')
    api project(':legacy-support-v4')
    api project(':recyclerview')
    api project(':gridlayout')

    androidTestImplementation(TEST_RUNNER_TMP, libs.exclude_for_espresso)
    androidTestImplementation(ESPRESSO_CORE_TMP, libs.exclude_for_espresso)
    androidTestImplementation(ESPRESSO_CONTRIB_TMP, libs.exclude_for_espresso)
    androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
    androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker

    testImplementation(JUNIT)
    testImplementation(TEST_RUNNER_TMP, libs.exclude_for_espresso)
    testImplementation(MOCKITO_CORE)

    compileOnly fileTree(dir: 'car-stubs', include: ['android.car.jar'])
    // androidTest uses android.car APIs to provide test utility.
    androidTestCompileOnly fileTree(dir: 'car-stubs', include: ['android.car.jar'])
}

android {
    sourceSets {
        main.res.srcDirs 'res', 'res-public'
    }
}

supportLibrary {
    name = "Android Car Support UI"
    publish = true
    mavenVersion = LibraryVersions.SUPPORT_LIBRARY
    mavenGroup = LibraryGroups.CAR
    inceptionYear = "2017"
    description = "Android Car Support UI"
    java8Library = true
    minSdkVersion = 24
    failOnUncheckedWarnings = false
}
