diff options
author | 2017-08-29 22:15:32 +0200 | |
---|---|---|
committer | 2017-08-30 13:48:16 +0200 | |
commit | 32b85516fc3ad554ec3a54d3e9cf0ee66b81127c (patch) | |
tree | a4c0a56c6c3d4e6cc52529bf9a5e9b77ac83ec4a /src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java | |
parent | 2f9e7460914672cfde46ed93059802190ae1a159 (diff) |
Save density information to manifests when filtering resources in analysis
Previously, when filtering in analysis, density information was not passed to
execution to avoid wasting time on re-filtering. However, that density
information was also used to add information to the manifest. Add an additional
flag to save density information to the manifest without triggering resource
filtering in execution, and use it when filtering in analysis.
RELNOTES: None
PiperOrigin-RevId: 166891827
Diffstat (limited to 'src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java')
-rw-r--r-- | src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java b/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java index cfee8a88e0..851829005c 100644 --- a/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java +++ b/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java @@ -247,6 +247,21 @@ public class AndroidResourceProcessingAction { public List<String> densities; @Option( + name = "densitiesForManifest", + defaultValue = "", + converter = CommaSeparatedOptionListConverter.class, + category = "config", + documentationCategory = OptionDocumentationCategory.UNCATEGORIZED, + effectTags = {OptionEffectTag.UNKNOWN}, + help = + "Densities to specify in the manifest. If 'densities' is specified, that value will be" + + " used instead and this flag will be ignored. However, if resources were filtered" + + " in analysis, this flag can be used to specify densities in the manifest without" + + " repeating the filtering process." + ) + public List<String> densitiesForManifest; + + @Option( name = "packageForR", defaultValue = "null", category = "config", @@ -366,12 +381,16 @@ public class AndroidResourceProcessingAction { options.prefilteredResources.isEmpty() ? options.densities : Collections.<String>emptyList(); + final List<String> densitiesForManifest = + densitiesToFilter.isEmpty() + ? options.densitiesForManifest + : densitiesToFilter; final DensityFilteredAndroidData filteredData = mergedData.filter( new DensitySpecificResourceFilter( densitiesToFilter, filteredResources, mergedResources), - new DensitySpecificManifestProcessor(options.densities, densityManifest)); + new DensitySpecificManifestProcessor(densitiesForManifest, densityManifest)); logger.fine( String.format( |