From 32b85516fc3ad554ec3a54d3e9cf0ee66b81127c Mon Sep 17 00:00:00 2001 From: Googler Date: Tue, 29 Aug 2017 22:15:32 +0200 Subject: 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 --- .../android/AndroidResourceProcessingAction.java | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction.java') 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 @@ -246,6 +246,21 @@ public class AndroidResourceProcessingAction { ) public List 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 densitiesForManifest; + @Option( name = "packageForR", defaultValue = "null", @@ -366,12 +381,16 @@ public class AndroidResourceProcessingAction { options.prefilteredResources.isEmpty() ? options.densities : Collections.emptyList(); + final List 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( -- cgit v1.2.3