forked from aosp-mirror/platform_frameworks_support
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.gradle
134 lines (111 loc) · 4.08 KB
/
build.gradle
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
buildscript {
repositories {
maven { url '../../prebuilts/gradle-plugin' }
maven { url '../../prebuilts/tools/common/m2/repository' }
maven { url '../../prebuilts/tools/common/m2/internal' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
ext.supportVersion = '19.1.0'
ext.extraVersion = 5
ext.supportRepoOut = ''
/*
* With the build server you are given two env variables.
* The OUT_DIR is a temporary directory you can use to put things during the build.
* The DIST_DIR is where you want to save things from the build.
*
* The build server will copy the contents of DIST_DIR to somewhere and make it available.
*/
if (System.env.DIST_DIR != null && System.env.OUT_DIR != null) {
buildDir = file(System.env.OUT_DIR + '/gradle/frameworks/support/build')
project.ext.distDir = file(System.env.DIST_DIR)
} else {
buildDir = file('../../out/host/gradle/frameworks/support/build')
project.ext.distDir = file('../../out/dist')
}
ext.supportRepoOut = new File(buildDir, 'support_repo')
// Main task called by the build server.
task(createArchive) << {
}
// upload anchor for subprojects to upload their artifacts
// to the local repo.
task(mainUpload) << {
}
// repository creation task
task createRepository(type: Zip, dependsOn: mainUpload) {
from project.ext.supportRepoOut
destinationDir project.ext.distDir
into 'm2repository'
baseName = String.format("android_m2repository_r%02d", project.ext.extraVersion)
}
createArchive.dependsOn createRepository
// prepare repository with older versions
task prepareRepo(type: Copy) {
from "$rootDir/../../prebuilts/maven_repo/android"
into project.ext.supportRepoOut
}
prepareRepo.doFirst {
project.ext.supportRepoOut.deleteDir()
project.ext.supportRepoOut.mkdirs()
}
import com.google.common.io.Files
import com.google.common.base.Charsets
task(createXml) << {
def repoArchive = createRepository.archivePath
def repoArchiveName = createRepository.archiveName
def size = repoArchive.length()
def sha1 = getSha1(repoArchive)
def xml =
"<sdk:sdk-addon xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:sdk=\"http://schemas.android.com/sdk/android/addon/6\">\n\
<sdk:extra>\n\
<sdk:revision>\n\
<sdk:major>${project.ext.extraVersion}</sdk:major>\n\
</sdk:revision>\n\
<sdk:vendor-display>Android</sdk:vendor-display>\n\
<sdk:vendor-id>android</sdk:vendor-id>\n\
<sdk:name-display>Local Maven repository for Support Libraries</sdk:name-display>\n\
<sdk:path>m2repository</sdk:path>\n\
<sdk:archives>\n\
<sdk:archive os=\"any\" arch=\"any\">\n\
<sdk:size>${size}</sdk:size>\n\
<sdk:checksum type=\"sha1\">${sha1}</sdk:checksum>\n\
<sdk:url>${repoArchiveName}</sdk:url>\n\
</sdk:archive>\n\
</sdk:archives>\n\
</sdk:extra>\n\
</sdk:sdk-addon>"
Files.write(xml, new File(project.ext.distDir, 'repo-extras.xml'), Charsets.UTF_8)
}
createArchive.dependsOn createXml
import com.google.common.hash.HashCode
import com.google.common.hash.HashFunction
import com.google.common.hash.Hashing
def getSha1(File inputFile) {
HashFunction hashFunction = Hashing.sha1()
HashCode hashCode = hashFunction.hashString(inputFile.getAbsolutePath())
return hashCode.toString()
}
subprojects {
// Change buildDir first so that all plugins pick up the new value.
project.buildDir = project.file("$project.parent.buildDir/../$project.name/build")
apply plugin: 'maven'
version = rootProject.ext.supportVersion
group = 'com.android.support'
task release(type: Upload) {
configuration = configurations.archives
repositories {
mavenDeployer {
repository(url: uri("$rootProject.ext.supportRepoOut"))
}
}
}
// before the upload, make sure the repo is ready.
release.dependsOn rootProject.tasks.prepareRepo
// make the mainupload depend on this one.
mainUpload.dependsOn release
}
FileCollection getAndroidPrebuilt(String apiLevel) {
files("$rootDir/../../prebuilts/sdk/$apiLevel/android.jar")
}