From 9b39ccaa33069c9f5688bef477abcd75e4378f04 Mon Sep 17 00:00:00 2001 From: Ivo List Date: Thu, 7 Mar 2024 17:28:23 +0100 Subject: [PATCH] [7.1.0] Expose AndroidIdeInfo in android_common (#21607) Previously https://github.com/bazelbuild/bazel/commit/916c3f5a649926f07a8390893539b560646a192e exposed the provider on top-level to support IntelliJ aspects. Exposing it over android_common, makes it possible to detect its presence in Starlark code via `getattr(android_common, "AndroidIdeInfo")`. With this detection it's easier to support older Bazel versions. Without exposing it via android_common, detecting AndroidIdeInfo presence in Bazel world is only possible using a new dependency on @bazel_features in IntelliJ aspects. Fixes: https://github.com/bazelbuild/bazel/issues/21544 PiperOrigin-RevId: 613580552 Change-Id: I214024facbdc9ac7742bf98575101bd624d4a6a7 --- .../build/lib/rules/android/AndroidStarlarkCommon.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidStarlarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidStarlarkCommon.java index 387318381b52d2..36453bc82394f7 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidStarlarkCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidStarlarkCommon.java @@ -23,8 +23,10 @@ import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider; import com.google.devtools.build.lib.rules.java.JavaInfo; +import com.google.devtools.build.lib.starlarkbuildapi.android.AndroidIdeInfoProviderApi; import com.google.devtools.build.lib.starlarkbuildapi.android.AndroidSplitTransitionApi; import com.google.devtools.build.lib.starlarkbuildapi.android.AndroidStarlarkCommonApi; +import net.starlark.java.annot.StarlarkMethod; import net.starlark.java.eval.EvalException; import net.starlark.java.eval.Sequence; @@ -94,4 +96,9 @@ public void createDexMergerActions( Sequence.cast(dexopts, String.class, "dexopts"), dexmerger); } + + @StarlarkMethod(name = AndroidIdeInfoProviderApi.NAME, structField = true, documented = false) + public AndroidIdeInfoProvider.Provider getAndroidIdeInfoProvider() { + return AndroidIdeInfoProvider.PROVIDER; + } }