diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
6 files changed, 27 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 dd650e04a6..0f52356e57 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 @@ -99,6 +99,9 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { getTransitiveResourceContainers(ruleContext, ImmutableList.of("resources", "deps")), javaCommon, androidCommon, javaSemantics, androidSemantics, tools, ImmutableList.<String>of("deps")); + if (builder == null) { + return null; + } return builder.build(); } catch (RuleConfigurationException e) { Preconditions.checkArgument(ruleContext.hasErrors(), @@ -256,6 +259,9 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { JavaTargetAttributes resourceClasses = androidCommon.init( javaSemantics, androidSemantics, tools, resourceApk, AndroidIdlProvider.EMPTY, ruleContext.getConfiguration().isCodeCoverageEnabled(), true); + if (resourceClasses == null) { + return null; + } Artifact deployJar = createDeployJar(ruleContext, javaSemantics, androidCommon, resourceClasses, ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_BINARY_DEPLOY_JAR)); 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 f3f047e24e..9826c2ec05 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 @@ -330,6 +330,9 @@ public class AndroidCommon { } jackCompilationHelper = initJack(helper.getAttributes(), javaSemantics); + if (jackCompilationHelper == null) { + return null; + } initJava( helper, artifactsBuilder, collectJavaCompilationArgs, resourceApk.getResourceJavaSrcJar()); 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 9e5559b78b..af4e4fa794 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 @@ -97,8 +97,10 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory { false, null /* proguardCfgOut */); - androidCommon.init(javaSemantics, androidSemantics, tools, - resourceApk, transitiveIdlImportData, false, true); + if (androidCommon.init(javaSemantics, androidSemantics, tools, + resourceApk, transitiveIdlImportData, false, true) == null) { + return null; + } Artifact classesJar = mergeJarsFromSrcs(ruleContext, ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_LIBRARY_CLASS_JAR)); @@ -145,9 +147,10 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory { JavaCommon javaCommon = new JavaCommon(ruleContext, javaSemantics); AndroidCommon androidCommon = new AndroidCommon(ruleContext, javaCommon); ResourceApk resourceApk = ResourceApk.fromTransitiveResources(transitiveResources); - androidCommon.init(javaSemantics, androidSemantics, tools, - resourceApk, transitiveIdlImportData, false, true); - + if (androidCommon.init(javaSemantics, androidSemantics, tools, + resourceApk, transitiveIdlImportData, false, true) == null) { + return null; + } RuleConfiguredTargetBuilder targetBuilder = androidCommon.addTransitiveInfoProviders( new RuleConfiguredTargetBuilder(ruleContext), tools); diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java index 103dcc4bc6..9f719402c1 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidRuleClasses.java @@ -551,6 +551,7 @@ public final class AndroidRuleClasses { .value(env.getLabel("//tools/android/jack:resource_extractor"))) .add(attr("$android_jack", LABEL) .cfg(HOST) + .singleArtifact() .value(env.getLabel("//tools/android/jack:android_jack"))) .build(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/JackAspect.java b/src/main/java/com/google/devtools/build/lib/rules/android/JackAspect.java index 236ce567d7..61f9fb5165 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/JackAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/JackAspect.java @@ -100,6 +100,9 @@ public final class JackAspect implements ConfiguredAspectFactory { .addDeps(getPotentialDependency(ruleContext, "deps")) .addRuntimeDeps(getPotentialDependency(ruleContext, "runtime_deps")) .build(); + if (jackHelper == null) { + return null; + } JackLibraryProvider result = JavaCommon.isNeverLink(ruleContext) diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/JackCompilationHelper.java b/src/main/java/com/google/devtools/build/lib/rules/android/JackCompilationHelper.java index f0ff9554d8..247a37ffeb 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/JackCompilationHelper.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/JackCompilationHelper.java @@ -808,13 +808,13 @@ public final class JackCompilationHelper { .getConfiguration() .getFragment(AndroidConfiguration.class) .isJackSanityChecked(); - FilesToRunProvider jackBinary = - Preconditions.checkNotNull(ruleContext.getExecutablePrerequisite("$jack", Mode.HOST)); - FilesToRunProvider jillBinary = - Preconditions.checkNotNull(ruleContext.getExecutablePrerequisite("$jill", Mode.HOST)); + FilesToRunProvider jackBinary = ruleContext.getExecutablePrerequisite("$jack", Mode.HOST); + FilesToRunProvider jillBinary = ruleContext.getExecutablePrerequisite("$jill", Mode.HOST); FilesToRunProvider resourceExtractorBinary = - Preconditions.checkNotNull( - ruleContext.getExecutablePrerequisite("$resource_extractor", Mode.HOST)); + ruleContext.getExecutablePrerequisite("$resource_extractor", Mode.HOST); + if (ruleContext.hasErrors()) { + return null; + } return new JackCompilationHelper( Preconditions.checkNotNull(ruleContext), |