apply plugin: 'com.android.application'

dependencies {
    compile project(':support-appcompat-v7')
    compile project(':support-cardview-v7')
    compile project(':support-gridlayout-v7')
    compile project(':support-mediarouter-v7')
    compile project(':support-palette-v7')
    compile project(':support-recyclerview-v7')
}

android {
    compileSdkVersion project.ext.currentSdk

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion project.ext.currentSdk
        vectorDrawables.useSupportLibrary = true
    }

    sourceSets {
        main.manifest.srcFile 'AndroidManifest.xml'
        main.java.srcDirs = ['src']
        main.aidl.srcDirs = ['src']
        main.res.srcDirs = ['res']
    }

    signingConfigs {
        debug {
            // Use a local debug keystore to avoid build server issues.
            storeFile project.rootProject.init.debugKeystore
        }
    }

    lintOptions {
        abortOnError true
        check 'NewApi'
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}

