flair.gradle.tasks.processes.ProcessLibraries.groovy Maven / Gradle / Ivy
package flair.gradle.tasks.processes
import flair.gradle.dependencies.Config
import flair.gradle.tasks.TaskGroup
import flair.gradle.tasks.VariantTask
import flair.gradle.utils.Variant
import org.gradle.api.tasks.InputFiles
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction
/**
* @author SamYStudiO ( [email protected] )
*/
class ProcessLibraries extends VariantTask
{
@InputFiles
def Set inputFiles
@OutputDirectory
def File outputDir
@Override
public void setVariant( Variant variant )
{
super.variant = variant
inputFiles = findInputFiles( )
outputDir = project.file( "${ outputVariantDir }/libraries" )
description = "Processes swc libraries into ${ variant.name } ${ project.buildDir.name } directory"
}
public ProcessLibraries()
{
group = TaskGroup.DEFAULT.name
}
@TaskAction
public void processLibraries()
{
outputDir.deleteDir( )
inputFiles.each { file ->
if( file.exists( ) )
{
if( file.isDirectory( ) )
{
project.fileTree( file ).each {
project.copy {
from file
into "${ outputVariantDir }/libraries"
include "**/?*.swc"
}
}
}
else
{
project.copy {
from file
into "${ outputVariantDir }/libraries"
}
}
}
}
}
private Set findInputFiles()
{
List list = new ArrayList( )
variant.getDirectories( Variant.NamingType.CAPITALIZE_BUT_FIRST ).each {
String s = it == "main" ? Config.LIBRARY.name : it + Config.LIBRARY.name.capitalize( )
list.addAll( project.configurations.getByName( s ).files )
}
return list
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy