// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    ext.kotlin_version = '1.3.21'

    repositories {
        google()
        maven {
            url "https://plugins.gradle.org/m2/"
        }
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.3'
        classpath 'com.google.gms:google-services:4.2.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6.2'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

// global properties used in sub modules
ext {
    versionCodeProp = 90913
    versionNameProp = "0.9.13-dev"
    versionBuild = System.getenv("BUILD_NUMBER") as Integer ?: 0
    buildNumberProp = "${versionBuild}"
}

allprojects {
    ext.support_lib_version = '28.0.0'
    ext.gson_version = '2.8.5'
    ext.okhttp_version = '3.12.3'

    repositories {
        // For Matrix Android SDK.
        // This has to be declared first, to ensure that Matrix Android SDK library is not downloaded from another repo
        maven {
            url 'https://jitpack.io'
            content {
                // Use this repo only for matrix SDK library
                includeGroupByRegex "com\\.github\\.matrix-org"
                // Also add subgroups, due to SDK split into modules
                includeGroupByRegex "com\\.github\\.matrix-org\\.matrix-android-sdk"
                // And Olm library
                includeGroupByRegex "org\\.matrix\\.gitlab\\.matrix-org"
                // And PhotoView
                includeGroupByRegex "com\\.github\\.chrisbanes"
            }
        }
        // Jitsi repo
        maven {
            url "https://github.com/vector-im/jitsi_libre_maven/raw/master/releases"
        }
        google()
        maven {
            url "https://maven.google.com"
        }
        jcenter()
        maven {
            url "https://s3.amazonaws.com/repo.commonsware.com"
        }
        maven {
            url "https://oss.sonatype.org/content/repositories/snapshots"
        }
    }
}

apply plugin: 'org.sonarqube'

sonarqube {
    properties {
        property "sonar.projectName", "Riot-Android"
        property "sonar.projectKey", "vector.android.riot"
        property "sonar.host.url", "https://sonarcloud.io"
        property "sonar.projectVersion", project(":vector").android.defaultConfig.versionName
        property "sonar.sourceEncoding", "UTF-8"
        property "sonar.links.homepage", "https://github.com/vector-im/riot-android/"
        property "sonar.links.ci", "https://buildkite.com/matrix-dot-org/riot-android"
        property "sonar.links.scm", "https://github.com/vector-im/riot-android/"
        property "sonar.links.issue", "https://github.com/vector-im/riot-android/issues"
        property "sonar.organization", "new_vector_ltd_organization"
        property "sonar.login", project.hasProperty("SONAR_LOGIN") ? SONAR_LOGIN : "invalid"
    }
}

project(":vector") {
    sonarqube {
        properties {
            property "sonar.sources", project(":vector").android.sourceSets.main.java.srcDirs
            // exclude source code from analyses separated by a colon (:)
            // property "sonar.exclusions", "**/*.*"
        }
    }
}

if (findProject(':matrix-sdk') != null) {
    project(":matrix-sdk") {
        sonarqube {
            skipProject = true
        }
    }
}

if (findProject(':matrix-sdk-crypto') != null) {
    project(":matrix-sdk-crypto") {
        sonarqube {
            skipProject = true
        }
    }
}

if (findProject(':matrix-sdk-core') != null) {
    project(":matrix-sdk-core") {
        sonarqube {
            skipProject = true
        }
    }
}
