aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-08-11 19:08:03 +0000
committerGravatar Yue Gan <yueg@google.com>2016-08-12 08:52:24 +0000
commit2427f8d056d143fd3ef3f8b36ffb56cf498d64bc (patch)
treeef69b0413861f31df4fa064e0cde9141e3ecbf93 /src/main/java/com/google/devtools/build/lib/rules
parent70452d226e5c551c3e86984690edf99eae0fc6a7 (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.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeployInfoAction.java17
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);
}