/*
 * Copyright (C) 2016 Glucosio Foundation
 *
 * This file is part of Glucosio.
 *
 * Glucosio is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, version 3.
 *
 * Glucosio is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Glucosio.  If not, see <http://www.gnu.org/licenses/>.
 *
 *
 */
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    apply from: 'dependencies.gradle'

    repositories {
        jcenter()
        google()
    }

    dependencies {
        classpath deps.buildScript.androidGradlePlugin
        classpath deps.buildScript.playServicesGradlePlugin
        classpath deps.buildScript.realmGradlePlugin

        classpath deps.buildScript.coveralsGradlePlugin
        classpath deps.buildScript.versionsGradlePlugin
        classpath deps.buildScript.dexcountGradlePlugin
    }
}
allprojects {
    repositories {
        jcenter()
        google()
    }

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

    // Force all of the primary support libraries to use the same version.
    configurations.all {
        resolutionStrategy {
            eachDependency { details ->
                if (details.requested.group == 'com.android.support') {
                    details.useVersion versions.supportLibrary
                }
            }
        }
    }

    // Force only stable dependencies
    dependencyUpdates.resolutionStrategy = {
        componentSelection { rules ->
            rules.all { ComponentSelection selection ->
                boolean rejected = ['alpha', 'beta', 'rc', 'cr', 'm', 'preview'].any {
                    qualifier -> selection.candidate.version ==~ /(?i).*[.-]${qualifier}[.\d-]*/
                }
                if (rejected) {
                    selection.reject('Release candidate')
                }
            }
        }
    }

}

task wrapper(type: Wrapper) {
    gradleVersion = versions.gradle
}
