From e01e6d25e25ec5e0eed301cf4421700d7d00c1e0 Mon Sep 17 00:00:00 2001 From: Tomasz Pasternak Date: Thu, 26 Sep 2024 09:45:32 +0200 Subject: [PATCH] chore: Aspect templating - 1/n --- aspect/get_java_provider.bzl | 13 +++++++++++++ aspect/intellij_info_impl.bzl | 23 +++++------------------ 2 files changed, 18 insertions(+), 18 deletions(-) create mode 100644 aspect/get_java_provider.bzl diff --git a/aspect/get_java_provider.bzl b/aspect/get_java_provider.bzl new file mode 100644 index 00000000000..1716ac6a7f5 --- /dev/null +++ b/aspect/get_java_provider.bzl @@ -0,0 +1,13 @@ +def get_java_provider(target): + """Find a provider exposing java compilation/outputs data.""" + + # Check for kt providers before JavaInfo. e.g. kt targets have + # JavaInfo, but their data lives in the "kt" provider and not JavaInfo. + # See https://github.com/bazelbuild/intellij/pull/1202 + if hasattr(target, "kt") and hasattr(target.kt, "outputs"): + return target.kt + if JavaInfo in target: + return target[JavaInfo] + if hasattr(java_common, "JavaPluginInfo") and java_common.JavaPluginInfo in target: + return target[java_common.JavaPluginInfo] + return None diff --git a/aspect/intellij_info_impl.bzl b/aspect/intellij_info_impl.bzl index f7d5e5b25d6..a826d75b7cd 100644 --- a/aspect/intellij_info_impl.bzl +++ b/aspect/intellij_info_impl.bzl @@ -1,5 +1,9 @@ """Implementation of IntelliJ-specific information collecting aspect.""" +load( + "@bazel_tools//tools/build_defs/cc:action_names.bzl", + "ACTION_NAMES", +) load( ":artifacts.bzl", "artifact_location", @@ -9,14 +13,11 @@ load( "struct_omit_none", "to_artifact_location", ) +load(":get_java_provider.bzl", "get_java_provider") load( ":make_variables.bzl", "expand_make_variables", ) -load( - "@bazel_tools//tools/build_defs/cc:action_names.bzl", - "ACTION_NAMES", -) IntelliJInfo = provider( doc = "Collected infromation about the targets visited by the aspect.", @@ -586,20 +587,6 @@ def collect_c_toolchain_info(target, ctx, semantics, ide_info, ide_info_file, ou update_sync_output_groups(output_groups, "intellij-info-cpp", depset([ide_info_file])) return True -def get_java_provider(target): - """Find a provider exposing java compilation/outputs data.""" - - # Check for kt providers before JavaInfo. e.g. kt targets have - # JavaInfo, but their data lives in the "kt" provider and not JavaInfo. - # See https://github.com/bazelbuild/intellij/pull/1202 - if hasattr(target, "kt") and hasattr(target.kt, "outputs"): - return target.kt - if JavaInfo in target: - return target[JavaInfo] - if hasattr(java_common, "JavaPluginInfo") and java_common.JavaPluginInfo in target: - return target[java_common.JavaPluginInfo] - return None - def _collect_generated_files(java): """Collects generated files from a Java target""" if hasattr(java, "java_outputs"):