From 7af6cb37ce4ef4e9fbe1aa6bab6149d68c7f3e53 Mon Sep 17 00:00:00 2001 From: kLeZ Date: Sun, 21 Sep 2014 15:36:23 +0200 Subject: Added Eclipse Integration --- app/copyLibs.gradle | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 app/copyLibs.gradle (limited to 'app/copyLibs.gradle') 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.' +} + -- cgit v1.2.3