aboutsummaryrefslogtreecommitdiff
path: root/builder
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2012-09-11 13:39:56 -0700
committerXavier Ducrohet <xav@android.com>2012-09-11 13:39:56 -0700
commitf7a8a1fd33a40f75c1ba6c345d1b41085d11afa5 (patch)
treea7568c47a7f481f47f7b8f6f0175e7814bb44e10 /builder
parent74a7c16a4166e788198965cd03a2958333f28b6b (diff)
downloadbuild-f7a8a1fd33a40f75c1ba6c345d1b41085d11afa5.tar.gz
Ensure manifest changes trigger new builds.
The ProcessManifest task was not using manifest files as inputs so changes in them would not trigger new builds. Change-Id: I86b6b9ef2b1308c0cf36ccd538f1967ae7c1cc8f
Diffstat (limited to 'builder')
-rw-r--r--builder/src/main/java/com/android/builder/AndroidBuilder.java2
-rw-r--r--builder/src/main/java/com/android/builder/VariantConfiguration.java33
2 files changed, 33 insertions, 2 deletions
diff --git a/builder/src/main/java/com/android/builder/AndroidBuilder.java b/builder/src/main/java/com/android/builder/AndroidBuilder.java
index 9be56f1..f083dba 100644
--- a/builder/src/main/java/com/android/builder/AndroidBuilder.java
+++ b/builder/src/main/java/com/android/builder/AndroidBuilder.java
@@ -327,7 +327,7 @@ public class AndroidBuilder {
try {
File mainLocation = config.getDefaultSourceSet().getAndroidManifest();
File typeLocation = config.getBuildTypeSourceSet().getAndroidManifest();
- if (typeLocation != null && typeLocation.isDirectory() == false) {
+ if (typeLocation != null && typeLocation.isFile() == false) {
typeLocation = null;
}
diff --git a/builder/src/main/java/com/android/builder/VariantConfiguration.java b/builder/src/main/java/com/android/builder/VariantConfiguration.java
index b151c4f..33507de 100644
--- a/builder/src/main/java/com/android/builder/VariantConfiguration.java
+++ b/builder/src/main/java/com/android/builder/VariantConfiguration.java
@@ -401,6 +401,38 @@ public class VariantConfiguration {
return list;
}
+ public List<File> getManifestInputs() {
+ List<File> inputs = new ArrayList<File>();
+
+ File defaultManifest = mDefaultSourceSet.getAndroidManifest();
+ // this could not exist in a test project.
+ if (defaultManifest != null && defaultManifest.isFile()) {
+ inputs.add(defaultManifest);
+ }
+
+ File typeLocation = mBuildTypeSourceSet.getAndroidManifest();
+ if (typeLocation != null && typeLocation.isFile()) {
+ inputs.add(typeLocation);
+ }
+
+ for (SourceSet sourceSet : mFlavorSourceSets) {
+ File f = sourceSet.getAndroidManifest();
+ if (f != null && f.isFile()) {
+ inputs.add(f);
+ }
+ }
+
+ List<AndroidDependency> libs = getFullDirectDependencies();
+ for (AndroidDependency lib : libs) {
+ File manifest = lib.getManifest();
+ if (manifest != null && manifest.isFile()) {
+ inputs.add(manifest);
+ }
+ }
+
+ return inputs;
+ }
+
/**
* Returns the dynamic list of resource folders based on the configuration, its dependencies,
* as well as tested config if applicable (test of a library).
@@ -456,7 +488,6 @@ public class VariantConfiguration {
return list;
}
-
/**
* Returns the compile classpath for this config. If the config tests a library, this
* will include the classpath of the tested config