blob: 410a1df7cab7d420e03abb5de790c657b6a9e3b6 (
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
|
apply plugin: 'java'
evaluationDependsOn(':third_party:gif_decoder')
evaluationDependsOn(':third_party:disklrucache')
evaluationDependsOn(':library')
def getAndroidSdkDirectory() {
project(':library').android.sdkDirectory
}
def getAndroidCompileSdkVersion() {
project(':library').android.compileSdkVersion
}
def getInternalAndroidProjects() {
[':third_party:gif_decoder', ':third_party:gif_encoder', ':library'].collect { project(it) }
}
def getInternalJavaProjects() {
[':third_party:disklrucache'].collect { project(it) }
}
def getAllInternalProjects() {
getInternalAndroidProjects() + getInternalJavaProjects()
}
def getReleaseVariantAndroidProjects() {
getAndroidLibraryVariants('release')
}
def getAndroidLibraryVariants(variantName) {
getInternalAndroidProjects().collect { project ->
project.android.libraryVariants.findAll { type ->
type.buildType.name.equalsIgnoreCase(variantName)
}
}.sum()
}
def getSourceFilesForVariant(variantName) {
getAndroidLibraryVariants(variantName).collect { it.javaCompile.source } +
getInternalJavaProjects().collect { it.sourceSets.main.allJava }
}
def getAndroidJar() {
"${getAndroidSdkDirectory()}/platforms/${getAndroidCompileSdkVersion()}/android.jar"
}
// Generate javadocs and sources containing batched documentation and sources for all internal projects.
['release', 'debug'].each { variantName ->
task("${variantName}SourceJar", type: Jar) {
from getSourceFilesForVariant(variantName)
}
def javadocTask = task("${variantName}Javadoc", type: Javadoc) {
source = getSourceFilesForVariant(variantName)
classpath = files(getAndroidLibraryVariants(variantName).collect {
files(it.javaCompile.classpath.files, getAndroidJar())
})
classpath += getInternalJavaProjects().collect { files(it.configurations.compile) }
options {
links("http://docs.oracle.com/javase/7/docs/api/")
linksOffline("http://d.android.com/reference", "${getAndroidSdkDirectory()}/docs/reference")
}
exclude '**/BuildConfig.java'
exclude '**/R.java'
}
def cleanJavadocTask = task("clean${variantName.capitalize()}Javadoc", type: Delete) {
delete javadocTask.destinationDir
}
clean.dependsOn(cleanJavadocTask)
def javadocJarTask = task("${variantName}JavadocJar", type: Jar) {
from javadocTask.destinationDir
}
javadocJarTask.dependsOn(javadocTask)
}
jar {
from files(
getReleaseVariantAndroidProjects().collect { variant ->
variant.javaCompile.destinationDir
}
)
exclude "**/R.class"
exclude "**/BuildConfig.class"
from files(getInternalJavaProjects().collect { it.sourceSets.main.output })
}
getAllInternalProjects().each { project ->
jar.dependsOn(project.build)
}
artifacts {
archives releaseJavadocJar {
classifier 'javadoc'
}
archives releaseSourceJar {
classifier 'sources'
}
}
apply from: "$rootProject.projectDir/scripts/upload.gradle"
|