aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
authorGravatar dannark <dannark@google.com>2018-02-22 22:15:42 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-22 22:17:44 -0800
commit32243cbe980ebea1e09d60f0cccbb27cc0d40175 (patch)
treeed29028e1b33b7221395844f7e684adce32113ce /src/main
parent040cd6662e51e9b6bc81df99b3915bc7b385ae45 (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')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidCommon.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBaseRule.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/LocalResourceContainer.java14
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");
}
/**