diff options
| author | Xavier Ducrohet <xav@google.com> | 2013-11-22 13:38:51 -0800 |
|---|---|---|
| committer | Xavier Ducrohet <xav@google.com> | 2013-11-22 14:49:05 -0800 |
| commit | 6dde98d5274118574ae29a19665aef7c5f9d1800 (patch) | |
| tree | 9ab625fcd5188b7261bbf112826e171b39e2a753 /gradle/src | |
| parent | 6c7f1356dfc68aac0cfc5cdbb6d1e84fd9e55f21 (diff) | |
| download | platform_tools_build-6dde98d5274118574ae29a19665aef7c5f9d1800.tar.gz platform_tools_build-6dde98d5274118574ae29a19665aef7c5f9d1800.tar.bz2 platform_tools_build-6dde98d5274118574ae29a19665aef7c5f9d1800.zip | |
Add API to specify new generated source folders.
Change-Id: I64085181917a81deadac94889adbb37b41298ac0
Diffstat (limited to 'gradle/src')
5 files changed, 77 insertions, 5 deletions
diff --git a/gradle/src/build-test/groovy/com/android/build/gradle/AutomatedBuildTest.java b/gradle/src/build-test/groovy/com/android/build/gradle/AutomatedBuildTest.java index b7fcc983..53720052 100644 --- a/gradle/src/build-test/groovy/com/android/build/gradle/AutomatedBuildTest.java +++ b/gradle/src/build-test/groovy/com/android/build/gradle/AutomatedBuildTest.java @@ -35,11 +35,11 @@ public class AutomatedBuildTest extends BuildTest { private static final String[] sBuiltProjects = new String[] { "aidl", "api", "applibtest", "assets", "attrOrder", "basic", "dependencies", - "dependencyChecker", "flavored", "flavorlib", "flavors", "libProguardJarDep", - "libProguardLibDep", "libTestDep", "libsTest", "localJars", "migrated", "multiproject", - "multires", "ndkSanAngeles", "overlay1", "overlay2", "pkgOverride", "proguard", - "proguardLib", "renderscript", "renderscriptInLib", "renderscriptMultiSrc", - "rsSupportMode", "sameNamedLibs", "tictactoe" /*, "autorepo"*/ + "dependencyChecker", "flavored", "flavorlib", "flavors", "genFolderApi", + "libProguardJarDep", "libProguardLibDep", "libTestDep", "libsTest", "localJars", + "migrated", "multiproject", "multires", "ndkSanAngeles", "overlay1", "overlay2", + "pkgOverride", "proguard", "proguardLib", "renderscript", "renderscriptInLib", + "renderscriptMultiSrc", "rsSupportMode", "sameNamedLibs", "tictactoe" /*, "autorepo"*/ }; private static final String[] sReportProjects = new String[] { diff --git a/gradle/src/main/groovy/com/android/build/gradle/api/BaseVariant.java b/gradle/src/main/groovy/com/android/build/gradle/api/BaseVariant.java index cfc1fd39..854f4a52 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/api/BaseVariant.java +++ b/gradle/src/main/groovy/com/android/build/gradle/api/BaseVariant.java @@ -152,4 +152,26 @@ public interface BaseVariant { */ @Nullable Task getAssemble(); + + /** + * Adds to the variant a task that generates Java source Code. + * + * This will make the compileJava task depend on this task and add the + * new source folders as compilation inputs. + * + * @param task the task + * @param sourceFolders the source folders where the generated source code is. + */ + void addGeneratedSourceFolders(@NonNull Task task, @NonNull File... sourceFolders); + + /** + * Adds to the variant a task that generates Java source Code. + * + * This will make the compileJava task depend on this task and add the + * new source folders as compilation inputs. + * + * @param task the task + * @param sourceFolders the source folders where the generated source code is. + */ + void addGeneratedSourceFolders(@NonNull Task task, @NonNull Iterable<File> sourceFolders); } diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/api/BaseVariantImpl.java b/gradle/src/main/groovy/com/android/build/gradle/internal/api/BaseVariantImpl.java index e49b7c0b..94ee0ab0 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/api/BaseVariantImpl.java +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/api/BaseVariantImpl.java @@ -137,4 +137,14 @@ abstract class BaseVariantImpl implements BaseVariant { public Task getAssemble() { return getVariantData().assembleTask; } + + @Override + public void addGeneratedSourceFolders(@NonNull Task task, @NonNull File... sourceFolders) { + getVariantData().addGeneratedSourceFolders(task, sourceFolders); + } + + @Override + public void addGeneratedSourceFolders(@NonNull Task task, @NonNull Iterable<File> sourceFolders) { + getVariantData().addGeneratedSourceFolders(task, sourceFolders); + } } diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/model/ModelBuilder.groovy b/gradle/src/main/groovy/com/android/build/gradle/internal/model/ModelBuilder.groovy index 037b7899..c3ede88e 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/model/ModelBuilder.groovy +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/model/ModelBuilder.groovy @@ -220,6 +220,11 @@ public class ModelBuilder implements ToolingModelBuilder { folders.add(variantData.renderscriptCompileTask.sourceOutputDir) folders.add(variantData.generateBuildConfigTask.sourceOutputDir) + List<File> extraFolders = variantData.extraGeneratedSourceFolders + if (extraFolders != null) { + folders.addAll(extraFolders) + } + return folders } diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/variant/BaseVariantData.java b/gradle/src/main/groovy/com/android/build/gradle/internal/variant/BaseVariantData.java index 84241c50..6c682016 100644 --- a/gradle/src/main/groovy/com/android/build/gradle/internal/variant/BaseVariantData.java +++ b/gradle/src/main/groovy/com/android/build/gradle/internal/variant/BaseVariantData.java @@ -30,6 +30,7 @@ import com.android.build.gradle.tasks.ProcessAndroidResources; import com.android.build.gradle.tasks.ProcessManifest; import com.android.build.gradle.tasks.RenderscriptCompile; import com.android.builder.VariantConfiguration; +import com.google.common.collect.Lists; import groovy.lang.Closure; import org.gradle.api.Task; import org.gradle.api.tasks.Copy; @@ -37,6 +38,7 @@ import org.gradle.api.tasks.compile.JavaCompile; import proguard.gradle.ProGuardTask; import java.io.File; +import java.util.List; /** * Base data about a variant. @@ -67,6 +69,8 @@ public abstract class BaseVariantData { public Task assembleTask; + private List<File> extraGeneratedSourceFolders; + public BaseVariantData(@NonNull VariantConfiguration variantConfiguration) { this.variantConfiguration = variantConfiguration; } @@ -124,4 +128,35 @@ public abstract class BaseVariantData { String getName() { return variantConfiguration.getFullName(); } + + @Nullable + public List<File> getExtraGeneratedSourceFolders() { + return extraGeneratedSourceFolders; + } + + public void addGeneratedSourceFolders(@NonNull Task task, @NonNull File... generatedSourceFolders) { + if (extraGeneratedSourceFolders == null) { + extraGeneratedSourceFolders = Lists.newArrayList(); + } + + javaCompileTask.dependsOn(task); + + for (File f : generatedSourceFolders) { + extraGeneratedSourceFolders.add(f); + javaCompileTask.source(f); + } + } + + public void addGeneratedSourceFolders(@NonNull Task task, @NonNull Iterable<File> generatedSourceFolders) { + if (extraGeneratedSourceFolders == null) { + extraGeneratedSourceFolders = Lists.newArrayList(); + } + + javaCompileTask.dependsOn(task); + + for (File f : generatedSourceFolders) { + extraGeneratedSourceFolders.add(f); + javaCompileTask.source(f); + } + } } |
