AndroidAPS/build.gradle
2023-08-27 13:55:51 +02:00

141 lines
4.5 KiB
Groovy

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext {
kotlin_version = '1.8.22'
core_version = '1.10.1'
rxjava_version = '3.1.7'
rxandroid_version = '3.0.2'
rxkotlin_version = '3.0.1'
room_version = '2.5.2'
lifecycle_version = '2.6.1'
dagger_version = '2.47'
coroutines_version = '1.7.3'
activity_version = '1.7.2'
fragmentktx_version = '1.6.1'
ormLite_version = '4.46'
gson_version = '2.10.1'
nav_version = '2.6.0'
appcompat_version = '1.6.1'
material_version = '1.9.0'
gridlayout_version = '1.0.0'
constraintlayout_version = '2.1.4'
preferencektx_version = '1.2.1'
commonslang3_version = '3.13.0'
commonscodec_version = '1.16.0'
guava_version = '32.1.2-jre'
jodatime_version = '2.12.5'
work_version = '2.8.1'
tink_version = '1.10.0'
json_version = '20230618'
joda_version = '2.12.5'
swipe_version = '1.1.0'
junit_version = '4.13.2'
junit_jupiter_version = '5.10.0'
mockito_version = '4.6.1'
dexmaker_version = '1.2'
retrofit2_version = '2.9.0'
okhttp3_version = '4.11.0'
byteBuddy_version = '1.12.8'
androidx_junit_version = '1.1.5'
androidx_rules_version = '1.5.0'
rxandroidble_version = '1.12.1'
replayshare_version = '2.2.0'
wearable_version = '2.9.0'
play_services_wearable_version = '18.0.0'
play_services_location_version = '21.0.1'
kotlinx_datetime_version = '0.4.0'
kotlinx_serialization_version = '1.6.0'
caverock_androidsvg_version = '1.4'
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.1.1'
classpath 'com.google.gms:google-services:4.3.15'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.9.9'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
classpath "org.jacoco:org.jacoco.core:0.8.10"
classpath "com.vanniktech:gradle-dependency-graph-generator-plugin:0.8.0"
}
}
plugins {
// Test Gradle build, keep disabled under normal circumstances
// id "com.osacky.doctor" version "0.8.1"
id "org.jlleitschuh.gradle.ktlint" version "11.5.1"
// Aggregates and/or logs Jacoco test coverage to the Gradle build log
id 'org.barfuin.gradle.jacocolog' version '3.1.0'
id 'org.jetbrains.kotlin.android' version "$kotlin_version" apply false
}
allprojects {
repositories {
google()
mavenCentral()
maven { url "https://maven.google.com" }
maven { url 'https://jitpack.io' }
}
tasks.withType(KotlinCompile).all {
kotlinOptions {
freeCompilerArgs = [
'-opt-in=kotlin.RequiresOptIn',
'-Xjvm-default=all' //Support @JvmDefault
]
jvmTarget = "11"
}
}
gradle.projectsEvaluated {
tasks.withType(JavaCompile) {
options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
}
}
apply plugin: 'org.jlleitschuh.gradle.ktlint'
apply plugin: 'jacoco'
}
// Setup all al reports aggregation
apply from: 'jacoco_project.gradle'
task clean(type: Delete) {
delete rootProject.buildDir
}
subprojects {
tasks.withType(Test) {
maxParallelForks = Runtime.runtime.availableProcessors().intdiv(2) ?: 1
}
}
// This is necessary to prevent Gradle build errors like:
//
// Duplicate class androidx.lifecycle.ViewModelLazy found in modules jetified-lifecycle-viewmodel-ktx-2.3.1-runtime (androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1) and lifecycle-viewmodel-2.5.0-runtime (androidx.lifecycle:lifecycle-viewmodel:2.5.0)
//
// By explicitly adding these dependencies, the jetifier
// is forced to use the correct lifecycle version instead
// of automatically picking 2.3.1.
//
// See: https://stackoverflow.com/a/69832319/560774
configurations {
all {
exclude group: 'androidx.lifecycle', module: 'lifecycle-viewmodel-ktx'
}
}