aboutsummaryrefslogtreecommitdiffstats
path: root/app/build.gradle
blob: 67e6c01e48ff021e954f1b5772e0a227e461fcc0 (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
apply plugin: 'android-sdk-manager'
apply plugin: 'com.android.application'
apply plugin: 'com.github.kt3k.coveralls'
apply from: '../config/quality.gradle'
apply from: '../config/translations.gradle'
apply from: '../config/jacoco.gradle'

buildscript {
    repositories {
        jcenter()
    }

    dependencies {
        classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.0.1x'
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.0'
    }
}

repositories {
    maven {
        url 'https://dl.bintray.com/connectbot/maven'
    }
}

dependencies {
    compile 'org.connectbot:sshlib:2.2.0'

    testCompile 'junit:junit:4.12'
    testCompile 'org.mockito:mockito-core:1.10.19'
    testCompile 'org.assertj:assertj-core:1.7.0'
    testCompile('org.robolectric:robolectric:3.0') {
        exclude group: 'commons-logging', module: 'commons-logging'
        exclude group: 'org.apache.httpcomponents', module: 'httpclient'
    }
}

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "org.connectbot"
        minSdkVersion 8
        targetSdkVersion 22

        ndk {
            moduleName "com_google_ase_Exec"
            ldLibs "log"
        }

        lintOptions {
            abortOnError false
            lintConfig file('lint.xml')
        }

        testApplicationId "org.connectbot.tests"
        testInstrumentationRunner "android.test.InstrumentationTestRunner"
    }

    signingConfigs {
        release
    }

    dependencies {
        compile "com.android.support:support-v4:22.2.1"
        compile "com.android.support:appcompat-v7:22.2.1"
        compile "com.android.support:design:22.2.0"
    }

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'

            if (project.hasProperty('keystorePassword')) {
                signingConfig signingConfigs.release
            }
        }

        debug {
            applicationIdSuffix ".debug"
            testCoverageEnabled true
        }
    }
}

def getGitDescription = { ->
    try {
        def stdout = new ByteArrayOutputStream()
        exec {
            commandLine 'git', 'describe', '--tags', '--dirty'
            standardOutput = stdout
        }
        return stdout.toString().trim()
    } catch (ignored) {
        return null;
    }
}

// Insert the build number into strings.xml
android.applicationVariants.all { variant ->
    variant.mergeResources.doLast{
        ext.env = System.getenv()
        def buildNumber = getGitDescription()
        if (buildNumber != null) {
            File valuesFile = file("${buildDir}/intermediates/res/${variant.dirName}/values/values.xml")
            String content = valuesFile.getText('UTF-8')
            content = content.replaceAll(/\(working copy\)/, buildNumber)
            valuesFile.write(content, 'UTF-8')
        }
    }
}

if (project.hasProperty('keystorePassword')) {
    android.signingConfigs.release.storeFile file(keystoreFile)
    android.signingConfigs.release.storePassword keystorePassword
    android.signingConfigs.release.keyAlias keystoreAlias
    android.signingConfigs.release.keyPassword keystorePassword
}