From efc86c5d140b277a341128950021c59c85f2304f Mon Sep 17 00:00:00 2001 From: ajmichael Date: Mon, 18 Dec 2017 11:52:18 -0800 Subject: Remove support for --android_sdk=. RELNOTES[INC]: --android_sdk no longer supports filegroup targets. PiperOrigin-RevId: 179451275 --- .../lib/rules/android/AndroidToolsDefaultsJar.java | 41 ++-------------------- 1 file changed, 3 insertions(+), 38 deletions(-) (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidToolsDefaultsJar.java') 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 filesToBuild = - androidJar == null - ? NestedSetBuilder.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 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; - } } -- cgit v1.2.3