diff options
author | 2018-02-22 22:15:42 -0800 | |
---|---|---|
committer | 2018-02-22 22:17:44 -0800 | |
commit | 32243cbe980ebea1e09d60f0cccbb27cc0d40175 (patch) | |
tree | ed29028e1b33b7221395844f7e684adce32113ce /src/main | |
parent | 040cd6662e51e9b6bc81df99b3915bc7b385ae45 (diff) |
Remove top level resources and assets from android_local_test.
android_local_test should not allow specifying resources and assets on the rule itself. If a user wants to add test specific resources/assets then they should wrap them in an android_library and add it to the deps of the android_local_test.
RELNOTES: None
PiperOrigin-RevId: 186724709
Diffstat (limited to 'src/main')
3 files changed, 18 insertions, 13 deletions
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 7d2bb6a7c7..871e36263c 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 @@ -792,8 +792,11 @@ public class AndroidCommon { } public static PathFragment getAssetDir(RuleContext ruleContext) { - return PathFragment.create( - ruleContext.attributes().get(ResourceType.ASSETS.getAttribute() + "_dir", Type.STRING)); + if (ruleContext.attributes().has(ResourceType.ASSETS.getAttribute() + "_dir")) { + return PathFragment.create( + ruleContext.attributes().get(ResourceType.ASSETS.getAttribute() + "_dir", Type.STRING)); + } + return PathFragment.EMPTY_FRAGMENT; } /** diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java index 068b5de552..fa6074ea33 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java @@ -16,7 +16,6 @@ package com.google.devtools.build.lib.rules.android; import static com.google.devtools.build.lib.packages.Attribute.attr; import static com.google.devtools.build.lib.packages.BuildType.LABEL; import static com.google.devtools.build.lib.packages.BuildType.LABEL_KEYED_STRING_DICT; -import static com.google.devtools.build.lib.packages.BuildType.LABEL_LIST; import static com.google.devtools.build.lib.rules.android.AndroidRuleClasses.getAndroidSdkLabel; import static com.google.devtools.build.lib.syntax.Type.STRING; import static com.google.devtools.build.lib.syntax.Type.STRING_DICT; @@ -136,15 +135,6 @@ public class AndroidLocalTestBaseRule implements RuleDefinition { you will likely need to use <code>test_class</code> as well. <!-- #END_BLAZE_RULE.ATTRIBUTE --> */ .add(attr("custom_package", STRING)) - .add( - attr("resource_files", LABEL_LIST) - .allowedFileTypes(FileTypeSet.ANY_FILE) - .undocumented("soon to be unsupported behavior")) - .add(attr("assets_dir", STRING).undocumented("soon to be unsupported behavior")) - .add( - attr("assets", LABEL_LIST) - .allowedFileTypes(FileTypeSet.ANY_FILE) - .undocumented("soon to be unsupported behavior")) .build(); } diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/LocalResourceContainer.java b/src/main/java/com/google/devtools/build/lib/rules/android/LocalResourceContainer.java index e1c0a4b1e4..68806fcf93 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/LocalResourceContainer.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/LocalResourceContainer.java @@ -132,6 +132,12 @@ public final class LocalResourceContainer { public static LocalResourceContainer forAssetsAndResources( RuleContext ruleContext, String assetsAttr, PathFragment assetsDir, String resourcesAttr) throws RuleErrorException { + + if (!hasLocalResourcesAttributes(ruleContext)) { + return new LocalResourceContainer( + ImmutableList.of(), ImmutableList.of(), ImmutableList.of(), ImmutableList.of()); + } + ImmutableList.Builder<Artifact> assets = ImmutableList.builder(); ImmutableList.Builder<PathFragment> assetRoots = ImmutableList.builder(); @@ -158,13 +164,19 @@ public final class LocalResourceContainer { } ImmutableList<Artifact> resources = - getResources(ruleContext.getPrerequisites(resourcesAttr, Mode.TARGET, FileProvider.class)); + getResources( + ruleContext.getPrerequisites(resourcesAttr, Mode.TARGET, FileProvider.class)); return new LocalResourceContainer( resources, getResourceRoots(ruleContext, resources, resourcesAttr), assets.build(), assetRoots.build()); + + } + + private static boolean hasLocalResourcesAttributes(RuleContext ruleContext) { + return ruleContext.attributes().has("assets") || ruleContext.attributes().has("resource_files"); } /** |