aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java
diff options
context:
space:
mode:
authorGravatar Adam Michael <ajmichael@google.com>2017-01-11 23:37:14 +0000
committerGravatar Marcel Hlopko <hlopko@google.com>2017-01-12 09:12:19 +0000
commit7fc35ae6890f4130b4d99a6c5007dcee91c5a8cc (patch)
tree4385f78314ba31bd86cd5605e0d46eaaa0822410 /src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java
parent19dda2577ece84e99f82af41c18a7bd2c796ff99 (diff)
aar_import provides JavaCompilationArgsProvider for DexArchiveAspect.
-- PiperOrigin-RevId: 144258810 MOS_MIGRATED_REVID=144258810
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java b/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java
index 8e06123816..c65c84f811 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java
@@ -28,10 +28,13 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.rules.RuleConfiguredTargetFactory;
import com.google.devtools.build.lib.rules.java.JavaCommon;
+import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider;
+import com.google.devtools.build.lib.rules.java.JavaCompilationArtifacts;
import com.google.devtools.build.lib.rules.java.JavaHelper;
import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider;
import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider.OutputJar;
import com.google.devtools.build.lib.rules.java.JavaRuntimeJarProvider;
+import com.google.devtools.build.lib.rules.java.JavaSemantics;
import com.google.devtools.build.lib.rules.java.JavaToolchainProvider;
import com.google.devtools.build.lib.rules.java.Jvm;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -49,6 +52,12 @@ public class AarImport implements RuleConfiguredTargetFactory {
private static final String ANDROID_MANIFEST = "AndroidManifest.xml";
private static final String MERGED_JAR = "classes_and_libs_merged.jar";
+ private final JavaSemantics javaSemantics;
+
+ protected AarImport(JavaSemantics javaSemantics) {
+ this.javaSemantics = javaSemantics;
+ }
+
@Override
public ConfiguredTarget create(RuleContext ruleContext)
throws InterruptedException, RuleErrorException {
@@ -116,6 +125,23 @@ public class AarImport implements RuleConfiguredTargetFactory {
}
}
+ ImmutableList<TransitiveInfoCollection> targets =
+ ImmutableList.<TransitiveInfoCollection>copyOf(
+ ruleContext.getPrerequisites("exports", Mode.TARGET));
+ JavaCommon common =
+ new JavaCommon(
+ ruleContext,
+ javaSemantics,
+ /* sources = */ ImmutableList.<Artifact>of(),
+ /* compileDeps = */ targets,
+ /* runtimeDeps = */ targets,
+ /* bothDeps = */ targets);
+ common.setJavaCompilationArtifacts(
+ new JavaCompilationArtifacts.Builder()
+ .addRuntimeJar(mergedJar)
+ .addCompileTimeJar(mergedJar)
+ .build());
+
return ruleBuilder
.setFilesToBuild(filesToBuildBuilder.build())
.addProvider(RunfilesProvider.class, RunfilesProvider.EMPTY)
@@ -127,6 +153,17 @@ public class AarImport implements RuleConfiguredTargetFactory {
AndroidCommon.collectTransitiveNativeLibsZips(ruleContext).add(nativeLibs).build()))
.addProvider(
JavaRuntimeJarProvider.class, new JavaRuntimeJarProvider(ImmutableList.of(mergedJar)))
+ .addProvider(
+ JavaCompilationArgsProvider.class,
+ JavaCompilationArgsProvider.create(
+ common.collectJavaCompilationArgs(
+ /* recursive = */ false,
+ JavaCommon.isNeverLink(ruleContext),
+ /* srcLessDepsExport = */ false),
+ common.collectJavaCompilationArgs(
+ /* recursive = */ true,
+ JavaCommon.isNeverLink(ruleContext),
+ /* srcLessDepsExport = */ false)))
.addProvider(JavaRuleOutputJarsProvider.class, jarProviderBuilder.build())
.build();
}