// Copyright 2020-2023, Collabora, Ltd.
// SPDX-License-Identifier: BSL-1.0

buildscript {
    ext {
        kotlinVersion = '2.0.0'

        latestAboutLibsRelease = '11.2.2'

        androidxCoreVersion = '1.13.1'
        androidxAnnotationVersion = '1.8.0'
        androidxAppCompatVersion = '1.7.0'
        androidxLifecycleVersion = '2.8.2'
        androidxConstraintLayoutVersion = '2.1.4'
        androidxCardViewVersion = '1.0.0'
        androidxRecyclerViewVersion = '1.3.2'

        hiltVersion = '2.51.1'

        materialVersion = '1.12.0'

        // This is the version to download if we can't find it locally.
        eigenFetchVersion = '3.4.0'

        // If you update this, must also update .gitlab-ci/config.yml
        buildToolsVersion = '34.0.0'
    }
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.mikepenz.aboutlibraries.plugin:aboutlibraries-plugin:${latestAboutLibsRelease}"
        classpath "com.google.dagger:hilt-android-gradle-plugin:$hiltVersion"
    }
}
plugins {
    // Android Gradle Plugin
    id 'com.android.application' version '8.5.0' apply false
    id 'com.android.library' version '8.5.0' apply false

    id 'org.jetbrains.kotlin.android' version "$kotlinVersion" apply false

    // Used for getting the eigen dir, explicit python binary, etc. from local.properties
    id 'com.github.b3er.local.properties' version '1.1'

    // For getting git describe data and formatting it how Android wants.
    id "com.gladed.androidgitversion" version "0.4.14"

    // For downloading e.g. the CDDL (for transitive dependencies of hilt)
    id "de.undercouch.download" version "4.1.2"

    // So we don't have to check in generated files: we start with SVGs for vector art.
    id "com.quittle.svg-2-android-vector" version "0.1.0" apply false

    // Spotless for Java and Kotlin's code formatting
    id 'com.diffplug.spotless' version "6.22.0"
}

spotless {
    format 'misc', {
        // define the files to apply `misc` to
        target '*.gradle', '*.md', '.gitignore'

        // define the steps to apply to those files
        trimTrailingWhitespace()
        indentWithSpaces(4)
        endWithNewline()
    }
}

ext {
    cmake_version = '3.22.1'
    ndk_version = '26.3.11579264'
    // If you update this, must also update .gitlab-ci/config.yml
    sharedCompileSdk = 34
    sharedTargetSdk = 31
    sharedMinSdk = 26

    // If you are building on Windows, you will need to explicitly set eigenIncludeDir in your
    // local.properties file since the default value provided below only makes sense on *nix
    eigenIncludeDir = project.findProperty('eigenIncludeDir') ?: '/usr/include/eigen3'

    // If you're having trouble with a "can't find python" CMake error, you can specify the path to
    // Python 3 explicitly in local.properties with a property named "pythonBinary"
    pythonBinary = project.findProperty('pythonBinary')
}