allprojects {
    repositories {
        // 国内镜像优先（本网络 maven.google.com 不可达）
        maven("https://maven.aliyun.com/repository/google")
        maven("https://maven.aliyun.com/repository/central")
        maven("https://maven.aliyun.com/repository/public")
        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)
}
subprojects {
    project.evaluationDependsOn(":app")
}

// 各三方插件的 Java/Kotlin 编译目标不一致（有的 11、有的 17、Kotlin 默认 1.8），
// 会因 "Inconsistent JVM Target Compatibility" 直接报错。
// 这里统一往 17 对齐（configureEach 在任务创建时生效），
// 个别插件若在自身配置里再覆盖，则由 gradle.properties 里的
// kotlin.jvm.target.validation.mode=warning 兜底降级为警告。
subprojects {
    tasks.withType<JavaCompile>().configureEach {
        sourceCompatibility = "17"
        targetCompatibility = "17"
    }
    tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
        compilerOptions {
            jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_17)
        }
    }
}

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