mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-04 23:55:58 +01:00
60 lines
No EOL
2 KiB
Groovy
60 lines
No EOL
2 KiB
Groovy
description = """\
|
|
Smack for Android.
|
|
All the required dependencies to run Smack on Android.
|
|
Usually you want to add additional dependencies to smack-tcp,
|
|
smack-extensions and smack-experimental."""
|
|
|
|
ext {
|
|
smackMinAndroidSdk = 8
|
|
androidProjects = [':smack-tcp',':smack-core', ':smack-resolver-minidns', ':smack-sasl-provided', ':smack-extensions', ':smack-experimental'].collect{ project(it) }
|
|
}
|
|
|
|
// Note that the test dependencies (junit, …) are inferred from the
|
|
// sourceSet.test of the core subproject
|
|
dependencies {
|
|
// Filter out the optional Smack dependencies from androidProjects
|
|
androidProjects.findAll {
|
|
![':smack-tcp', ':smack-extensions', ':smack-experimental'].contains(it.getPath())
|
|
}.each { project ->
|
|
compile project
|
|
}
|
|
}
|
|
|
|
def getAndroidRuntimeJar() {
|
|
def androidHome = new File("$System.env.ANDROID_HOME")
|
|
if (!androidHome.isDirectory()) throw new Exception("ANDROID_HOME not found or set")
|
|
def androidJar = new File("$androidHome/platforms/android-$smackMinAndroidSdk/android.jar")
|
|
if (androidJar.isFile()) {
|
|
return androidJar
|
|
} else {
|
|
throw new Exception("Can't find android.jar for $smackMinAndroidSdk API. Please install corresponding SDK platform package")
|
|
}
|
|
}
|
|
|
|
def getAndroidJavadocOffline() {
|
|
def androidHome = new File("$System.env.ANDROID_HOME")
|
|
if (!androidHome.isDirectory()) throw new Exception("ANDROID_HOME not found or set")
|
|
return "$System.env.ANDROID_HOME" + "/docs/reference"
|
|
}
|
|
|
|
compileJava {
|
|
options.bootClasspath = getAndroidRuntimeJar()
|
|
}
|
|
|
|
// See http://stackoverflow.com/a/2823592/194894
|
|
// TODO this doesn't seem to work right now. But on the other hand it
|
|
// is not really required, just to avoid a javadoc compiler warning
|
|
javadoc {
|
|
options.linksOffline "http://developer.android.com/reference", getAndroidJavadocOffline()
|
|
}
|
|
|
|
configure (androidProjects) {
|
|
task compileAndroid(type: JavaCompile) {
|
|
source = compileJava.source
|
|
classpath = compileJava.classpath
|
|
destinationDir = new File(buildDir, 'android')
|
|
options.bootClasspath = getAndroidRuntimeJar()
|
|
}
|
|
}
|
|
|
|
test { dependsOn androidProjects*.compileAndroid } |