aboutsummaryrefslogtreecommitdiff
path: root/tests/genFolderApi/build.gradle
blob: 542d956bc7f216c41740271f79939c1d9f4955ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
buildscript {
    repositories {
        maven { url '../../../../out/host/gradle/repo' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.0-SNAPSHOT'
    }
}
apply plugin: 'android'

android {
    compileSdkVersion 15
    buildToolsVersion "18.0.1"
}


public class GenerateCode extends DefaultTask {
    @Input
    String value

    @OutputFile
    File outputFile

    @TaskAction
    void taskAction() {
        getOutputFile().text =
            "package com.custom;\n" +
            "public class Foo {\n" +
            "    public static String getBuildDate() { return \"${getValue()}\"; }\n" +
            "}\n";
    }
}


android.applicationVariants.all { variant ->

    // create a task that generates a java class
    File sourceFolder = file("${buildDir}/customCode/${variant.dirName}")
    def javaGenerationTask = tasks.create(name: "generatedCodeFor${variant.name.capitalize()}", type: GenerateCode) {
        value new Date().format("yyyy-MM-dd'T'HH:mm'Z'", TimeZone.getTimeZone("UTC"))
        outputFile file("${sourceFolder.absolutePath}/com/custom/Foo.java")
    }

    variant.addGeneratedSourceFolders(javaGenerationTask, sourceFolder)
}