// Top-level build file where you can add configuration options common to all sub-projects/modules.

apply plugin: 'com.github.ben-manes.versions'

buildscript {
    repositories {
        jcenter()

        maven {
            url 'https://jitpack.io'
        }
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:1.5.0'
        classpath 'com.github.ben-manes:gradle-versions-plugin:0.12.0'

        // Use an unreleased version via JitPack.
        classpath 'com.github.JakeWharton:sdk-manager-plugin:1d29782'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
