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)
    androidTestImplementation(ESPRESSO_CORE)
    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 {
        // 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
}
