Files
games/Android/gradle/sasedev-assets.gradle

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
}
}
}