| /* |
| * SPDX-FileCopyrightText: 2021 The Calyx Institute |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| plugins { |
| id 'com.android.library' |
| id 'com.google.protobuf' |
| id 'org.jetbrains.kotlin.android' |
| id 'org.jetbrains.kotlin.kapt' |
| id 'org.jetbrains.dokka' |
| id 'org.jlleitschuh.gradle.ktlint' |
| } |
| |
| android { |
| namespace 'org.calyxos.backup.storage' |
| compileSdk rootProject.ext.compileSdk |
| |
| defaultConfig { |
| minSdk rootProject.ext.minSdk |
| targetSdk rootProject.ext.targetSdk |
| |
| testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" |
| testInstrumentationRunnerArguments disableAnalytics: 'true' |
| |
| consumerProguardFiles "consumer-rules.pro" |
| } |
| |
| buildTypes { |
| all { |
| minifyEnabled true |
| proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' |
| } |
| } |
| compileOptions { |
| sourceCompatibility = JavaVersion.VERSION_17 |
| targetCompatibility = JavaVersion.VERSION_17 |
| } |
| kotlinOptions { |
| jvmTarget = JavaVersion.VERSION_17.toString() |
| languageVersion = "1.8" |
| freeCompilerArgs += '-opt-in=kotlin.RequiresOptIn' |
| freeCompilerArgs += '-Xexplicit-api=strict' |
| } |
| protobuf { |
| protoc { |
| if ("aarch64" == System.getProperty("os.arch")) { |
| // mac m1 |
| artifact = "com.google.protobuf:protoc:$protobuf_version:osx-x86_64" |
| } else { |
| // other |
| artifact = "com.google.protobuf:protoc:$protobuf_version" |
| } |
| } |
| generateProtoTasks { |
| all().each { task -> |
| task.builtins { |
| java { |
| option "lite" |
| } |
| } |
| } |
| } |
| } |
| lint { |
| disable "DialogFragmentCallbacksDetector", |
| "InvalidFragmentVersionForActivityResult", |
| "CheckedExceptions" |
| } |
| } |
| |
| kotlin { |
| explicitApi = 'strict' |
| } |
| |
| dependencies { |
| implementation rootProject.ext.kotlin_libs.std |
| |
| implementation rootProject.ext.std_libs.androidx_core |
| // A newer version gets pulled in with AOSP via core, so we include fragment here explicitly |
| implementation rootProject.ext.std_libs.androidx_fragment |
| implementation rootProject.ext.std_libs.androidx_activity |
| implementation rootProject.ext.std_libs.androidx_lifecycle_viewmodel_ktx |
| implementation rootProject.ext.std_libs.androidx_lifecycle_livedata_ktx |
| implementation rootProject.ext.std_libs.androidx_constraintlayout |
| implementation rootProject.ext.std_libs.androidx_documentfile |
| implementation rootProject.ext.std_libs.com_google_android_material |
| |
| implementation rootProject.ext.storage_libs.androidx_room_runtime |
| implementation rootProject.ext.storage_libs.com_google_protobuf_javalite |
| implementation rootProject.ext.storage_libs.com_google_crypto_tink_android |
| kapt('androidx.room:room-compiler') { |
| version { strictly "$room_version" } |
| } |
| |
| lintChecks rootProject.ext.lint_libs.exceptions |
| |
| testImplementation "junit:junit:$junit4_version" |
| testImplementation "io.mockk:mockk:$mockk_version" |
| testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version" |
| |
| androidTestImplementation 'androidx.test.ext:junit:1.1.5' |
| androidTestImplementation "androidx.test.espresso:espresso-core:$espresso_version" |
| } |
| |
| apply from: "${rootProject.rootDir}/gradle/ktlint.gradle" |