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; }