allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

val newBuildDir: Directory =
    rootProject.layout.buildDirectory
        .dir("../../build")
        .get()
rootProject.layout.buildDirectory.value(newBuildDir)

subprojects {
    val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
    project.layout.buildDirectory.value(newSubprojectBuildDir)
}

// Alguns plugins (ex: flutter_secure_storage 11) declaram compileSdk 37, mas o
// SDK publica esse nível como `android-37.0` e o Gradle procura `android-37` —
// o build quebra com "Failed to find target with hash string 'android-37'".
// Forçar os plugins ao compileSdk do app mantém uma única versão de SDK no
// projeto. Precisa vir ANTES de `evaluationDependsOn`, senão o projeto já está
// avaliado e o afterEvaluate falha. Revisar quando o android-37 estabilizar.
subprojects {
    afterEvaluate {
        extensions.findByName("android")?.let { ext ->
            (ext as com.android.build.gradle.BaseExtension).compileSdkVersion(36)
        }
    }
}

subprojects {
    project.evaluationDependsOn(":app")
}

tasks.register<Delete>("clean") {
    delete(rootProject.layout.buildDirectory)
}
