Add android_test#data to android deploy info.
--
MOS_MIGRATED_REVID=130016248
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 f93299c..b42d29b 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 @@
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 @@
incrementalDeployInfo,
applicationManifest.getManifest(),
additionalMergedManifests,
- ImmutableList.<Artifact>of());
+ ImmutableList.<Artifact>of(),
+ dataDeps);
NestedSet<Artifact> fullInstallOutputGroup = NestedSetBuilder.<Artifact>stableOrder()
.add(fullDeployMarker)
@@ -634,7 +642,8 @@
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 cae2cec..1f38303 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 @@
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 @@
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 @@
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 @@
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);
}
diff --git a/src/main/protobuf/android_deploy_info.proto b/src/main/protobuf/android_deploy_info.proto
index c93c9dc..30c7328 100644
--- a/src/main/protobuf/android_deploy_info.proto
+++ b/src/main/protobuf/android_deploy_info.proto
@@ -33,4 +33,7 @@
// If the build supports an external deploy, this will have the APKs.
// mobile-install does its own deployment, so this list will be empty
repeated Artifact apks_to_deploy = 3;
+
+ // Any data files to deploy
+ repeated Artifact data_to_deploy = 4;
}