
rootProject.buildscript {
    rootProject.ext.checkoutDir = "${rootProject.projectDir}/../../../.."
    Properties dependencyProperties = new Properties()
    dependencyProperties.load(new FileInputStream("${rootProject.ext.checkoutDir}/tools/buildSrc/base/dependencies.properties"))
    String kotlinStdLibProperty = dependencyProperties.kotlin_stdlib
    String bundledKotlinVersion= kotlinStdLibProperty.substring(kotlinStdLibProperty.lastIndexOf(":")+1)

    apply from: "${rootProject.ext.checkoutDir}/tools/buildSrc/base/version.gradle"
    rootProject.ext.latestCompileSdk = 30
    rootProject.ext.buildToolsVersion = "29.0.2"
    rootProject.ext.kotlinVersion = bundledKotlinVersion

    repositories {
        maven { url "file://${rootProject.ext.checkoutDir}/out/repo/" }
        maven { url "file://${rootProject.ext.checkoutDir}/prebuilts/tools/common/m2/repository/" }
    }

    dependencies {
        classpath "com.android.tools.build:gradle:${buildVersion}"
    }
}

rootProject.allprojects {
    repositories {
        maven { url "file://${rootProject.ext.checkoutDir}/out/repo/" }
        maven { url "file://${rootProject.ext.checkoutDir}/prebuilts/tools/common/m2/repository/" }
    }

    if (!project.hasProperty('maven_repo')) {
        project.ext["maven_repo"] = new File(project.rootProject.getProjectDir(), "../test-local-repo").getCanonicalPath()
    }
}
