/*
 * Copyright 2020 Backbase R&D B.V.
 *
 * 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 {
    boolean composeEnabled = Boolean.parseBoolean(project.composeEnabled) && Integer.parseInt(ciApiLevel) >= 21
    ext.composeEnabled = composeEnabled

    boolean lottieAnimationEnabled = Integer.parseInt(ciApiLevel) >= 16
    ext.lottieAnimationEnabled = lottieAnimationEnabled

    dependencies {
        classpath(libs.android.gradlePlugin)

        classpath(libs.kotlin.gradlePlugin)
        classpath(libs.dokka.gradlePlugin)
        classpath(libs.kotlinx.binaryCompatibilityValidator)

        classpath(libs.poko.gradlePlugin)

        classpath(libs.detekt.gradlePlugin)
    }

    repositories {
        mavenCentral()
        google()
    }
}

ext {
    compileSdk = 33
    minSdk = 14
    minSdkLottie = 16
    minSdkCompose = 21
    targetSdk = 30
    buildToolsVersion = '30.0.3'
}

apply plugin: 'binary-compatibility-validator'
apiValidation {
    if (lottieAnimationEnabled) {
        ignoredProjects += ["demo-core", "demo"]
    }
    if (composeEnabled) {
        ignoredProjects += ["demo-compose"]
    }
}

apply plugin: "org.jetbrains.dokka"
dokkaGfmMultiModule {
    outputDirectory.set new File("$rootDir/docs/1.x")
}

apply from: "gradle/version.gradle"

allprojects { project ->
    repositories {
        mavenCentral()
        google()

        // Transitive kotlinx-html-jvm dependency for Dokka:
        maven { url = "https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven" }
    }

    project.plugins.withType(com.android.build.gradle.LibraryPlugin) {
        //region Disable BuildConfig for libraries
        project.android.libraryVariants.all { variant ->
            variant.generateBuildConfigProvider.get().enabled = false
        }
        //endregion
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
    delete rootProject.file("docs/1.x")
}
