/*
 * Copyright (C) 2020 The Dagger Authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

buildscript {
    ext {
        dagger_version = 'LOCAL-SNAPSHOT'
        kotlin_version = '2.0.21'
        agp_version = System.getenv('AGP_VERSION') ?: "8.1.1"
    }
    repositories {
        google()
        mavenCentral()
        mavenLocal()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:$agp_version"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath "com.google.dagger:hilt-android-gradle-plugin:$dagger_version"
    }
}

allprojects {
    repositories {
      google()
      mavenCentral()
      mavenLocal()
    }
    // TODO(bcorso): Consider organizing all projects under a single project
    // that share a build.gradle configuration to reduce the copy-paste.
    // Local tests: Adds logs for individual local tests
    tasks.withType(Test) {
        testLogging {
            exceptionFormat "full"
            showCauses true
            showExceptions true
            showStackTraces true
            showStandardStreams true
            events = ["passed", "skipped", "failed", "standardOut", "standardError"]
        }
    }
}
subprojects {
    afterEvaluate {
        dependencies {
            // This is needed to align older versions of kotlin-stdlib.
            // The main issue is that in v1.8.0 the jdk7 and jdk8 artifacts were
            // merged into kotlin-stdlib, so without this alignment we end up
            // getting duplicate classes by pulling in both artifacts.
            // See: https://kotlinlang.org/docs/whatsnew18.html#usage-of-the-latest-kotlin-stdlib-version-in-transitive-dependencies
            implementation(platform("org.jetbrains.kotlin:kotlin-bom:$kotlin_version"))
        }
    }
}

// Instrumentation tests: Combines test reports for all modules
apply plugin: 'android-reporting'
