apply plugin: android.support.SupportLibraryPlugin
archivesBaseName = 'preference-leanback-v17'

dependencies {
    compile project(':support-v4')
    compile project(':support-appcompat-v7')
    compile project(':support-recyclerview-v7')
    compile project(':support-preference-v7')
    compile project(':support-preference-v14')
    compile project(':support-leanback-v17')
}

android {
    compileSdkVersion project.ext.currentSdk

    defaultConfig {
        minSdkVersion 17
    }

    sourceSets {
        main.java.srcDirs = [
                'api21',
                'src'
        ]
        main.res.srcDir 'res'
    }
}

supportLibrary {
    name 'Android Support Leanback Preference v17'
    inceptionYear '2015'
    description 'Android Support Leanback Preference v17'
}

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: uri(rootProject.ext.supportRepoOut)) {
            }
        }
    }
}
