summaryrefslogtreecommitdiff
path: root/build-system/tests/genFolderApi/build.gradle
blob: 3eb0d358649e5067a8d12ff4cb10cde076cf6f72 (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/repo' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.1'
    }
}
apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion '19.1.0'
}


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.registerJavaGeneratingTask(javaGenerationTask, sourceFolder)
}