diff options
author | Googler <noreply@google.com> | 2016-08-11 19:08:03 +0000 |
---|---|---|
committer | Yue Gan <yueg@google.com> | 2016-08-12 08:52:24 +0000 |
commit | 2427f8d056d143fd3ef3f8b36ffb56cf498d64bc (patch) | |
tree | ef69b0413861f31df4fa064e0cde9141e3ecbf93 /src/main/java/com/google/devtools/build/lib/rules | |
parent | 70452d226e5c551c3e86984690edf99eae0fc6a7 (diff) |
Add android_test#data to android deploy info.
--
MOS_MIGRATED_REVID=130016248
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java | 15 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeployInfoAction.java | 17 |
2 files changed, 24 insertions, 8 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java index f93299c273..b42d29b9f1 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java @@ -457,12 +457,19 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { filesBuilder.add(zipAlignedApk); NestedSet<Artifact> filesToBuild = filesBuilder.build(); + Iterable<Artifact> dataDeps = ImmutableList.of(); + if (ruleContext.getAttribute("data") != null + && ruleContext.getAttributeMode("data") == Mode.DATA) { + dataDeps = ruleContext.getPrerequisiteArtifacts("data", Mode.DATA).list(); + } + Artifact deployInfo = ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.DEPLOY_INFO); AndroidDeployInfoAction.createDeployInfoAction(ruleContext, deployInfo, applicationManifest.getManifest(), additionalMergedManifests, - Iterables.concat(ImmutableList.of(zipAlignedApk), apksUnderTest)); + Iterables.concat(ImmutableList.of(zipAlignedApk), apksUnderTest), + dataDeps); NestedSet<Artifact> coverageMetadata = (androidCommon.getInstrumentedJar() != null) ? NestedSetBuilder.create(Order.STABLE_ORDER, androidCommon.getInstrumentedJar()) @@ -536,7 +543,8 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { incrementalDeployInfo, applicationManifest.getManifest(), additionalMergedManifests, - ImmutableList.<Artifact>of()); + ImmutableList.<Artifact>of(), + dataDeps); NestedSet<Artifact> fullInstallOutputGroup = NestedSetBuilder.<Artifact>stableOrder() .add(fullDeployMarker) @@ -634,7 +642,8 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { splitDeployInfo, applicationManifest.getManifest(), additionalMergedManifests, - ImmutableList.<Artifact>of()); + ImmutableList.<Artifact>of(), + dataDeps); NestedSet<Artifact> splitInstallOutputGroup = NestedSetBuilder.<Artifact>stableOrder() .addTransitive(allSplitApks) diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeployInfoAction.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeployInfoAction.java index cae2cece29..1f38303611 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeployInfoAction.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeployInfoAction.java @@ -44,12 +44,14 @@ public final class AndroidDeployInfoAction extends AbstractFileWriteAction { private static Iterable<Artifact> makeInputs( Artifact mergedManifest, Iterable<Artifact> additionalMergedManifests, - Iterable<Artifact> apksToDeploy) { + Iterable<Artifact> apksToDeploy, + Iterable<Artifact> dataDeps) { return ImmutableList.<Artifact>builder() .add(mergedManifest) .addAll(additionalMergedManifests) .addAll(apksToDeploy) + .addAll(dataDeps) .build(); } @@ -61,8 +63,9 @@ public final class AndroidDeployInfoAction extends AbstractFileWriteAction { Artifact outputFile, Artifact mergedManifest, Iterable<Artifact> additionalMergedManifests, - Iterable<Artifact> apksToDeploy) { - super(owner, makeInputs(mergedManifest, additionalMergedManifests, apksToDeploy), + Iterable<Artifact> apksToDeploy, + Iterable<Artifact> dataDeps) { + super(owner, makeInputs(mergedManifest, additionalMergedManifests, apksToDeploy, dataDeps), outputFile, false); AndroidDeployInfoOuterClass.AndroidDeployInfo.Builder builder = AndroidDeployInfoOuterClass.AndroidDeployInfo.newBuilder(); @@ -73,6 +76,9 @@ public final class AndroidDeployInfoAction extends AbstractFileWriteAction { for (Artifact apk : apksToDeploy) { builder.addApksToDeploy(makeArtifactProto(apk)); } + for (Artifact dataDep : dataDeps) { + builder.addDataToDeploy(makeArtifactProto(dataDep)); + } this.byteString = builder.build().toByteString(); } @@ -81,9 +87,10 @@ public final class AndroidDeployInfoAction extends AbstractFileWriteAction { Artifact deployInfo, Artifact mergedManifest, Iterable<Artifact> additionalMergedManifests, - Iterable<Artifact> apksToDeploy) { + Iterable<Artifact> apksToDeploy, + Iterable<Artifact> dataDeps) { Action action = new AndroidDeployInfoAction(ruleContext.getActionOwner(), - deployInfo, mergedManifest, additionalMergedManifests, apksToDeploy); + deployInfo, mergedManifest, additionalMergedManifests, apksToDeploy, dataDeps); ruleContext.registerAction(action); } |