/*
 * Copyright 2019-2021 Mamoe Technologies and contributors.
 *
 *  此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
 *  Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
 *
 *  https://github.com/mamoe/mirai/blob/master/LICENSE
 */

plugins {
    kotlin("jvm")
    id("org.jetbrains.kotlinx.binary-compatibility-validator")
}

description = "Binary compatibility validator for project $$PROJECT_PATH$$"

tasks.withType(kotlinx.validation.KotlinApiBuildTask::class) {
    val paths = """
        $$BUILD_DIR$$
        """
        .lines().filter { it.isNotBlank() }.map { project("$$PROJECT_PATH$$").buildDir.resolve(it.trim()) }
    inputClassesDirs =
        files(inputClassesDirs.files, *paths.toTypedArray())
}

apiValidation {
    ignoredPackages.add("net.mamoe.mirai.internal")
    ignoredPackages.add("net.mamoe.mirai.console.internal")
    nonPublicMarkers.add("net.mamoe.mirai.utils.MiraiInternalApi")
    nonPublicMarkers.add("net.mamoe.mirai.utils.MiraiInternalFile")
    nonPublicMarkers.add("net.mamoe.mirai.console.util.ConsoleInternalApi")
    nonPublicMarkers.add("net.mamoe.mirai.console.ConsoleFrontEndImplementation") // added on 2.11
    nonPublicMarkers.add("net.mamoe.mirai.console.util.ConsoleExperimentalApi")
    nonPublicMarkers.add("net.mamoe.mirai.utils.MiraiExperimentalApi")
    nonPublicMarkers.add("net.mamoe.mirai.console.command.descriptor.ExperimentalCommandDescriptors") // added on 2.14
}