From b93027f46aef3e7a5614b4f22aa8cb7a4e37dd71 Mon Sep 17 00:00:00 2001 From: Googler Date: Fri, 26 Jan 2024 16:47:02 -0800 Subject: [PATCH] Disable generated src jar collection by experiment PiperOrigin-RevId: 601900893 --- aspect/build_dependencies.bzl | 16 +++++++++++++++- .../blaze/base/qsync/BazelDependencyBuilder.java | 7 +++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/aspect/build_dependencies.bzl b/aspect/build_dependencies.bzl index 62882d9062b..58c0dbe7752 100644 --- a/aspect/build_dependencies.bzl +++ b/aspect/build_dependencies.bzl @@ -165,6 +165,7 @@ def _collect_dependencies_impl(target, ctx): ctx.attr.exclude, ctx.attr.always_build_rules, ctx.attr.generate_aidl_classes, + ctx.attr.use_generated_srcjars, test_mode = False, ) @@ -176,6 +177,7 @@ def _collect_all_dependencies_for_tests_impl(target, ctx): exclude = None, always_build_rules = ALWAYS_BUILD_RULES, generate_aidl_classes = None, + use_generated_srcjars = False, test_mode = True, ) @@ -217,6 +219,7 @@ def _collect_own_java_artifacts( dependency_infos, always_build_rules, generate_aidl_classes, + use_generated_srcjars, target_is_within_project_scope): rule = ctx.rule @@ -283,7 +286,7 @@ def _collect_own_java_artifacts( if JavaInfo in target: for java_output in target[JavaInfo].java_outputs: # Prefer source jars if they exist: - if java_output.generated_source_jar: + if use_generated_srcjars and java_output.generated_source_jar: own_gensrc_files.append(java_output.generated_source_jar) elif java_output.generated_class_jar: generated_class_jars.append(java_output.generated_class_jar) @@ -340,6 +343,7 @@ def _collect_own_and_dependency_java_artifacts( dependency_infos, always_build_rules, generate_aidl_classes, + use_generated_srcjars, target_is_within_project_scope): own_files = _collect_own_java_artifacts( target, @@ -347,6 +351,7 @@ def _collect_own_and_dependency_java_artifacts( dependency_infos, always_build_rules, generate_aidl_classes, + use_generated_srcjars, target_is_within_project_scope, ) @@ -443,6 +448,7 @@ def _collect_dependencies_core_impl( exclude, always_build_rules, generate_aidl_classes, + use_generated_srcjars, test_mode): dep_infos = _collect_java_dependencies_core_impl( target, @@ -451,6 +457,7 @@ def _collect_dependencies_core_impl( exclude, always_build_rules, generate_aidl_classes, + use_generated_srcjars, test_mode, ) if CcInfo in target: @@ -466,6 +473,7 @@ def _collect_java_dependencies_core_impl( exclude, always_build_rules, generate_aidl_classes, + use_generated_srcjars, test_mode): target_is_within_project_scope = _target_within_project_scope(str(target.label), include, exclude) and not test_mode dependency_infos = _get_followed_java_dependency_infos(ctx.rule) @@ -476,6 +484,7 @@ def _collect_java_dependencies_core_impl( dependency_infos, always_build_rules, generate_aidl_classes, + use_generated_srcjars, target_is_within_project_scope, ) @@ -487,6 +496,7 @@ def _collect_java_dependencies_core_impl( dependency_infos, always_build_rules, generate_aidl_classes, + use_generated_srcjars, target_is_within_project_scope = True, ) test_mode_own_files = struct( @@ -722,6 +732,10 @@ collect_dependencies = aspect( doc = "If True, generates classes for aidl files included as source for the project targets", default = False, ), + "use_generated_srcjars": attr.bool( + doc = "If True, collects generated source jars for a target instead of compiled jar", + default = False, + ), "_build_zip": attr.label( allow_files = True, cfg = "exec", diff --git a/base/src/com/google/idea/blaze/base/qsync/BazelDependencyBuilder.java b/base/src/com/google/idea/blaze/base/qsync/BazelDependencyBuilder.java index 1a442f1f441..4c9eeab2619 100644 --- a/base/src/com/google/idea/blaze/base/qsync/BazelDependencyBuilder.java +++ b/base/src/com/google/idea/blaze/base/qsync/BazelDependencyBuilder.java @@ -83,6 +83,9 @@ public class BazelDependencyBuilder implements DependencyBuilder { public static final BoolExperiment fetchArtifactInfoInParallel = new BoolExperiment("qsync.parallel.artifact.info.fetch", true); + public static final BoolExperiment buildGeneratedSrcJars = + new BoolExperiment("qsync.build.generated.src.jars", false); + /** * Logs message if the number of artifact info files fetched is greater than * FILE_NUMBER_LOG_THRESHOLD @@ -178,6 +181,10 @@ public OutputInfo build( .addBlazeFlags( String.format("--aspects_parameters=always_build_rules=%s", alwaysBuildParam)) .addBlazeFlags("--aspects_parameters=generate_aidl_classes=True") + .addBlazeFlags( + String.format( + "--aspects_parameters=use_generated_srcjars=%s", + buildGeneratedSrcJars.getValue() ? "True" : "False")) .addBlazeFlags("--noexperimental_run_validations") .addBlazeFlags("--keep_going"); outputGroups.stream()