summaryrefslogtreecommitdiff
path: root/app/copyLibs.gradle
diff options
context:
space:
mode:
authorkLeZ <julius8774@gmail.com>2014-09-22 19:18:04 +0200
committerkLeZ <julius8774@gmail.com>2014-09-22 19:18:04 +0200
commit1e860374e2df56bbbbbb70ad6c32729655c5898c (patch)
treee2de73fade3e1c5f224dcc54321c05922697c945 /app/copyLibs.gradle
parentf28f8cdb65d7d2fc3436d16a342e61b9154ad817 (diff)
parent7af6cb37ce4ef4e9fbe1aa6bab6149d68c7f3e53 (diff)
Merge remote-tracking branch 'origin/eclipse-integration'
Diffstat (limited to 'app/copyLibs.gradle')
-rw-r--r--app/copyLibs.gradle111
1 files changed, 111 insertions, 0 deletions
diff --git a/app/copyLibs.gradle b/app/copyLibs.gradle
new file mode 100644
index 00000000..a8555cb0
--- /dev/null
+++ b/app/copyLibs.gradle
@@ -0,0 +1,111 @@
+class CopyJars extends DefaultTask {
+
+ @InputFiles
+ FileCollection source
+
+ @OutputDirectory
+ File destination
+
+ @TaskAction
+ void apply() {
+ project.copy {
+ from source
+ into destination
+ }
+ }
+}
+
+class ExtractAars extends DefaultTask {
+
+ @Input
+ boolean extractJarsOnly = false
+
+ @InputFiles
+ FileCollection source
+
+ @OutputDirectory
+ File destination
+
+ @TaskAction
+ void apply() {
+ source.each { File file ->
+ def baseFilename = file.name.lastIndexOf('.').with {
+ it != -1 ? file.name[0..< it] : file.name
+ }
+
+ if (extractJarsOnly) {
+ project.copy {
+ from project.zipTree(file)
+ include 'classes.jar'
+ into destination.name
+ rename {
+ String fileName -> fileName.replace('classes.jar', baseFilename + '.jar')
+ }
+ }
+ } else {
+ project.copy {
+ from project.zipTree(file)
+ exclude 'classes.jar'
+ into destination.absolutePath + File.separator + baseFilename
+ }
+
+ project.copy {
+ from project.zipTree(file)
+ include 'classes.jar'
+ into destination.absolutePath + File.separator + baseFilename +
+ File.separator + destination.name
+ rename {
+ String fileName -> fileName.replace('classes.jar', baseFilename + '.jar')
+ }
+ }
+ }
+ }
+ }
+}
+
+task ('copyJarDependenciesIntoLibs', type: CopyJars) {
+
+ description = 'Used for Eclipse. Copies JAR dependencies to the libs directory.'
+
+ destination = file(project.projectDir.canonicalPath + File.separator + 'libs')
+
+ afterEvaluate {
+ source = files(
+ project.configurations.matching {
+ it.name.endsWith 'Compile' or it.name == 'compile'
+ }.each {
+ logger.info "Adding dependencies from ${it.name} configuration."
+ }
+ ).filter {
+ it.name.endsWith 'jar'
+ }
+ logger.info source.files.toString()
+ }
+}
+
+task ('extractAarDependenciesIntoLibs', type: ExtractAars) {
+
+ description = 'Used for Eclipse. Extracts AAR dependencies into the libs directory.'
+
+ destination = file(project.projectDir.canonicalPath + File.separator + 'libs')
+
+ afterEvaluate {
+ source = files(
+ project.configurations.matching {
+ it.name.endsWith 'Compile' or it.name == 'compile'
+ }.each {
+ logger.info "Adding dependencies from ${it.name} configuration."
+ }
+ ).filter {
+ it.name.endsWith 'aar'
+ }
+ logger.info source.files.toString()
+ }
+}
+
+task copyDependenciesIntoLibs {
+ dependsOn copyJarDependenciesIntoLibs, extractAarDependenciesIntoLibs
+ description = 'Used for Eclipse. Copies JAR and extracts AAR dependencies into the libs ' +
+ 'directory.'
+}
+