aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android
diff options
context:
space:
mode:
authorGravatar ajmichael <ajmichael@google.com>2017-08-09 23:39:13 +0200
committerGravatar Marcel Hlopko <hlopko@google.com>2017-08-10 13:48:03 +0200
commit8d707857c0547cb37a57757366bd28da10ab65db (patch)
treecc893829d634f5336f2301960444b4149fcdd899 /src/main/java/com/google/devtools/build/lib/rules/android
parent44b71aae7afa1a1d01a7d2e0cb7549d0cae3b5d2 (diff)
Automated rollback of commit 8adcf839c5c42defaa2fabedfb0208e4ce97ac95.
*** Reason for rollback *** RELNOTES: None PiperOrigin-RevId: 164775289
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java18
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ApkProvider.java8
4 files changed, 32 insertions, 11 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 14d22abaa2..fc2b6a69c8 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
@@ -837,6 +837,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
ApkProvider.create(
zipAlignedApk,
unsignedApk,
+ androidCommon.getInstrumentedJar(),
applicationManifest.getManifest(),
debugKeystore))
.addProvider(AndroidPreDexJarProvider.class, AndroidPreDexJarProvider.create(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 154aabcb76..96d6acea15 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
@@ -447,11 +447,12 @@ public class AndroidCommon {
} else {
Artifact outputDepsProto =
javacHelper.createOutputDepsProtoArtifact(resourceClassJar, javaArtifactsBuilder);
- javacHelper.createCompileAction(
+ javacHelper.createCompileActionWithInstrumentation(
resourceClassJar,
null /* manifestProtoOutput */,
null /* genSourceJar */,
- outputDepsProto);
+ outputDepsProto,
+ javaArtifactsBuilder);
}
} else {
// Otherwise, it should have been the AndroidRuleClasses.ANDROID_RESOURCES_CLASS_JAR.
@@ -689,7 +690,8 @@ public class AndroidCommon {
helper.createSourceJarAction(srcJar, genSourceJar);
outputDepsProto = helper.createOutputDepsProtoArtifact(classJar, javaArtifactsBuilder);
- helper.createCompileAction(classJar, manifestProtoOutput, genSourceJar, outputDepsProto);
+ helper.createCompileActionWithInstrumentation(classJar, manifestProtoOutput, genSourceJar,
+ outputDepsProto, javaArtifactsBuilder);
if (isBinary) {
generatedExtensionRegistryProvider =
@@ -853,10 +855,6 @@ public class AndroidCommon {
return javaCommon.getJavacOpts();
}
- public Artifact getClassJar() {
- return classJar;
- }
-
public Artifact getGenClassJar() {
return genClassJar;
}
@@ -882,6 +880,10 @@ public class AndroidCommon {
return jarsProducedForRuntime;
}
+ public Artifact getInstrumentedJar() {
+ return javaCommon.getJavaCompilationArtifacts().getInstrumentedJar();
+ }
+
public NestedSet<Artifact> getTransitiveNeverLinkLibraries() {
return transitiveNeverlinkLibraries;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
index 6ceafcc2a9..fd66a26dfc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java
@@ -125,6 +125,8 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
JavaCompilationHelper helper =
getJavaCompilationHelperWithDependencies(ruleContext, javaSemantics, javaCommon,
attributesBuilder);
+ Artifact instrumentationMetadata =
+ helper.createInstrumentationMetadata(classJar, javaArtifactsBuilder);
Artifact executable = ruleContext.createOutputArtifact(); // the artifact for the rule itself
NestedSetBuilder<Artifact> filesToBuildBuilder =
NestedSetBuilder.<Artifact>stableOrder().add(classJar).add(executable);
@@ -144,7 +146,7 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
javaSemantics,
helper,
executable,
- null,
+ instrumentationMetadata,
javaArtifactsBuilder,
attributesBuilder);
@@ -168,7 +170,11 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
helper.createOutputDepsProtoArtifact(classJar, javaArtifactsBuilder);
javaRuleOutputJarsProviderBuilder.setJdeps(outputDepsProtoArtifact);
helper.createCompileAction(
- classJar, manifestProtoOutput, genSourceJar, outputDepsProtoArtifact);
+ classJar,
+ manifestProtoOutput,
+ genSourceJar,
+ outputDepsProtoArtifact,
+ instrumentationMetadata);
helper.createSourceJarAction(srcJar, genSourceJar);
setUpJavaCommon(javaCommon, helper, javaArtifactsBuilder.build());
@@ -181,7 +187,6 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
getJvmFlags(ruleContext, testClass),
executable,
mainClass,
- "com.google.testing.junit.runner.GoogleTestRunner",
JavaCommon.getJavaBinSubstitution(ruleContext, launcher));
Artifact deployJar =
@@ -409,6 +414,13 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor
builder.addTargets(depsForRunfiles, RunfilesProvider.DEFAULT_RUNFILES);
builder.addTransitiveArtifacts(transitiveAarArtifacts);
+ if (ruleContext.getConfiguration().isCodeCoverageEnabled()) {
+ Artifact instrumentedJar = javaCommon.getJavaCompilationArtifacts().getInstrumentedJar();
+ if (instrumentedJar != null) {
+ builder.addArtifact(instrumentedJar);
+ }
+ }
+
builder.addArtifacts(javaCommon.getRuntimeClasspath());
// Add the JDK files if it comes from P4 (see java_stub_template.txt).
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ApkProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/ApkProvider.java
index 70676b701d..d265fd3160 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ApkProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ApkProvider.java
@@ -17,6 +17,7 @@ import com.google.auto.value.AutoValue;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import javax.annotation.Nullable;
/** A provider for targets that produce an apk file. */
@AutoValue
@@ -26,9 +27,10 @@ public abstract class ApkProvider implements TransitiveInfoProvider {
public static ApkProvider create(
Artifact apk,
Artifact unsignedApk,
+ @Nullable Artifact coverageMetdata,
Artifact mergedManifest,
Artifact keystore) {
- return new AutoValue_ApkProvider(apk, unsignedApk, mergedManifest, keystore);
+ return new AutoValue_ApkProvider(apk, unsignedApk, coverageMetdata, mergedManifest, keystore);
}
/** Returns the APK file built in the transitive closure. */
@@ -37,6 +39,10 @@ public abstract class ApkProvider implements TransitiveInfoProvider {
/** Returns the unsigned APK file built in the transitive closure. */
public abstract Artifact getUnsignedApk();
+ /** Returns the coverage metadata artifacts generated in the transitive closure. */
+ @Nullable
+ public abstract Artifact getCoverageMetadata();
+
/** Returns the merged manifest. */
public abstract Artifact getMergedManifest();