diff --git a/prelude/java/java_library.bzl b/prelude/java/java_library.bzl index 3af2e51edf5ee..520eabfc606da 100644 --- a/prelude/java/java_library.bzl +++ b/prelude/java/java_library.bzl @@ -33,7 +33,7 @@ load( "create_plugin_params", ) load("@prelude//java/utils:java_more_utils.bzl", "get_path_separator_for_exec_os") -load("@prelude//java/utils:java_utils.bzl", "build_bootclasspath", "declare_prefixed_name", "derive_javac", "get_abi_generation_mode", "get_class_to_source_map_info", "get_default_info", "get_java_version_attributes", "to_java_version") +load("@prelude//java/utils:java_utils.bzl", "declare_prefixed_name", "derive_javac", "get_abi_generation_mode", "get_class_to_source_map_info", "get_default_info", "get_java_version_attributes", "to_java_version") load("@prelude//jvm:cd_jar_creator_util.bzl", "postprocess_jar") load("@prelude//jvm:nullsafe.bzl", "get_nullsafe_info") load("@prelude//linking:shared_libraries.bzl", "SharedLibraryInfo") @@ -135,6 +135,16 @@ def _build_classpath(actions: AnalysisActions, deps: list[Dependency], additiona return None +def _build_bootclasspath(bootclasspath_entries: list[Artifact], source_level: int, java_toolchain: JavaToolchainInfo) -> list[Artifact]: + bootclasspath_list = [] + if source_level in [8]: + if bootclasspath_entries: + bootclasspath_list = bootclasspath_entries + elif source_level == 8: + expect(java_toolchain.bootclasspath_8, "Must specify bootclasspath for source level 8") + bootclasspath_list = java_toolchain.bootclasspath_8 + return bootclasspath_list + def _append_javac_params( ctx: AnalysisContext, actions_identifier: [str, None], @@ -176,7 +186,7 @@ def _append_javac_params( javac_args.add("-target") javac_args.add(str(target_level)) - bootclasspath_list = build_bootclasspath(bootclasspath_entries, source_level, java_toolchain) + bootclasspath_list = _build_bootclasspath(bootclasspath_entries, source_level, java_toolchain) if bootclasspath_list: cmd.add(_process_classpath( ctx.actions, diff --git a/prelude/java/javacd_jar_creator.bzl b/prelude/java/javacd_jar_creator.bzl index 6388b0eda9ceb..27676362d90ad 100644 --- a/prelude/java/javacd_jar_creator.bzl +++ b/prelude/java/javacd_jar_creator.bzl @@ -29,12 +29,12 @@ load( "@prelude//java/plugins:java_plugin.bzl", "PluginParams", # @unused Used as a type ) -load("@prelude//java/utils:java_utils.bzl", "build_bootclasspath") load( "@prelude//jvm:cd_jar_creator_util.bzl", "BuildMode", "OutputPaths", "TargetType", + "add_java_7_8_bootclasspath", "base_qualified_name", "declare_prefixed_output", "define_output_paths", @@ -82,7 +82,7 @@ def create_jar_artifact_javacd( actions = ctx.actions resources_map = get_resources_map(java_toolchain, label.package, resources, resources_root) - bootclasspath_entries = build_bootclasspath(bootclasspath_entries, source_level, java_toolchain) + bootclasspath_entries = add_java_7_8_bootclasspath(target_level, bootclasspath_entries, java_toolchain) abi_generation_mode = get_abi_generation_mode(abi_generation_mode, java_toolchain, srcs, annotation_processor_properties) should_create_class_abi = ( diff --git a/prelude/java/utils/java_utils.bzl b/prelude/java/utils/java_utils.bzl index 5e420f74d7051..476b685b3a8f2 100644 --- a/prelude/java/utils/java_utils.bzl +++ b/prelude/java/utils/java_utils.bzl @@ -157,14 +157,3 @@ def get_classpath_subtarget(actions: AnalysisActions, packaging_info: JavaPackag proj = packaging_info.packaging_deps.project_as_args("full_jar_args") output = actions.write("classpath", proj) return {"classpath": [DefaultInfo(output, other_outputs = [proj])]} - -def build_bootclasspath(bootclasspath_entries: list[Artifact], source_level: int, java_toolchain: JavaToolchainInfo) -> list[Artifact]: - bootclasspath_list = [] - if source_level in [7, 8]: - # bootclasspath_7 is deprecated. - if bootclasspath_entries: - bootclasspath_list = bootclasspath_entries - elif source_level == 8: - expect(java_toolchain.bootclasspath_8, "Must specify bootclasspath for source level 8") - bootclasspath_list = java_toolchain.bootclasspath_8 - return bootclasspath_list diff --git a/prelude/jvm/cd_jar_creator_util.bzl b/prelude/jvm/cd_jar_creator_util.bzl index 5d41e3e0e395b..1e2107ff79fe7 100644 --- a/prelude/jvm/cd_jar_creator_util.bzl +++ b/prelude/jvm/cd_jar_creator_util.bzl @@ -22,6 +22,12 @@ load( load("@prelude//java/utils:java_utils.bzl", "declare_prefixed_name") load("@prelude//utils:expect.bzl", "expect") +def add_java_7_8_bootclasspath(target_level: int, bootclasspath_entries: list[Artifact], java_toolchain: JavaToolchainInfo) -> list[Artifact]: + # bootclasspath_7 is deprecated. + if target_level == 8: + return bootclasspath_entries + java_toolchain.bootclasspath_8 + return bootclasspath_entries + def declare_prefixed_output(actions: AnalysisActions, prefix: [str, None], output: str, dir: bool = False) -> Artifact: return actions.declare_output(declare_prefixed_name(output, prefix), dir = dir)