summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/build.gradle
blob: 5ee3af61e236764d257ce9fe0018bd2e88f8a368 (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
apply plugin: 'com.android.library'
apply plugin: "com.jaredsburrows.license"
apply plugin: 'kotlin-android'
apply from: "${rootDir}/gradle/native-build.gradle"

dependencies {
    lintChecks project(":MapboxGLAndroidSDKLint")
    api dependenciesList.mapboxAndroidTelemetry
    api dependenciesList.mapboxJavaGeoJSON
    api dependenciesList.mapboxAndroidGestures
    api dependenciesList.mapboxAndroidAccounts
    implementation dependenciesList.mapboxJavaTurf
    implementation dependenciesList.supportAnnotations
    implementation dependenciesList.supportFragmentV4
    implementation dependenciesList.okhttp3
    implementation dependenciesList.soLoader
    testImplementation dependenciesList.junit
    testImplementation dependenciesList.mockito
    testImplementation dependenciesList.mockk
    testImplementation dependenciesList.robolectric
    testImplementation dependenciesList.kotlinLib
    testImplementation dependenciesList.commonsIO
}

android {
    compileSdkVersion androidVersions.compileSdkVersion

    defaultConfig {
        minSdkVersion androidVersions.minSdkVersion
        targetSdkVersion androidVersions.targetSdkVersion
        buildConfigField "String", "GIT_REVISION_SHORT", String.format("\"%s\"", getGitRevision())
        buildConfigField "String", "MAPBOX_SDK_IDENTIFIER", String.format("\"%s\"", "mapbox-maps-android")
        buildConfigField "String", "MAPBOX_SDK_VERSION", String.format("\"%s\"", project.VERSION_NAME)
        buildConfigField "String", "MAPBOX_VERSION_STRING", String.format("\"Mapbox/%s\"", project.VERSION_NAME)
        buildConfigField "String", "MAPBOX_EVENTS_USER_AGENT", String.format("\"mapbox-maps-android/%s\"", project.VERSION_NAME)
        consumerProguardFiles 'proguard-rules.pro'
    }

    // build native libraries
    List nativeTargets = ["mapbox-gl"]
    if (project.hasProperty("mapbox.with_test")) {
        nativeTargets.add("mbgl-test")
    }
    if (project.hasProperty("mapbox.with_benchmark")) {
        nativeTargets.add("mbgl-benchmark")
    }
    nativeBuild(nativeTargets)

    // avoid naming conflicts, force usage of prefix
    resourcePrefix 'mapbox_'

    sourceSets {
        // limit amount of exposed library resources
        main.res.srcDirs += 'src/main/res-public'
    }

    lintOptions {
        disable 'MissingTranslation', 'TypographyQuotes', 'ObsoleteLintCustomCheck', 'MissingPermission', 'WrongThreadInterprocedural'
        checkAllWarnings true
        warningsAsErrors false
    }

    testOptions {
        unitTests {
            returnDefaultValues true

            // Roboelectric 4.0 required config
            // http://robolectric.org/migrating/#migrating-to-40
            includeAndroidResources = true
        }
    }

    buildTypes {
        debug {
            testCoverageEnabled true
            jniDebuggable true
        }
    }
}

licenseReport {
    generateHtmlReport = false
    generateJsonReport = true
    copyHtmlReportToAssets = false
    copyJsonReportToAssets = false
}

def static getGitRevision() {
    def cmd = "git rev-parse --short HEAD"
    def proc = cmd.execute()
    def ref = proc.text.trim()
    return ref
}

configurations {
    all*.exclude group: 'commons-logging', module: 'commons-logging'
    all*.exclude group: 'commons-collections', module: 'commons-collections'
}
apply from: "${rootDir}/gradle/gradle-javadoc.gradle"
apply from: "${rootDir}/gradle/gradle-checkstyle.gradle"
apply from: "${rootDir}/gradle/gradle-dependencies-graph.gradle"
apply from: "${rootDir}/gradle/gradle-update-vendor-modules.gradle"
apply from: "${rootDir}/gradle/android-nitpick.gradle"
apply from: "${rootDir}/gradle/gradle-bintray.gradle"
apply from: "${rootDir}/gradle/jacoco-report.gradle"