45 lines
1.4 KiB
Groovy
45 lines
1.4 KiB
Groovy
// file: Android/gradle/sasedev-assets.gradle
|
|
// version: 2
|
|
|
|
abstract class StageSasedevAssetsTask extends DefaultTask {
|
|
@InputDirectory
|
|
abstract DirectoryProperty getCommonAssetsDirectory()
|
|
|
|
@InputDirectory
|
|
abstract DirectoryProperty getGameAssetsDirectory()
|
|
|
|
@OutputDirectory
|
|
abstract DirectoryProperty getOutputDirectory()
|
|
|
|
@TaskAction
|
|
void stageAssets() {
|
|
def output = outputDirectory.get().asFile
|
|
project.delete(output)
|
|
|
|
project.copy {
|
|
from(commonAssetsDirectory)
|
|
into(new File(output, "common"))
|
|
}
|
|
|
|
project.copy {
|
|
from(gameAssetsDirectory)
|
|
into(new File(output, "game"))
|
|
}
|
|
}
|
|
}
|
|
|
|
androidComponents {
|
|
onVariants(selector().all()) { variant ->
|
|
def capitalizedVariantName = variant.name.substring(0, 1).toUpperCase() + variant.name.substring(1)
|
|
def stageTask = tasks.register("stage${capitalizedVariantName}SasedevAssets", StageSasedevAssetsTask) {
|
|
commonAssetsDirectory.set(rootProject.layout.projectDirectory.dir("../assets/common"))
|
|
gameAssetsDirectory.set(rootProject.layout.projectDirectory.dir("../assets/${project.ext.sasedevGameAssetDirectory}"))
|
|
outputDirectory.set(layout.buildDirectory.dir("generated/sasedevAssets/${variant.name}"))
|
|
}
|
|
|
|
variant.sources.assets.addGeneratedSourceDirectory(stageTask) { task ->
|
|
task.outputDirectory
|
|
}
|
|
}
|
|
}
|