aboutsummaryrefslogtreecommitdiff
path: root/sample/build.gradle
blob: 90a8d10e90bac4faa5359d5c41b26ed5eb26de42 (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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
import kau.Dependencies
import kau.Versions

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-parcelize'
//apply plugin: 'com.bugsnag.android.gradle'
apply plugin: 'com.github.triplet.play'
apply plugin: 'dagger.hilt.android.plugin'
apply plugin: 'com.mikepenz.aboutlibraries.plugin'

play {
    serviceAccountCredentials = file('../files/gplay-keys.json')
    track = 'beta'
}

android {
    compileSdkVersion Versions.targetSdk

    androidGitVersion {
        codeFormat = 'MMNNPPXX'
        format = '%tag%%.count%%-commit%'
    }

    defaultConfig {
        applicationId "ca.allanwang.kau.sample"
        minSdkVersion Versions.minSdk
        targetSdkVersion Versions.targetSdk
        versionName androidGitVersion.name()
        versionCode androidGitVersion.code()
        multiDexEnabled true
        testInstrumentationRunner "ca.allanwang.kau.sample.SampleTestRunner"
    }
    buildFeatures {
        viewBinding = true
    }

    def releaseSigning = file("../files/kau.properties")
    def hasSigning = releaseSigning.exists()

    signingConfigs {

        if (hasSigning) {
            def releaseProps = new Properties()
            releaseSigning.withInputStream { releaseProps.load(it) }

            release {
                storeFile file("../files/kau.keystore")
                storePassword releaseProps.getProperty('storePassword')
                keyAlias releaseProps.getProperty('keyAlias')
                keyPassword releaseProps.getProperty('keyPassword')
            }
            println("Added KAU release signing")
        } else {
            println("No KAU release signing found")
        }

        debug {
            storeFile file("../files/debug.keystore")
            storePassword "debugKey"
            keyAlias "debugKey"
            keyPassword "debugKey"
        }
    }

    buildTypes {
        debug {
            applicationIdSuffix ".debug"
            versionNameSuffix "-debug"
            signingConfig signingConfigs.debug
            resValue "string", "app_name", "KAU Debug"
            ext.enableBugsnag = false
        }

        release {
            minifyEnabled true
            if (hasSigning) signingConfig signingConfigs.release
            resValue "string", "app_name", "KAU"
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    lintOptions {
        abortOnError false
        checkReleaseBuilds false
    }

    packagingOptions {
        pickFirst 'META-INF/core_release.kotlin_module'
        pickFirst 'META-INF/library_release.kotlin_module'
        pickFirst 'META-INF/library-core_release.kotlin_module'
        exclude "**/module-info.class"
    }

    compileOptions {
        sourceCompatibility Versions.java
        targetCompatibility Versions.java
    }

    kotlinOptions {
        jvmTarget = Versions.java.toString()
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
        test.java.srcDirs += 'src/test/kotlin'
        androidTest.java.srcDirs += 'src/androidTest/kotlin'
        main.res.srcDirs += 'src/main/res-public'
    }

    testOptions {
        unitTests {
            // Don't throw runtime exceptions for android calls that are not mocked
            returnDefaultValues = true

            // Always show the result of every unit test, even if it passes.
            all {
                testLogging {
                    events 'skipped', 'failed', 'standardOut', 'standardError'
                }
            }
        }
    }
}

dependencies {
    implementation project(':about')
    implementation project(':fastadapter')
    implementation project(':fastadapter-viewbinding')
    implementation project(':colorpicker')
    implementation project(':core')
    implementation project(':core-ui')
    implementation project(':kpref-activity')
    implementation project(':searchview')
    implementation project(':mediapicker')

    implementation Dependencies.hilt
    kapt Dependencies.hiltCompiler

    implementation Dependencies.bugsnag

    implementation Dependencies.materialDialog("input")

    testImplementation Dependencies.kotlinTest
    testImplementation Dependencies.junit
    testImplementation Dependencies.hiltTest
    kaptTest Dependencies.hiltCompiler

    androidTestImplementation Dependencies.kotlinTest
    androidTestImplementation Dependencies.espresso
    androidTestImplementation Dependencies.espresso("intents")
    androidTestImplementation Dependencies.espresso("contrib")
    androidTestImplementation Dependencies.testRules
    androidTestImplementation Dependencies.testRunner
    androidTestImplementation Dependencies.hiltTest
    kaptAndroidTest Dependencies.hiltCompiler
}