Created
June 8, 2015 16:25
-
-
Save sdwilsh/f98020f4573e506705b6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- a/src/com/facebook/buck/android/AndroidPrebuiltAar.java | |
+++ b/src/com/facebook/buck/android/AndroidPrebuiltAar.java | |
@@ -56,7 +56,7 @@ public class AndroidPrebuiltAar | |
/* resources */ ImmutableSortedSet.<SourcePath>of(), | |
Optional.of(proguardConfig), | |
/* postprocessClassesCommands */ ImmutableList.<String>of(), | |
- ImmutableSortedSet.<BuildRule>of(prebuiltJar), | |
+ /* exportedDeps */ ImmutableSortedSet.<BuildRule>of(prebuiltJar), | |
/* providedDeps */ ImmutableSortedSet.<BuildRule>of(), | |
/* additionalClasspathEntries */ ImmutableSet.<Path>of(), | |
javacOptions, | |
--- a/src/com/facebook/buck/android/AndroidPrebuiltAarDescription.java | |
+++ b/src/com/facebook/buck/android/AndroidPrebuiltAarDescription.java | |
@@ -65,7 +65,12 @@ public class AndroidPrebuiltAarDescription | |
BuildRuleParams params, | |
BuildRuleResolver resolver, | |
A args) { | |
- return AndroidPrebuiltAarGraphEnhancer.enhance(params, args.aar, resolver, javacOptions); | |
+ return AndroidPrebuiltAarGraphEnhancer.enhance( | |
+ params, | |
+ args.aar, | |
+ args.deps.or(ImmutableSortedSet.<BuildTarget>of()), | |
+ resolver, | |
+ javacOptions); | |
} | |
@SuppressFieldNotInitialized | |
diff --git a/src/com/facebook/buck/android/AndroidPrebuiltAarGraphEnhancer.java b/src/com/facebook/buck/android/AndroidPrebuiltAarGraphEnhancer.java | |
index 9d4dfaa..43d740c 100644 | |
--- a/src/com/facebook/buck/android/AndroidPrebuiltAarGraphEnhancer.java | |
+++ b/src/com/facebook/buck/android/AndroidPrebuiltAarGraphEnhancer.java | |
@@ -43,11 +43,13 @@ import com.facebook.buck.step.fs.MakeCleanDirectoryStep; | |
import com.facebook.buck.step.fs.MkdirStep; | |
import com.facebook.buck.step.fs.TouchStep; | |
import com.facebook.buck.zip.UnzipStep; | |
+import com.google.common.base.Function; | |
import com.google.common.base.Optional; | |
import com.google.common.base.Suppliers; | |
import com.google.common.collect.ImmutableList; | |
import com.google.common.collect.ImmutableSet; | |
import com.google.common.collect.ImmutableSortedSet; | |
+import com.google.common.collect.Iterables; | |
import java.io.IOException; | |
import java.nio.file.Path; | |
@@ -80,7 +82,8 @@ class AndroidPrebuiltAarGraphEnhancer { | |
static AndroidPrebuiltAar enhance( | |
BuildRuleParams originalBuildRuleParams, | |
SourcePath aarFile, | |
- BuildRuleResolver ruleResolver, | |
+ ImmutableSortedSet<BuildTarget> deps, | |
+ final BuildRuleResolver ruleResolver, | |
JavacOptions javacOptions) { | |
SourcePathResolver pathResolver = new SourcePathResolver(ruleResolver); | |
@@ -105,8 +108,13 @@ class AndroidPrebuiltAarGraphEnhancer { | |
// prebuilt_jar | |
BuildRuleParams prebuiltJarParams = originalBuildRuleParams.copyWithChanges( | |
BuildTargets.createFlavoredBuildTarget(originalBuildTarget, AAR_PREBUILT_JAR_FLAVOR), | |
- /* declaredDeps */ | |
- Suppliers.ofInstance(ImmutableSortedSet.<BuildRule>of(unzipAar)), | |
+ /* declaredDeps */ Suppliers.ofInstance(ImmutableSortedSet.<BuildRule>naturalOrder() | |
+ .add(unzipAar) | |
+ .addAll(getFlavoredBuildRulesFromTargets( | |
+ deps, | |
+ AAR_PREBUILT_JAR_FLAVOR, | |
+ ruleResolver)) | |
+ .build()), | |
/* extraDeps */ Suppliers.ofInstance(ImmutableSortedSet.<BuildRule>of())); | |
PrebuiltJar prebuiltJar = new PrebuiltJar( | |
/* params */ prebuiltJarParams, | |
@@ -127,7 +135,13 @@ class AndroidPrebuiltAarGraphEnhancer { | |
// android_resource | |
BuildRuleParams androidResourceParams = originalBuildRuleParams.copyWithChanges( | |
BuildTargets.createFlavoredBuildTarget(originalBuildTarget, AAR_ANDROID_RESOURCE_FLAVOR), | |
- /* declaredDeps */ Suppliers.ofInstance(ImmutableSortedSet.<BuildRule>of(unzipAar)), | |
+ /* declaredDeps */ Suppliers.ofInstance(ImmutableSortedSet.<BuildRule>naturalOrder() | |
+ .add(unzipAar) | |
+ .addAll(getFlavoredBuildRulesFromTargets( | |
+ deps, | |
+ AAR_ANDROID_RESOURCE_FLAVOR, | |
+ ruleResolver)) | |
+ .build()), | |
/* extraDeps */ Suppliers.ofInstance(ImmutableSortedSet.<BuildRule>of())); | |
// Because all resources and assets are generated files, we specify them as empty collections. | |
@@ -178,6 +192,23 @@ class AndroidPrebuiltAarGraphEnhancer { | |
javacOptions); | |
} | |
+ private static Iterable<BuildRule> getFlavoredBuildRulesFromTargets( | |
+ ImmutableSortedSet<BuildTarget> targets, | |
+ final Flavor flavor, | |
+ final BuildRuleResolver ruleResolver) { | |
+ return Iterables.transform( | |
+ targets, | |
+ new Function<BuildTarget, BuildRule>() { | |
+ @Override | |
+ public BuildRule apply(BuildTarget target) { | |
+ UnflavoredBuildTarget unflavoredBuildTarget = target.checkUnflavored(); | |
+ return ruleResolver.getRule(BuildTargets.createFlavoredBuildTarget( | |
+ unflavoredBuildTarget, | |
+ flavor)); | |
+ } | |
+ }); | |
+ } | |
+ | |
private static class UnzipAar extends AbstractBuildRule { | |
@AddToRuleKey |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment