aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar ajmichael <ajmichael@google.com>2017-06-01 17:54:14 +0200
committerGravatar László Csomor <laszlocsomor@google.com>2017-06-01 18:38:08 +0200
commit1a16736002e466de7975e5461a8898e270b5a3b1 (patch)
tree7a00aab9072c613d88a1edbd6d2b78624e1ec550 /src
parent7bca668c24e33ec602748718b717312200d80d10 (diff)
Make android_binary.manifest mandatory.
It was already effectively mandatory. The build would fail if you did not have the manifest attribute set, but this provides a better error message. Fixes https://github.com/bazelbuild/bazel/issues/3090. RELNOTES: None PiperOrigin-RevId: 157719024
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java19
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java1
2 files changed, 13 insertions, 7 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java
index a5a4fe57d3..c11917551f 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/android/BazelAndroidBinaryRule.java
@@ -31,6 +31,7 @@ import com.google.devtools.build.lib.rules.config.ConfigFeatureFlagTransitionFac
import com.google.devtools.build.lib.rules.cpp.CppConfiguration;
import com.google.devtools.build.lib.rules.cpp.CppRuleClasses;
import com.google.devtools.build.lib.rules.java.JavaConfiguration;
+import com.google.devtools.build.lib.util.FileType;
/**
* Rule class definition for {@code android_binary}.
@@ -42,13 +43,17 @@ public class BazelAndroidBinaryRule implements RuleDefinition {
return builder
.requiresConfigurationFragments(
AndroidConfiguration.class, JavaConfiguration.class, CppConfiguration.class)
- .add(attr("$debug_keystore", BuildType.LABEL)
- .cfg(HOST)
- .singleArtifact()
- .value(environment.getToolsLabel("//tools/android:debug_keystore")))
- .add(attr(":cc_toolchain_split", BuildType.LABEL)
- .cfg(AndroidRuleClasses.ANDROID_SPLIT_TRANSITION)
- .value(CppRuleClasses.CC_TOOLCHAIN))
+ .override(
+ attr("manifest", BuildType.LABEL).mandatory().allowedFileTypes(FileType.of(".xml")))
+ .add(
+ attr("$debug_keystore", BuildType.LABEL)
+ .cfg(HOST)
+ .singleArtifact()
+ .value(environment.getToolsLabel("//tools/android:debug_keystore")))
+ .add(
+ attr(":cc_toolchain_split", BuildType.LABEL)
+ .cfg(AndroidRuleClasses.ANDROID_SPLIT_TRANSITION)
+ .value(CppRuleClasses.CC_TOOLCHAIN))
/* <!-- #BLAZE_RULE(android_binary).IMPLICIT_OUTPUTS -->
<ul>
<li><code><var>name</var>.apk</code>: An Android application
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
index d520a7066a..58086d46da 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
@@ -97,6 +97,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
"android_binary(",
" name = 'a',",
" srcs = ['A.java'],",
+ " manifest = 'AndroidManifest.xml',",
" main_dex_proguard_specs = ['foo'])");
}