aboutsummaryrefslogtreecommitdiffstats
path: root/gradle/src
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@google.com>2013-11-22 13:38:51 -0800
committerXavier Ducrohet <xav@google.com>2013-11-22 14:49:05 -0800
commit6dde98d5274118574ae29a19665aef7c5f9d1800 (patch)
tree9ab625fcd5188b7261bbf112826e171b39e2a753 /gradle/src
parent6c7f1356dfc68aac0cfc5cdbb6d1e84fd9e55f21 (diff)
downloadplatform_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')
-rw-r--r--gradle/src/build-test/groovy/com/android/build/gradle/AutomatedBuildTest.java10
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/api/BaseVariant.java22
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/internal/api/BaseVariantImpl.java10
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/internal/model/ModelBuilder.groovy5
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/internal/variant/BaseVariantData.java35
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);
+ }
+ }
}