diff options
author | 2017-06-01 17:54:14 +0200 | |
---|---|---|
committer | 2017-06-01 18:38:08 +0200 | |
commit | 1a16736002e466de7975e5461a8898e270b5a3b1 (patch) | |
tree | 7a00aab9072c613d88a1edbd6d2b78624e1ec550 /src | |
parent | 7bca668c24e33ec602748718b717312200d80d10 (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.java | 19 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java | 1 |
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'])"); } |