import static android.support.dependencies.DependenciesKt.*
import android.support.LibraryGroups
import android.support.LibraryVersions

plugins {
    id("SupportAndroidLibraryPlugin")
}

dependencies {
    api(project(":support-annotations"))
    api(project(":support-core-utils"))
    api(project(":support-fragment"))
    api(project(":support-vector-drawable"))
    api(project(":animated-vector-drawable"))

    androidTestImplementation(TEST_RUNNER, libs.exclude_annotations)
    androidTestImplementation(ESPRESSO_CORE, libs.exclude_annotations)
    androidTestImplementation(MOCKITO_CORE, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
    androidTestImplementation(DEXMAKER_MOCKITO, libs.exclude_bytebuddy) // DexMaker has it"s own MockMaker
    androidTestImplementation project(':support-testutils'), {
        exclude group: 'com.android.support', module: 'appcompat-v7'
    }
}

android {
    defaultConfig {
        minSdkVersion(14)
        // This disables the builds tools automatic vector -> PNG generation
        generatedDensities = []
    }

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

    aaptOptions {
        additionalParameters "--no-version-vectors"
        noCompress 'ttf'
    }
}

supportLibrary {
    name = "Android AppCompat Library v7"
    publish = true
    mavenVersion = LibraryVersions.SUPPORT_LIBRARY
    mavenGroup = LibraryGroups.SUPPORT
    inceptionYear = "2011"
    description = "The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren\'t a part of the framework APIs. Compatible on devices running API 14 or later."
    legacySourceLocation = true
}
