summaryrefslogtreecommitdiffstats
path: root/build.gradle
blob: 886ccace6877949a454d1e4a919844d2389e35bb (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
buildscript {
    repositories {
        mavenCentral()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.1'
        classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.0'
    }
}

apply plugin: 'com.android.application'
apply plugin: 'com.google.protobuf'

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.0'

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        debug {
            minifyEnabled false
        }
    }

    productFlavors {
        aosp {
            applicationId 'com.android.launcher3'
            testApplicationId 'com.android.launcher3.tests'
        }

        l3go {
            applicationId 'com.android.launcher3'
            testApplicationId 'com.android.launcher3.tests'
        }
    }
    sourceSets {
        main {
            res.srcDirs = ['res']
            java.srcDirs = ['src']
            manifest.srcFile 'AndroidManifest-common.xml'
            proto {
                srcDir 'protos/'
                srcDir 'proto_overrides/'
            }
        }

        androidTest {
            res.srcDirs = ['tests/res']
            java.srcDirs = ['tests/src']
            manifest.srcFile "tests/AndroidManifest-common.xml"
        }

        aosp {
            java.srcDirs = ['src_flags']
            manifest.srcFile "AndroidManifest.xml"
        }

        aospAndroidTest {
            manifest.srcFile "tests/AndroidManifest.xml"
        }

        l3go {
            res.srcDirs = ['go/res']
            java.srcDirs = ['go/src_flags']
            // Note: we are using the Launcher3 manifest here because the gradle manifest-merger uses
            // different attributes than the build system.
            manifest.srcFile "AndroidManifest.xml"
        }

        l3goAndroidTest {
            manifest.srcFile "tests/AndroidManifest.xml"
        }
    }
}

repositories {
    mavenCentral()
    jcenter()
}

final String SUPPORT_LIBS_VERSION = '26.0.0-SNAPSHOT'
dependencies {
    compile "com.android.support:support-v4:${SUPPORT_LIBS_VERSION}"
    compile "com.android.support:support-dynamic-animation:${SUPPORT_LIBS_VERSION}"
    compile "com.android.support:recyclerview-v7:${SUPPORT_LIBS_VERSION}"
    compile "com.android.support:palette-v7:${SUPPORT_LIBS_VERSION}"
    compile 'com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-7'

    testCompile 'junit:junit:4.12'
    androidTestCompile "org.mockito:mockito-core:1.9.5"
    androidTestCompile 'com.google.dexmaker:dexmaker:1.2'
    androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.2'
    androidTestCompile 'com.android.support.test:runner:0.5'
    androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
    androidTestCompile "com.android.support:support-annotations:${SUPPORT_LIBS_VERSION}"
}

protobuf {
    // Configure the protoc executable
    protoc {
        artifact = 'com.google.protobuf:protoc:3.0.0-alpha-3'

        generateProtoTasks {
            all().each { task ->
                task.builtins {
                    remove java
                    javanano {
                        option "java_package=launcher_log_extension.proto|com.android.launcher3.userevent.nano"
                        option "java_package=launcher_log.proto|com.android.launcher3.userevent.nano"
                        option "java_package=launcher_dump.proto|com.android.launcher3.model.nano"
                        option "enum_style=java"
                    }
                }
            }
        }
    }
}