aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidToolsDefaultsJar.java
diff options
context:
space:
mode:
authorGravatar ajmichael <ajmichael@google.com>2017-12-18 11:52:18 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-18 11:54:13 -0800
commitefc86c5d140b277a341128950021c59c85f2304f (patch)
tree7470146106430e924a8144ca3fbaad2797c0dd87 /src/main/java/com/google/devtools/build/lib/rules/android/AndroidToolsDefaultsJar.java
parent0accd45176ccfbd2487d69b780bb7b8dd1f24b2b (diff)
Remove support for --android_sdk=<filegroup>.
RELNOTES[INC]: --android_sdk no longer supports filegroup targets. PiperOrigin-RevId: 179451275
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidToolsDefaultsJar.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidToolsDefaultsJar.java41
1 files changed, 3 insertions, 38 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidToolsDefaultsJar.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidToolsDefaultsJar.java
index 817e0a2bc9..368c37798b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidToolsDefaultsJar.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidToolsDefaultsJar.java
@@ -15,17 +15,12 @@ package com.google.devtools.build.lib.rules.android;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
-import com.google.devtools.build.lib.analysis.FileProvider;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetFactory;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.RunfilesProvider;
-import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
-import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTarget.Mode;
-import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
-import java.util.regex.Pattern;
/**
* Implementation for the {@code android_tools_defaults_jar} rule.
@@ -39,8 +34,6 @@ import java.util.regex.Pattern;
* from {@link AndroidConfiguration.Options#getDefaultsRules()}.
*/
public class AndroidToolsDefaultsJar implements RuleConfiguredTargetFactory {
- private static final Pattern ANDROID_JAR_BASENAME_RX =
- Pattern.compile("android[a-zA-Z0-9_]*\\.jar$");
@Override
public ConfiguredTarget create(RuleContext ruleContext)
@@ -53,39 +46,11 @@ public class AndroidToolsDefaultsJar implements RuleConfiguredTargetFactory {
return null;
}
- TransitiveInfoCollection androidSdk = ruleContext.getPrerequisite(":android_sdk", Mode.TARGET);
- AndroidSdkProvider sdkProvider = androidSdk.getProvider(AndroidSdkProvider.class);
- Artifact androidJar =
- sdkProvider != null
- ? sdkProvider.getAndroidJar()
- : findAndroidJar(androidSdk.getProvider(FileProvider.class).getFilesToBuild());
-
- NestedSet<Artifact> filesToBuild =
- androidJar == null
- ? NestedSetBuilder.<Artifact>emptySet(Order.STABLE_ORDER)
- : NestedSetBuilder.create(Order.STABLE_ORDER, androidJar);
+ Artifact androidJar = AndroidSdkProvider.fromRuleContext(ruleContext).getAndroidJar();
return new RuleConfiguredTargetBuilder(ruleContext)
- .add(RunfilesProvider.class, RunfilesProvider.EMPTY)
- .setFilesToBuild(filesToBuild)
+ .addProvider(RunfilesProvider.class, RunfilesProvider.EMPTY)
+ .setFilesToBuild(NestedSetBuilder.create(Order.STABLE_ORDER, androidJar))
.build();
}
-
- private static Artifact findAndroidJar(Iterable<Artifact> fullSdk) {
- // We need to do this by sifting through all the files in the Android SDK because we need to
- // handle the case when --android_sdk points to a plain filegroup.
- //
- // We can't avoid adding an android_tools_defaults_jar rule to the defaults package when this is
- // the case, because the defaults package is constructed very early and it's not possible to get
- // information about the rule class of the target pointed to by --android_sdk earlier, and it's
- // doubly impossible to do redirect chasing then.
- for (Artifact artifact : fullSdk) {
-
- if (ANDROID_JAR_BASENAME_RX.matcher(artifact.getExecPath().getBaseName()).matches()) {
- return artifact;
- }
- }
-
- return null;
- }
}