diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSdkProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSdkProvider.java index 68bbecf3ebb27c..dc402368d1cb0e 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSdkProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSdkProvider.java @@ -15,11 +15,8 @@ import static com.google.devtools.build.lib.rules.android.AndroidStarlarkData.fromNoneable; -import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.FilesToRunProvider; -import com.google.devtools.build.lib.analysis.PlatformConfiguration; -import com.google.devtools.build.lib.analysis.ResolvedToolchainContext; import com.google.devtools.build.lib.analysis.RuleContext; import com.google.devtools.build.lib.analysis.TransitiveInfoCollection; import com.google.devtools.build.lib.analysis.config.BuildConfigurationValue; @@ -43,8 +40,6 @@ public final class AndroidSdkProvider extends NativeInfo public static final String ANDROID_SDK_TOOLCHAIN_TYPE_ATTRIBUTE_NAME = "$android_sdk_toolchain_type"; - public static final String ANDROID_SDK_DUMMY_TOOLCHAIN_ATTRIBUTE_NAME = - "$android_sdk_dummy_toolchains"; public static final Provider PROVIDER = new Provider(); @@ -162,12 +157,6 @@ public static AndroidSdkProvider fromRuleContext( return null; } - ResolvedToolchainContext toolchainContext = ruleContext.getToolchainContext(); - if (usingDummyToolchain(ruleContext, configuration, toolchainContext)) { - // The above method will have already shown an error. - return null; - } - if (toolchainType == null) { ruleContext.ruleError( String.format( @@ -179,6 +168,7 @@ public static AndroidSdkProvider fromRuleContext( ANDROID_SDK_TOOLCHAIN_TYPE_ATTRIBUTE_NAME)); return null; } + ToolchainInfo info = ruleContext.getToolchainInfo(toolchainType); if (info == null) { ruleContext.ruleError( @@ -189,8 +179,10 @@ public static AndroidSdkProvider fromRuleContext( ruleContext.getRuleClassNameForLogging(), ruleContext.getLabel(), toolchainType)); return null; } + + AndroidSdkProvider androidSdkProvider; try { - return (AndroidSdkProvider) info.getValue("android_sdk_info"); + androidSdkProvider = (AndroidSdkProvider) info.getValue("android_sdk_info"); } catch (EvalException e) { ruleContext.ruleError( String.format( @@ -198,39 +190,27 @@ public static AndroidSdkProvider fromRuleContext( ruleContext.getLabel(), e.getMessage())); return null; } + + if (usingDummyToolchain(ruleContext, androidSdkProvider)) { + // The above method will have already shown an error. + return null; + } + + return androidSdkProvider; } private static boolean usingDummyToolchain( - RuleContext ruleContext, - BuildConfigurationValue configuration, - ResolvedToolchainContext toolchainContext) { - Type