2018-10-03 15:56:33 +00:00
|
|
|
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
|
|
|
|
|
|
|
buildscript {
|
2021-09-15 09:28:58 +00:00
|
|
|
apply from: 'dependencies.gradle'
|
2021-12-10 20:19:43 +00:00
|
|
|
apply from: 'dependencies_groups.gradle'
|
2021-09-15 09:28:58 +00:00
|
|
|
|
2018-10-03 15:56:33 +00:00
|
|
|
repositories {
|
|
|
|
google()
|
2019-03-18 15:53:52 +00:00
|
|
|
maven {
|
|
|
|
url "https://plugins.gradle.org/m2/"
|
2019-05-07 12:02:15 +00:00
|
|
|
}
|
|
|
|
}
|
2021-09-15 09:28:58 +00:00
|
|
|
|
2018-10-03 15:56:33 +00:00
|
|
|
dependencies {
|
2021-09-02 07:36:13 +00:00
|
|
|
// Release notes of Android Gradle Plugin (AGP):
|
|
|
|
// https://developer.android.com/studio/releases/gradle-plugin
|
2021-09-15 09:28:58 +00:00
|
|
|
classpath libs.gradle.gradlePlugin
|
|
|
|
classpath libs.gradle.kotlinPlugin
|
2021-10-14 16:47:28 +00:00
|
|
|
classpath libs.gradle.hiltPlugin
|
2021-08-09 23:06:44 +00:00
|
|
|
classpath 'com.google.gms:google-services:4.3.10'
|
2021-06-11 05:55:24 +00:00
|
|
|
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
|
2022-02-28 23:09:55 +00:00
|
|
|
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.5'
|
2022-02-24 14:25:30 +00:00
|
|
|
classpath "com.likethesalad.android:stem-plugin:2.0.0"
|
2022-04-04 23:09:11 +00:00
|
|
|
classpath 'org.owasp:dependency-check-gradle:7.0.4.1'
|
2022-04-14 23:08:23 +00:00
|
|
|
classpath "org.jetbrains.dokka:dokka-gradle-plugin:1.6.20"
|
2018-10-03 15:56:33 +00:00
|
|
|
// NOTE: Do not place your application dependencies here; they belong
|
|
|
|
// in the individual module build.gradle files
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-10-01 11:28:47 +00:00
|
|
|
// ktlint Plugin
|
|
|
|
plugins {
|
2021-12-27 23:06:36 +00:00
|
|
|
id "org.jlleitschuh.gradle.ktlint" version "10.2.1"
|
2021-10-01 11:28:47 +00:00
|
|
|
}
|
|
|
|
|
2022-03-22 13:05:33 +00:00
|
|
|
// https://github.com/jeremylong/DependencyCheck
|
|
|
|
apply plugin: 'org.owasp.dependencycheck'
|
|
|
|
|
2022-03-29 17:38:10 +00:00
|
|
|
dependencyCheck {
|
|
|
|
// See https://jeremylong.github.io/DependencyCheck/general/suppression.html
|
|
|
|
suppressionFiles = [
|
|
|
|
"./tools/dependencycheck/suppressions.xml"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
2018-10-03 15:56:33 +00:00
|
|
|
allprojects {
|
2021-10-01 11:28:47 +00:00
|
|
|
apply plugin: "org.jlleitschuh.gradle.ktlint"
|
|
|
|
|
2018-10-03 15:56:33 +00:00
|
|
|
repositories {
|
2022-01-31 15:29:31 +00:00
|
|
|
mavenCentral {
|
|
|
|
content {
|
|
|
|
groups.mavenCentral.regex.each { includeGroupByRegex it }
|
|
|
|
groups.mavenCentral.group.each { includeGroup it }
|
|
|
|
}
|
|
|
|
}
|
2019-05-16 08:23:57 +00:00
|
|
|
maven {
|
|
|
|
url 'https://jitpack.io'
|
2019-07-11 12:03:20 +00:00
|
|
|
content {
|
2021-12-10 20:35:48 +00:00
|
|
|
groups.jitpack.regex.each { includeGroupByRegex it }
|
|
|
|
groups.jitpack.group.each { includeGroup it }
|
2019-07-11 12:03:20 +00:00
|
|
|
}
|
|
|
|
}
|
2020-08-12 12:02:00 +00:00
|
|
|
// Jitsi repo
|
|
|
|
maven {
|
2022-03-29 16:24:44 +00:00
|
|
|
url "https://github.com/vector-im/jitsi_libre_maven/raw/main/android-sdk-5.0.2"
|
2020-08-14 19:33:25 +00:00
|
|
|
// Note: to test Jitsi release you can use a local file like this:
|
2021-11-18 12:18:37 +00:00
|
|
|
// url "file:///Users/bmarty/workspaces/jitsi_libre_maven/android-sdk-3.10.0"
|
2021-12-09 20:23:33 +00:00
|
|
|
content {
|
2021-12-10 20:35:48 +00:00
|
|
|
groups.jitsi.regex.each { includeGroupByRegex it }
|
|
|
|
groups.jitsi.group.each { includeGroup it }
|
2021-12-09 20:23:33 +00:00
|
|
|
}
|
2020-08-12 12:02:00 +00:00
|
|
|
}
|
2021-12-09 20:41:37 +00:00
|
|
|
google {
|
|
|
|
content {
|
2021-12-10 20:35:48 +00:00
|
|
|
groups.google.regex.each { includeGroupByRegex it }
|
|
|
|
groups.google.group.each { includeGroup it }
|
2021-12-09 20:41:37 +00:00
|
|
|
}
|
|
|
|
}
|
2021-12-10 17:09:14 +00:00
|
|
|
//noinspection JcenterRepositoryObsolete
|
2021-12-09 20:03:36 +00:00
|
|
|
jcenter {
|
|
|
|
content {
|
2021-12-10 20:35:48 +00:00
|
|
|
groups.jcenter.regex.each { includeGroupByRegex it }
|
|
|
|
groups.jcenter.group.each { includeGroup it }
|
2021-12-09 20:03:36 +00:00
|
|
|
}
|
|
|
|
}
|
2018-10-03 15:56:33 +00:00
|
|
|
}
|
2019-07-16 17:13:48 +00:00
|
|
|
|
2019-10-08 12:30:59 +00:00
|
|
|
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
|
|
|
|
// Warnings are potential errors, so stop ignoring them
|
2020-10-08 11:04:55 +00:00
|
|
|
// You can override by passing `-PallWarningsAsErrors=false` in the command line
|
2020-10-22 15:23:45 +00:00
|
|
|
kotlinOptions.allWarningsAsErrors = project.getProperties().getOrDefault("allWarningsAsErrors", "true").toBoolean()
|
2019-10-08 12:30:59 +00:00
|
|
|
}
|
2021-10-01 11:28:47 +00:00
|
|
|
|
|
|
|
// Fix "Java heap space" issue
|
|
|
|
tasks.withType(org.jlleitschuh.gradle.ktlint.tasks.BaseKtLintCheckTask).configureEach {
|
|
|
|
it.workerMaxHeapSize.set("2G")
|
|
|
|
}
|
|
|
|
|
|
|
|
// See https://github.com/JLLeitschuh/ktlint-gradle#configuration
|
|
|
|
ktlint {
|
2022-03-28 14:17:27 +00:00
|
|
|
// See https://github.com/pinterest/ktlint/releases/
|
|
|
|
version = "0.45.1"
|
2021-10-01 11:28:47 +00:00
|
|
|
android = true
|
|
|
|
ignoreFailures = false
|
|
|
|
enableExperimentalRules = true
|
|
|
|
// display the corresponding rule
|
|
|
|
verbose = true
|
|
|
|
disabledRules = [
|
2022-04-12 09:25:35 +00:00
|
|
|
// TODO: Re-enable these 4 rules after reformatting project
|
2022-04-12 09:12:14 +00:00
|
|
|
"indent",
|
2022-04-12 09:18:01 +00:00
|
|
|
"experimental:argument-list-wrapping",
|
2022-04-12 09:25:35 +00:00
|
|
|
"max-line-length",
|
|
|
|
"parameter-list-wrapping",
|
|
|
|
|
2021-10-01 11:28:47 +00:00
|
|
|
"spacing-between-declarations-with-comments",
|
|
|
|
"no-multi-spaces",
|
|
|
|
"experimental:spacing-between-declarations-with-annotations",
|
2022-03-28 14:35:03 +00:00
|
|
|
"experimental:annotation",
|
|
|
|
// - Missing newline after "("
|
|
|
|
// - Missing newline before ")"
|
|
|
|
"wrapping",
|
|
|
|
// - Unnecessary trailing comma before ")"
|
|
|
|
"experimental:trailing-comma",
|
|
|
|
// - A block comment in between other elements on the same line is disallowed
|
|
|
|
"experimental:comment-wrapping",
|
|
|
|
// - A KDoc comment after any other element on the same line must be separated by a new line
|
|
|
|
"experimental:kdoc-wrapping",
|
2021-10-01 11:28:47 +00:00
|
|
|
]
|
|
|
|
}
|
2018-10-03 15:56:33 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
task clean(type: Delete) {
|
|
|
|
delete rootProject.buildDir
|
|
|
|
}
|
2019-03-18 15:53:52 +00:00
|
|
|
|
2022-03-03 10:40:11 +00:00
|
|
|
def launchTask = getGradle()
|
|
|
|
.getStartParameter()
|
|
|
|
.getTaskRequests()
|
|
|
|
.toString()
|
|
|
|
.toLowerCase()
|
|
|
|
|
|
|
|
if (launchTask.contains("codeCoverageReport".toLowerCase())) {
|
|
|
|
apply from: 'coverage.gradle'
|
|
|
|
}
|
|
|
|
|
2019-03-18 15:53:52 +00:00
|
|
|
apply plugin: 'org.sonarqube'
|
|
|
|
|
2019-07-03 13:24:56 +00:00
|
|
|
// To run a sonar analysis:
|
|
|
|
// Run './gradlew sonarqube -Dsonar.login=<REPLACE_WITH_SONAR_KEY>'
|
2022-03-01 14:47:41 +00:00
|
|
|
// The SONAR_KEY is stored in passbolt as Token Sonar Cloud Bma
|
2019-07-03 13:24:56 +00:00
|
|
|
|
2019-03-18 15:53:52 +00:00
|
|
|
sonarqube {
|
|
|
|
properties {
|
2020-08-27 15:48:19 +00:00
|
|
|
property "sonar.projectName", "Element-Android"
|
|
|
|
property "sonar.projectKey", "im.vector.app.android"
|
2019-03-18 15:53:52 +00:00
|
|
|
property "sonar.host.url", "https://sonarcloud.io"
|
2019-03-19 13:38:15 +00:00
|
|
|
property "sonar.projectVersion", project(":vector").android.defaultConfig.versionName
|
2019-03-18 15:53:52 +00:00
|
|
|
property "sonar.sourceEncoding", "UTF-8"
|
2020-08-27 15:43:22 +00:00
|
|
|
property "sonar.links.homepage", "https://github.com/vector-im/element-android/"
|
2022-03-03 15:41:09 +00:00
|
|
|
property "sonar.links.ci", "https://github.com/vector-im/element-android/actions"
|
2020-08-27 15:43:22 +00:00
|
|
|
property "sonar.links.scm", "https://github.com/vector-im/element-android/"
|
|
|
|
property "sonar.links.issue", "https://github.com/vector-im/element-android/issues"
|
2019-03-18 15:53:52 +00:00
|
|
|
property "sonar.organization", "new_vector_ltd_organization"
|
2022-03-03 15:41:09 +00:00
|
|
|
property "sonar.java.coveragePlugin", "jacoco"
|
|
|
|
property "sonar.coverage.jacoco.xmlReportPaths", "${project.buildDir}/reports/jacoco/allCodeCoverageReport/allCodeCoverageReport.xml"
|
2019-03-18 15:53:52 +00:00
|
|
|
property "sonar.login", project.hasProperty("SONAR_LOGIN") ? SONAR_LOGIN : "invalid"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-03-19 13:38:15 +00:00
|
|
|
project(":vector") {
|
2019-03-18 15:53:52 +00:00
|
|
|
sonarqube {
|
|
|
|
properties {
|
2019-03-19 13:38:15 +00:00
|
|
|
property "sonar.sources", project(":vector").android.sourceSets.main.java.srcDirs
|
2019-03-18 15:53:52 +00:00
|
|
|
// exclude source code from analyses separated by a colon (:)
|
2020-08-27 15:39:09 +00:00
|
|
|
// Exclude Java source
|
|
|
|
property "sonar.exclusions", "**/BugReporterMultipartBody.java"
|
2019-03-18 15:53:52 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2019-07-03 13:24:56 +00:00
|
|
|
|
2022-02-22 18:40:17 +00:00
|
|
|
project(":library:diff-match-patch") {
|
2020-08-27 13:37:39 +00:00
|
|
|
sonarqube {
|
|
|
|
skipProject = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-07-03 13:24:56 +00:00
|
|
|
//project(":matrix-sdk-android") {
|
|
|
|
// sonarqube {
|
|
|
|
// properties {
|
|
|
|
// property "sonar.sources", project(":matrix-sdk-android").android.sourceSets.main.java.srcDirs
|
|
|
|
// // exclude source code from analyses separated by a colon (:)
|
|
|
|
// // property "sonar.exclusions", "**/*.*"
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//}
|