aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2016-09-08 14:08:40 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-09-09 09:02:24 +0000
commitdaf62aeddbd35a3c3959769507112d400fc38bbe (patch)
tree7a7a55563ebdc7ba5b0fc4ab2434941750b5c03d /src/main/java/com/google
parent4138ae2eea34ab8e29a2f18f3bbee6e3ea3e46cf (diff)
Expose aar to Skylark.
-- MOS_MIGRATED_REVID=132551909
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidIdeInfoProvider.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java10
5 files changed, 32 insertions, 3 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 b47e914b78..0b6b467aea 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
@@ -678,7 +678,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
debugKeystore);
androidCommon.addTransitiveInfoProviders(
- builder, androidSemantics, resourceApk, zipAlignedApk, apksUnderTest);
+ builder, androidSemantics, null /* aar */, resourceApk, zipAlignedApk, apksUnderTest);
androidSemantics.addTransitiveInfoProviders(
builder, ruleContext, javaCommon, androidCommon, jarToDex);
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 c12804f3d2..4f42250a97 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
@@ -246,6 +246,7 @@ public class AndroidCommon {
AndroidSemantics semantics,
AndroidIdlHelper idlHelper,
OutputJar resourceJar,
+ Artifact aar,
ResourceApk resourceApk,
Artifact zipAlignedApk,
Iterable<Artifact> apksUnderTest) {
@@ -254,6 +255,7 @@ public class AndroidCommon {
.setIdlClassJar(idlHelper.getIdlClassJar())
.setIdlSourceJar(idlHelper.getIdlSourceJar())
.setResourceJar(resourceJar)
+ .setAar(aar)
.addIdlParcelables(idlHelper.getIdlParcelables())
.addIdlSrcs(idlHelper.getIdlSources())
.addIdlGeneratedJavaFiles(idlHelper.getIdlGeneratedJavaSources())
@@ -697,6 +699,7 @@ public class AndroidCommon {
public RuleConfiguredTargetBuilder addTransitiveInfoProviders(
RuleConfiguredTargetBuilder builder,
AndroidSemantics androidSemantics,
+ Artifact aar,
ResourceApk resourceApk,
Artifact zipAlignedApk,
Iterable<Artifact> apksUnderTest) {
@@ -729,6 +732,7 @@ public class AndroidCommon {
androidSemantics,
idlHelper,
resourceJar,
+ aar,
resourceApk,
zipAlignedApk,
apksUnderTest))
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 39f8ba9f7a..2f0836dea3 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
@@ -138,6 +138,7 @@ public final class AndroidIdeInfoProvider implements TransitiveInfoProvider {
private final Set<Artifact> idlGeneratedJavaFiles = new LinkedHashSet<>();
private final Set<Artifact> apksUnderTest = new LinkedHashSet<>();
private boolean definesAndroidResources;
+ private Artifact aar = null;
public AndroidIdeInfoProvider build() {
return new AndroidIdeInfoProvider(
@@ -149,6 +150,7 @@ public final class AndroidIdeInfoProvider implements TransitiveInfoProvider {
idlSourceJar,
resourceJar,
definesAndroidResources,
+ aar,
ImmutableList.copyOf(assetDirs),
ImmutableList.copyOf(resourceDirs),
ImmutableList.copyOf(idlDirs),
@@ -202,6 +204,11 @@ public final class AndroidIdeInfoProvider implements TransitiveInfoProvider {
return this;
}
+ public Builder setAar(Artifact aar) {
+ this.aar = aar;
+ return this;
+ }
+
/**
* Add "idl_srcs" contents.
*/
@@ -291,6 +298,7 @@ public final class AndroidIdeInfoProvider implements TransitiveInfoProvider {
@Nullable private final OutputJar resourceJar;
private final ImmutableCollection<SourceDirectory> resourceDirs;
private final boolean definesAndroidResources;
+ private final Artifact aar;
private final ImmutableCollection<SourceDirectory> assetDirs;
private final ImmutableCollection<SourceDirectory> idlImports;
private final ImmutableCollection<Artifact> idlSrcs;
@@ -306,6 +314,7 @@ public final class AndroidIdeInfoProvider implements TransitiveInfoProvider {
@Nullable Artifact idlSourceJar,
@Nullable OutputJar resourceJar,
boolean definesAndroidResources,
+ @Nullable Artifact aar,
ImmutableCollection<SourceDirectory> assetDirs,
ImmutableCollection<SourceDirectory> resourceDirs,
ImmutableCollection<SourceDirectory> idlImports,
@@ -320,6 +329,7 @@ public final class AndroidIdeInfoProvider implements TransitiveInfoProvider {
this.idlSourceJar = idlSourceJar;
this.resourceJar = resourceJar;
this.definesAndroidResources = definesAndroidResources;
+ this.aar = aar;
this.assetDirs = assetDirs;
this.resourceDirs = resourceDirs;
this.idlImports = idlImports;
@@ -374,6 +384,11 @@ public final class AndroidIdeInfoProvider implements TransitiveInfoProvider {
return resourceJar;
}
+ @Nullable
+ public Artifact getAar() {
+ return aar;
+ }
+
/** 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/AndroidLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
index 676f9cde71..fbe88ff92f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java
@@ -186,8 +186,8 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory {
.build(ruleContext);
RuleConfiguredTargetBuilder builder = new RuleConfiguredTargetBuilder(ruleContext);
- androidCommon.addTransitiveInfoProviders(builder, androidSemantics, resourceApk, null,
- ImmutableList.<Artifact>of());
+ androidCommon.addTransitiveInfoProviders(builder, androidSemantics, aarOut,
+ resourceApk, null, ImmutableList.<Artifact>of());
androidSemantics.addTransitiveInfoProviders(
builder, ruleContext, javaCommon, androidCommon, null);
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 ed8434de93..6bf1d0f177 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
@@ -132,6 +132,16 @@ public class AndroidSkylarkApiProvider extends SkylarkApiProvider {
return getIdeInfoProvider().getResourceJar();
}
+ @SkylarkCallable(
+ name = "aar",
+ structField = true,
+ allowReturnNones = true,
+ doc = "Returns the aar output of this target."
+ )
+ public Artifact getAar() {
+ return getIdeInfoProvider().getAar();
+ }
+
private NestedSet<Artifact> collectDirectArtifacts(final ResourceType resources) {
AndroidResourcesProvider provider = getInfo().getProvider(AndroidResourcesProvider.class);
if (provider == null) {