diff options
author | Xavier Ducrohet <xav@android.com> | 2012-09-11 13:39:56 -0700 |
---|---|---|
committer | Xavier Ducrohet <xav@android.com> | 2012-09-11 13:39:56 -0700 |
commit | f7a8a1fd33a40f75c1ba6c345d1b41085d11afa5 (patch) | |
tree | a7568c47a7f481f47f7b8f6f0175e7814bb44e10 /builder | |
parent | 74a7c16a4166e788198965cd03a2958333f28b6b (diff) | |
download | build-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.java | 2 | ||||
-rw-r--r-- | builder/src/main/java/com/android/builder/VariantConfiguration.java | 33 |
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 |