summaryrefslogtreecommitdiffstats
path: root/v13/build.gradle
blob: c1e624bf5104db861d7443fc39c9bae76e76e56e (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
apply plugin: 'android-library'

archivesBaseName = 'support-v13'

// --------------------------
// TO ADD NEW PLATFORM SPECIFIC CODE, UPDATE THIS:
// create and configure the sourcesets/dependencies for platform-specific code.
// values are: sourceset name, source folder name, api level, previous sourceset.

ext.allSS = []

def icsSS          = createApiSourceset('ics',          'ics',         '14',       null)
def icsMr1SS       = createApiSourceset('icsmr1',       'ics-mr1',     '15',       icsSS)
def api23SS        = createApiSourceset('api23',        'api23',       'current',  icsMr1SS)

def createApiSourceset(String name, String folder, String apiLevel, SourceSet previousSource) {
    def sourceSet = sourceSets.create(name)
    sourceSet.java.srcDirs = [folder]

    def configName = sourceSet.getCompileConfigurationName()

    project.getDependencies().add(configName, getAndroidPrebuilt(apiLevel))
    if (previousSource != null) {
        setupDependencies(configName, previousSource)
    }
    ext.allSS.add(sourceSet)
    return sourceSet
}

def setupDependencies(String configName, SourceSet previousSourceSet) {
    project.getDependencies().add(configName, previousSourceSet.output)
    project.getDependencies().add(configName, previousSourceSet.compileClasspath)
}

// create a jar task for the code above
tasks.create(name: "internalJar", type: Jar) {
    baseName "internal_impl"
}

ext.allSS.each { ss ->
    internalJar.from ss.output
}

dependencies {
    compile project(':support-v4')

    // add the internal implementation as a dependency.
    // this is not enough to make the regular compileJava task
    // depend on the generation of this jar. This is done below
    // when manipulating the libraryVariants.
    compile files(internalJar.archivePath)
}

android {
    compileSdkVersion 13

    defaultConfig {
        minSdkVersion 13
        // TODO: get target from branch
        //targetSdkVersion 19
    }


    sourceSets {
        main.manifest.srcFile 'AndroidManifest.xml'
        main.java.srcDirs = ['java']
        main.aidl.srcDirs = ['java']

        androidTest.setRoot('tests')
        androidTest.java.srcDir 'tests/java'
    }

    lintOptions {
        // TODO: fix errors and reenable.
        abortOnError false
    }
}

android.libraryVariants.all { variant ->
    variant.javaCompile.dependsOn internalJar

    def name = variant.buildType.name

    if (name.equals(com.android.builder.core.BuilderConstants.DEBUG)) {
        return; // Skip debug builds.
    }
    def suffix = name.capitalize()

    def jarTask = project.tasks.create(name: "jar${suffix}", type: Jar){
        dependsOn variant.javaCompile
        from variant.javaCompile.destinationDir
        from 'LICENSE.txt'
    }
    def javadocTask = project.tasks.create(name: "javadoc${suffix}", type: Javadoc) {
        source android.sourceSets.main.java
        classpath = files(variant.javaCompile.classpath.files) + files(
                "${android.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar")
    }

    def javadocJarTask = project.tasks.create(name: "javadocJar${suffix}", type: Jar) {
        classifier = 'javadoc'
        from 'build/docs/javadoc'
    }

    def sourcesJarTask = project.tasks.create(name: "sourceJar${suffix}", type: Jar) {
        classifier = 'sources'
        from android.sourceSets.main.java.srcDirs
    }

    project.ext.allSS.each { ss ->
        javadocTask.source ss.java
        sourcesJarTask.from ss.java.srcDirs
    }

    artifacts.add('archives', javadocJarTask);
    artifacts.add('archives', sourcesJarTask);
}

uploadArchives {
    repositories {
        mavenDeployer {

            repository(url: uri(rootProject.ext.supportRepoOut)) {
            }

            pom.project {
                name 'Android Support Library v13'
                description "The Support Library is a static library that you can add to your Android application in order to use APIs that are either not available for older platform versions or utility APIs that aren't a part of the framework APIs. Compatible on devices running API 13 or later."
                url 'http://developer.android.com/tools/extras/support-library.html'
                inceptionYear '2011'

                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                        distribution 'repo'
                    }
                }

                scm {
                    url "http://source.android.com"
                    connection "scm:git:https://android.googlesource.com/platform/frameworks/support"
                }
                developers {
                    developer {
                        name 'The Android Open Source Project'
                    }
                }
            }
        }
    }
}