aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-06-02 12:13:36 -0400
committerGravatar John Cater <jcater@google.com>2017-06-05 10:18:31 -0400
commit18dc43f1e11f61fd0c3f70e7b198e536d86c82e5 (patch)
tree5f1a908932acd05604021364c60f580de57c0744 /src/main/java/com/google/devtools/build/lib/rules
parent2347169c139da8e68ad30d9661ee243e7274758a (diff)
Expose .ap_ artifact as a skylark provider
RELNOTES: none PiperOrigin-RevId: 157837746
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/AndroidCommon.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdeInfoProvider.java19
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java9
3 files changed, 28 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
index 8be37d96b3..75290d124e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java
@@ -282,7 +282,8 @@ public class AndroidCommon {
// Sets the possibly merged manifest and the raw manifest.
.setGeneratedManifest(resourceApk.getPrimaryResource().getManifest())
.setManifest(ruleContext.getPrerequisiteArtifact("manifest", Mode.TARGET))
- .setJavaPackage(getJavaPackage(ruleContext));
+ .setJavaPackage(getJavaPackage(ruleContext))
+ .setResourceApk(resourceApk.getArtifact());
} else {
semantics.addNonLocalResources(ruleContext, resourceApk, ideInfoProviderBuilder);
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdeInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdeInfoProvider.java
index cc5b9bb4be..e09f002b88 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdeInfoProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdeInfoProvider.java
@@ -128,6 +128,7 @@ public final class AndroidIdeInfoProvider implements TransitiveInfoProvider {
private Artifact manifest = null;
private Artifact generatedManifest = null;
private Artifact apk = null;
+ private Artifact resourceApk = null;
private Artifact idlClassJar = null;
private Artifact idlSourceJar = null;
private OutputJar resourceJar = null;
@@ -163,7 +164,8 @@ public final class AndroidIdeInfoProvider implements TransitiveInfoProvider {
ImmutableList.copyOf(apksUnderTest),
nativeLibs != null
? ImmutableMap.copyOf(nativeLibs)
- : ImmutableMap.<String, NestedSet<Artifact>>of());
+ : ImmutableMap.<String, NestedSet<Artifact>>of(),
+ resourceApk);
}
public Builder setJavaPackage(String javaPackage) {
@@ -211,6 +213,11 @@ public final class AndroidIdeInfoProvider implements TransitiveInfoProvider {
return this;
}
+ public Builder setResourceApk(Artifact resourceApk) {
+ this.resourceApk = resourceApk;
+ return this;
+ }
+
public Builder setAar(Artifact aar) {
this.aar = aar;
return this;
@@ -314,6 +321,7 @@ public final class AndroidIdeInfoProvider implements TransitiveInfoProvider {
@Nullable private final Artifact idlClassJar;
@Nullable private final Artifact idlSourceJar;
@Nullable private final OutputJar resourceJar;
+ @Nullable private final Artifact resourceApk;
private final ImmutableCollection<SourceDirectory> resourceDirs;
private final boolean definesAndroidResources;
private final Artifact aar;
@@ -341,7 +349,8 @@ public final class AndroidIdeInfoProvider implements TransitiveInfoProvider {
ImmutableCollection<Artifact> idlSrcs,
ImmutableCollection<Artifact> idlGeneratedJavaFiles,
ImmutableCollection<Artifact> apksUnderTest,
- ImmutableMap<String, NestedSet<Artifact>> nativeLibs) {
+ ImmutableMap<String, NestedSet<Artifact>> nativeLibs,
+ Artifact resourceApk) {
this.javaPackage = javaPackage;
this.idlImportRoot = idlImportRoot;
this.manifest = manifest;
@@ -359,6 +368,7 @@ public final class AndroidIdeInfoProvider implements TransitiveInfoProvider {
this.idlGeneratedJavaFiles = idlGeneratedJavaFiles;
this.apksUnderTest = apksUnderTest;
this.nativeLibs = nativeLibs;
+ this.resourceApk = resourceApk;
}
/** Returns java package for this target. */
@@ -417,6 +427,11 @@ public final class AndroidIdeInfoProvider implements TransitiveInfoProvider {
return aar;
}
+ @Nullable
+ public Artifact getResourceApk() {
+ return resourceApk;
+ }
+
/** A list of the direct Resource directories. */
public ImmutableCollection<SourceDirectory> getResourceDirs() {
return resourceDirs;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java
index 90d102911c..afad1131cc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java
@@ -108,6 +108,15 @@ public class AndroidSkylarkApiProvider extends SkylarkApiProvider {
}
@SkylarkCallable(
+ name = "resource_apk",
+ structField = true,
+ doc = "Returns the resources container for the target."
+ )
+ public Artifact getResourceApk() {
+ return getIdeInfoProvider().getResourceApk();
+ }
+
+ @SkylarkCallable(
name = "apks_under_test",
structField = true,
allowReturnNones = true,