apply plugin: android.support.SupportAndroidLibraryPlugin

dependencies {
    api project(':support-v4')
    api project(':appcompat-v7')
    api project(':recyclerview-v7')
    api project(':transition')

    androidTestImplementation libs.test_runner,      { exclude module: 'support-annotations' }
    androidTestImplementation libs.espresso_core,    { exclude module: 'support-annotations' }
    androidTestImplementation libs.espresso_contrib, { exclude group: 'com.android.support' }
    androidTestImplementation libs.mockito_core,     { exclude group: 'net.bytebuddy' } // DexMaker has it"s own MockMaker
    androidTestImplementation libs.dexmaker_mockito, { exclude group: 'net.bytebuddy' } // DexMaker has it"s own MockMaker
    androidTestImplementation project(':support-testutils')

    testImplementation libs.junit
    testImplementation (libs.test_runner) {
        exclude module: 'support-annotations'
    }
}

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

    sourceSets {
        main.java.srcDirs = [
                'base',
                'gingerbread',
                'ics',
                'lollipop',
                'src'
        ]
        main.res.srcDirs = [
                'res',
                'res-public'
        ]
        main.resources.srcDir 'src'

        test.java.srcDir 'jvm-tests/src'
    }

    buildTypes.all {
        consumerProguardFiles 'proguard-rules.pro'
    }

    aaptOptions {
        additionalParameters "--no-version-vectors"
    }

    buildTypes {
        debug {
            pseudoLocalesEnabled true
        }
    }
}

supportLibrary {
    name 'Android Design Support Library'
    publish true
    inceptionYear '2015'
    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."
}
