|  | # | 
|  | # Description: Builds ijwb | 
|  | # | 
|  |  | 
|  | licenses(["notice"])  # Apache 2.0 | 
|  |  | 
|  | load( | 
|  | "//build_defs:build_defs.bzl", | 
|  | "intellij_plugin", | 
|  | "merged_plugin_xml", | 
|  | "plugin_deploy_zip", | 
|  | "repackaged_files", | 
|  | "stamped_plugin_xml", | 
|  | ) | 
|  | load( | 
|  | "//build_defs:intellij_plugin_debug_target.bzl", | 
|  | "intellij_plugin_debug_target", | 
|  | ) | 
|  | load("//:version.bzl", "VERSION") | 
|  | load( | 
|  | "//testing:test_defs.bzl", | 
|  | "intellij_integration_test_suite", | 
|  | "intellij_unit_test_suite", | 
|  | ) | 
|  |  | 
|  | merged_plugin_xml( | 
|  | name = "merged_plugin_xml_common", | 
|  | srcs = [ | 
|  | "src/META-INF/ijwb.xml", | 
|  | "//base:plugin_xml", | 
|  | "//golang:plugin_xml", | 
|  | "//java:plugin_xml", | 
|  | "//python:plugin_xml", | 
|  | "//scala:plugin_xml", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | merged_plugin_xml( | 
|  | name = "merged_plugin_xml", | 
|  | srcs = [ | 
|  | "src/META-INF/ijwb_bazel.xml", | 
|  | ":merged_plugin_xml_common", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | stamped_plugin_xml( | 
|  | name = "stamped_plugin_xml", | 
|  | changelog_file = "//:changelog", | 
|  | include_product_code_in_stamp = True, | 
|  | plugin_id = "com.google.idea.bazel.ijwb", | 
|  | plugin_name = "Bazel", | 
|  | plugin_xml = ":merged_plugin_xml", | 
|  | stamp_since_build = True, | 
|  | version = VERSION, | 
|  | ) | 
|  |  | 
|  | java_library( | 
|  | name = "ijwb_lib", | 
|  | srcs = glob(["src/**/*.java"]), | 
|  | exports = [ | 
|  | "//plugin_dev", | 
|  | ], | 
|  | runtime_deps = [ | 
|  | "//golang", | 
|  | "//python", | 
|  | "//scala", | 
|  | "//terminal", | 
|  | ], | 
|  | deps = [ | 
|  | "//base", | 
|  | "//common/experiments", | 
|  | "//intellij_platform_sdk:plugin_api", | 
|  | "//java", | 
|  | "//sdkcompat", | 
|  | "@jsr305_annotations//jar", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | OPTIONAL_PLUGIN_XMLS = [ | 
|  | "//golang:optional_xml", | 
|  | "//java:optional_xml", | 
|  | "//plugin_dev:optional_xml", | 
|  | "//python:optional_xml", | 
|  | "//scala:optional_xml", | 
|  | "//terminal:optional_xml", | 
|  | ] | 
|  |  | 
|  | intellij_plugin( | 
|  | name = "ijwb_bazel", | 
|  | optional_plugin_xmls = OPTIONAL_PLUGIN_XMLS, | 
|  | plugin_xml = ":stamped_plugin_xml", | 
|  | deps = [ | 
|  | ":ijwb_lib", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | repackaged_files( | 
|  | name = "plugin_jar", | 
|  | srcs = [":ijwb_bazel"], | 
|  | prefix = "ijwb/lib", | 
|  | ) | 
|  |  | 
|  | repackaged_files( | 
|  | name = "aspect_directory", | 
|  | srcs = ["//aspect:aspect_files"], | 
|  | prefix = "ijwb/aspect", | 
|  | ) | 
|  |  | 
|  | intellij_plugin_debug_target( | 
|  | name = "ijwb_bazel_dev", | 
|  | deps = [ | 
|  | ":aspect_directory", | 
|  | ":plugin_jar", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | plugin_deploy_zip( | 
|  | name = "ijwb_bazel_zip", | 
|  | srcs = [ | 
|  | ":aspect_directory", | 
|  | ":plugin_jar", | 
|  | ], | 
|  | zip_filename = "ijwb_bazel.zip", | 
|  | ) | 
|  |  | 
|  | intellij_unit_test_suite( | 
|  | name = "unit_tests", | 
|  | srcs = glob(["tests/unittests/**/*.java"]), | 
|  | test_package_root = "com.google.idea.blaze.ijwb", | 
|  | deps = [ | 
|  | ":ijwb_lib", | 
|  | "//base", | 
|  | "//base:unit_test_utils", | 
|  | "//common/experiments", | 
|  | "//common/experiments:unit_test_utils", | 
|  | "//intellij_platform_sdk:plugin_api_for_tests", | 
|  | "@jsr305_annotations//jar", | 
|  | "@junit//jar", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | intellij_integration_test_suite( | 
|  | name = "integration_tests", | 
|  | srcs = glob(["tests/integrationtests/**/*.java"]), | 
|  | required_plugins = "com.google.idea.bazel.ijwb", | 
|  | test_package_root = "com.google.idea.blaze.ijwb", | 
|  | runtime_deps = [ | 
|  | ":ijwb_bazel", | 
|  | ], | 
|  | deps = [ | 
|  | ":ijwb_lib", | 
|  | "//base", | 
|  | "//base:integration_test_utils", | 
|  | "//base:unit_test_utils", | 
|  | "//intellij_platform_sdk:plugin_api_for_tests", | 
|  | "@jsr305_annotations//jar", | 
|  | "@junit//jar", | 
|  | ], | 
|  | ) |