element-android/build.gradle

323 lines
13 KiB
Groovy
Raw Normal View History

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'
2018-10-03 15:56:33 +00:00
repositories {
google()
jcenter()
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
classpath 'com.google.gms:google-services:4.3.10'
classpath 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3'
classpath 'com.google.android.gms:oss-licenses-plugin:0.10.4'
classpath "com.likethesalad.android:string-reference:1.2.2"
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 {
id "org.jlleitschuh.gradle.ktlint" version "10.2.0"
2021-10-01 11:28:47 +00:00
}
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 {
// For olm library.
maven {
url 'https://gitlab.matrix.org/api/v4/projects/27/packages/maven'
content {
includeGroup 'org.matrix.android'
}
}
2019-05-16 08:23:57 +00:00
maven {
url 'https://jitpack.io'
2019-07-11 12:03:20 +00:00
content {
includeGroup 'com.github.Armen101'
includeGroup 'com.github.BillCarsonFr'
includeGroup 'com.github.chrisbanes'
includeGroup 'com.github.hyuwah'
includeGroup 'com.github.jetradarmobile'
2021-12-09 22:37:06 +00:00
includeGroup 'com.github.tapadoo'
includeGroup 'com.github.vector-im'
includeGroup 'com.github.yalantis'
includeGroup 'com.github.Zhuinden'
2019-07-11 12:03:20 +00:00
}
}
2020-08-12 12:02:00 +00:00
// Jitsi repo
maven {
url "https://github.com/vector-im/jitsi_libre_maven/raw/main/android-sdk-3.10.0"
// Note: to test Jitsi release you can use a local file like this:
// url "file:///Users/bmarty/workspaces/jitsi_libre_maven/android-sdk-3.10.0"
content {
includeGroup 'com.facebook.react'
includeGroup 'org.jitsi.react'
includeGroup 'org.webkit'
}
2020-08-12 12:02:00 +00:00
}
google {
content {
includeGroupByRegex "androidx\\..*"
2021-12-09 22:11:54 +00:00
includeGroupByRegex 'com\\.android\\.tools\\..*'
includeGroupByRegex "com\\.google\\.android\\..*"
includeGroup 'com.google.firebase'
2021-12-09 22:11:54 +00:00
includeGroup 'com.android'
includeGroup 'com.android.tools'
}
}
mavenCentral {
content {
includeGroup 'com.adevinta.android'
includeGroup 'com.airbnb.android'
2021-12-09 22:11:54 +00:00
includeGroup 'com.almworks.sqlite4java'
includeGroup 'com.arthenica'
includeGroup 'com.atlassian.commonmark'
includeGroup 'com.atlassian.pom'
2021-12-09 22:11:54 +00:00
includeGroup 'com.beust'
includeGroup 'com.davemorrissey.labs'
includeGroup 'com.dropbox.core'
includeGroup 'com.facebook.fresco'
includeGroup 'com.facebook.infer.annotation'
includeGroup 'com.facebook.soloader'
includeGroup 'com.facebook.stetho'
includeGroup 'com.fasterxml'
includeGroup 'com.fasterxml.jackson'
includeGroup 'com.fasterxml.jackson.core'
includeGroup 'com.gabrielittner.threetenbp'
includeGroup 'com.getkeepsafe.relinker'
includeGroup 'com.github.bumptech.glide'
includeGroup 'com.github.filippudak'
includeGroup 'com.github.filippudak.progresspieview'
2021-12-09 22:11:54 +00:00
includeGroup 'com.github.javaparser'
includeGroup 'com.github.piasy'
2021-12-09 23:04:10 +00:00
includeGroup 'com.github.shyiko.klob'
includeGroup 'com.google'
includeGroup 'com.google.auto.service'
2021-12-09 22:11:54 +00:00
includeGroup 'com.google.auto.value'
includeGroup 'com.google.code.findbugs'
includeGroup 'com.google.code.gson'
includeGroup 'com.google.dagger'
includeGroup 'com.google.devtools.ksp'
includeGroup 'com.google.errorprone'
includeGroup 'com.google.googlejavaformat'
includeGroup 'com.google.guava'
includeGroup 'com.google.j2objc'
2021-12-09 22:11:54 +00:00
includeGroup 'com.google.jimfs'
includeGroup 'com.google.protobuf'
includeGroup 'com.google.zxing'
includeGroup 'com.googlecode.htmlcompressor'
2021-12-09 22:11:54 +00:00
includeGroup 'com.googlecode.json-simple'
includeGroup 'com.googlecode.libphonenumber'
2021-12-09 22:11:54 +00:00
includeGroup 'com.ibm.icu'
includeGroup 'com.jakewharton.android.repackaged'
includeGroup 'com.jakewharton.timber'
includeGroup 'com.linkedin.dexmaker'
includeGroup 'com.nulab-inc'
includeGroup 'com.otaliastudios.opengl'
includeGroup 'com.parse.bolts'
2021-12-09 23:04:10 +00:00
includeGroup 'com.pinterest'
includeGroup 'com.pinterest.ktlint'
includeGroup 'com.squareup'
includeGroup 'com.squareup.duktape'
includeGroup 'com.squareup.moshi'
includeGroup 'com.squareup.okhttp3'
includeGroup 'com.squareup.okio'
includeGroup 'com.squareup.retrofit2'
2021-12-09 22:11:54 +00:00
includeGroup 'com.sun.activation'
includeGroup 'com.sun.istack'
includeGroup 'com.sun.xml.bind'
includeGroup 'com.sun.xml.bind.mvn'
includeGroup 'com.sun.xml.fastinfoset'
includeGroup 'com.thoughtworks.qdox'
includeGroup 'com.vanniktech'
includeGroup 'commons-cli'
includeGroup 'commons-codec'
2021-12-09 22:11:54 +00:00
includeGroup 'commons-io'
includeGroup 'commons-logging'
includeGroup 'info.picocli'
includeGroup 'io.arrow-kt'
2021-12-09 23:04:10 +00:00
includeGroup 'io.github.detekt.sarif4k'
includeGroup 'io.github.reactivecircus.flowbinding'
includeGroup 'io.jsonwebtoken'
includeGroup 'io.kindedj'
2021-12-09 22:11:54 +00:00
includeGroup 'io.mockk'
includeGroup 'io.noties.markwon'
includeGroup 'io.reactivex.rxjava2'
includeGroup 'io.realm'
2021-12-09 22:11:54 +00:00
includeGroup 'it.unimi.dsi'
includeGroup 'jakarta.activation'
includeGroup 'jakarta.xml.bind'
includeGroup 'javax.annotation'
includeGroup 'javax.inject'
2021-12-09 22:11:54 +00:00
includeGroup 'jline'
includeGroup 'jp.wasabeef'
2021-12-09 22:11:54 +00:00
includeGroup 'junit'
includeGroup 'me.leolin'
includeGroup 'me.saket'
2021-12-09 22:11:54 +00:00
includeGroup 'net.bytebuddy'
includeGroup 'net.java'
includeGroup 'net.java.dev.jna'
includeGroup 'net.lachlanmckee'
includeGroup 'net.ltgt.gradle.incap'
2021-12-09 22:11:54 +00:00
includeGroup 'net.sf.jopt-simple'
includeGroup 'net.sf.kxml'
includeGroup 'nl.dionsegijn'
2021-12-09 22:11:54 +00:00
includeGroup 'org.amshove.kluent'
includeGroup 'org.apache'
2021-12-09 22:11:54 +00:00
includeGroup 'org.apache.ant'
includeGroup 'org.apache.commons'
2021-12-09 22:11:54 +00:00
includeGroup 'org.apache.httpcomponents'
includeGroup 'org.apache.sanselan'
2021-12-09 22:11:54 +00:00
includeGroup 'org.bouncycastle'
includeGroup 'org.checkerframework'
2021-12-09 22:11:54 +00:00
includeGroup 'org.codehaus'
includeGroup 'org.codehaus.groovy'
includeGroup 'org.codehaus.mojo'
includeGroup 'org.eclipse.ee4j'
2021-12-09 23:04:10 +00:00
includeGroup 'org.ec4j.core'
2021-12-09 22:11:54 +00:00
includeGroup 'org.glassfish.jaxb'
includeGroup 'org.hamcrest'
includeGroup 'org.jetbrains'
includeGroup 'org.jetbrains.intellij.deps'
includeGroup 'org.jetbrains.kotlin'
includeGroup 'org.jetbrains.kotlinx'
includeGroup 'org.jsoup'
2021-12-09 22:11:54 +00:00
includeGroup 'org.junit'
includeGroup 'org.junit.jupiter'
includeGroup 'org.junit.platform'
includeGroup 'org.jvnet.staxex'
includeGroup 'org.mockito'
includeGroup 'org.mongodb'
2021-12-09 22:11:54 +00:00
includeGroup 'org.objenesis'
includeGroup 'org.opentest4j'
includeGroup 'org.ow2'
includeGroup 'org.ow2.asm'
includeGroup 'org.ow2.asm'
includeGroup 'org.reactivestreams'
2021-12-09 22:11:54 +00:00
includeGroup 'org.robolectric'
includeGroup 'org.slf4j'
includeGroup 'org.sonatype.oss'
2021-12-09 22:11:54 +00:00
includeGroup 'org.testng'
includeGroup 'org.threeten'
2021-12-09 22:11:54 +00:00
includeGroup 'xerces'
includeGroup 'xml-apis'
}
}
jcenter {
content {
includeGroup 'com.amulyakhare'
includeGroup 'com.otaliastudios'
includeGroup 'com.yqritc'
2021-12-09 22:59:16 +00:00
// https://github.com/cmelchior/realmfieldnameshelper/issues/42
includeGroup 'dk.ilios'
includeGroup 'im.dlg'
includeGroup 'me.dm7.barcodescanner'
includeGroup 'me.gujun.android'
}
}
2018-10-03 15:56:33 +00:00
}
2019-07-16 17:13:48 +00:00
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
// Warnings are potential errors, so stop ignoring them
// You can override by passing `-PallWarningsAsErrors=false` in the command line
kotlinOptions.allWarningsAsErrors = project.getProperties().getOrDefault("allWarningsAsErrors", "true").toBoolean()
}
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 {
android = true
ignoreFailures = false
enableExperimentalRules = true
// display the corresponding rule
verbose = true
disabledRules = [
"spacing-between-declarations-with-comments",
"no-multi-spaces",
"experimental:spacing-between-declarations-with-annotations",
"experimental:annotation"
]
}
2018-10-03 15:56:33 +00:00
}
task clean(type: Delete) {
delete rootProject.buildDir
}
2019-03-18 15:53:52 +00:00
apply plugin: 'org.sonarqube'
// To run a sonar analysis:
// Run './gradlew sonarqube -Dsonar.login=<REPLACE_WITH_SONAR_KEY>'
// The SONAR_KEY is stored in passbolt
2019-03-18 15:53:52 +00:00
sonarqube {
properties {
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/"
property "sonar.links.ci", "https://buildkite.com/matrix-dot-org/element-android"
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"
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
}
}
}
2020-08-27 13:37:39 +00:00
project(":diff-match-patch") {
sonarqube {
skipProject = true
}
}
//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", "**/*.*"
// }
// }
//}
//
//project(":matrix-sdk-android-rx") {
// sonarqube {
// properties {
// property "sonar.sources", project(":matrix-sdk-android-rx").android.sourceSets.main.java.srcDirs
// // exclude source code from analyses separated by a colon (:)
// // property "sonar.exclusions", "**/*.*"
// }
// }
//}