summaryrefslogtreecommitdiff
path: root/app/build.gradle
blob: 4565a00d6760a74f054031867db178f5a041ed0b (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/*
 * Copyright © 2014-2019 The Android Password Store Authors. All Rights Reserved.
 * SPDX-License-Identifier: GPL-3.0-only
 */
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    id 'kotlin-android'
    id 'kotlin-kapt'
    id 'kotlin-android-extensions'
}

repositories {
    maven { url 'https://jitpack.io' }
}

android {
    defaultConfig {
        applicationId 'com.zeapo.pwdstore'
    }

    lintOptions {
        abortOnError = true // make sure build fails with lint errors!
        disable 'MissingTranslation', 'PluralsCandidate'
    }

    packagingOptions {
        exclude '.readme'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
    }

    buildTypes {
        release {
            minifyEnabled = true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        debug {
            applicationIdSuffix = '.debug'
            versionNameSuffix = '-debug'
            minifyEnabled = false
        }
    }

    /*
     * To sign release builds, create the file `gradle.properties` in
     * $HOME/.gradle or in your project directory with this content:
     *
     * mStoreFile=/path/to/key.store
     * mStorePassword=xxx
     * mKeyAlias=alias
     * mKeyPassword=xxx
     */
    if (project.hasProperty('mStoreFile') &&
            project.hasProperty('mStorePassword') &&
            project.hasProperty('mKeyAlias') &&
            project.hasProperty('mKeyPassword')) {
        signingConfigs {
            release {
                storeFile = file(project.properties['mStoreFile'] as String)
                storePassword = project.properties['mStorePassword'] as String
                keyAlias = project.properties['mKeyAlias'] as String
                keyPassword = project.properties['mKeyPassword'] as String
            }
        }
        buildTypes.release.signingConfig = signingConfigs.release
    }
}

dependencies {
    implementation 'androidx.appcompat:appcompat:' + versions.appcompat
    implementation 'androidx.cardview:cardview:' + versions.cardview
    implementation 'androidx.core:core-ktx:' + versions.coreKtx
    implementation 'androidx.constraintlayout:constraintlayout:' + versions.constraintLayout
    implementation 'androidx.documentfile:documentfile:' + versions.documentfile
    implementation 'androidx.preference:preference:' + versions.preference
    implementation ('androidx.recyclerview:recyclerview:' + versions.recyclerview) {
        force = true
    }
    implementation 'com.google.android.material:material:' + versions.material
    implementation 'androidx.annotation:annotation:' + versions.annotation
    implementation 'androidx.biometric:biometric:' + versions.biometric
    implementation 'com.github.msfjarvis:openpgp-api:' + versions.openpgp
    implementation('org.eclipse.jgit:org.eclipse.jgit:' + versions.jgit) {
        exclude group: 'org.apache.httpcomponents', module: 'httpclient'
    }
    implementation 'com.jcraft:jsch:' + versions.jsch
    implementation 'commons-io:commons-io:' + versions.commons_io
    implementation 'commons-codec:commons-codec:' + versions.commons_codec
    implementation 'org.sufficientlysecure:sshauthentication-api:' + versions.sshauth

    // Testing-only dependencies
    androidTestImplementation 'junit:junit:4.13-rc-1'
    androidTestImplementation 'org.mockito:mockito-core:3.1.0'
    androidTestImplementation 'androidx.test:runner:1.3.0-alpha02'
    androidTestImplementation 'androidx.test:rules:1.3.0-alpha02'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2-alpha02'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0-alpha02'
    androidTestImplementation 'androidx.test.espresso:espresso-intents:3.3.0-alpha02'
}

tasks.withType(JavaCompile) {
    options.compilerArgs << '-Xlint:unchecked'
    options.deprecation = true
}
tasks.withType(KotlinCompile) {
    kotlinOptions {
        jvmTarget = '1.8'
    }
}