Minor fixes for starlark cc_binary. Fixed a typo where "expand" was used on the list instead of "extend". Added implementation for libraries collection from linking context. "pdb_file" output group key now uses depset of file as value instead of file. Also fixes HeadersCheckingMode parsing to take into account warnings. PiperOrigin-RevId: 415496062
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java index 5726980..f29aff5 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CcModule.java
@@ -2206,7 +2206,7 @@ .collect(ImmutableList.toImmutableList())) .setPropagateModuleMapToCompileAction(propagateModuleMapToCompileAction) .setCodeCoverageEnabled(codeCoverageEnabled) - .setHeadersCheckingMode(HeadersCheckingMode.valueOf(Ascii.toUpperCase(hdrsCheckingMode))); + .setHeadersCheckingMode(HeadersCheckingMode.getValue(hdrsCheckingMode)); ImmutableList<PathFragment> looseIncludeDirs = looseIncludes.stream().map(PathFragment::create).collect(ImmutableList.toImmutableList());
diff --git a/src/main/starlark/builtins_bzl/common/cc/cc_binary.bzl b/src/main/starlark/builtins_bzl/common/cc/cc_binary.bzl index 5bd8128..6bce509 100644 --- a/src/main/starlark/builtins_bzl/common/cc/cc_binary.bzl +++ b/src/main/starlark/builtins_bzl/common/cc/cc_binary.bzl
@@ -795,10 +795,10 @@ if is_static_mode or (library.dynamic_library == None and library.interface_library == None): if library.pic_static_library != None: if library.pic_objects != None: - object_files.expand(library.pic_objects) + object_files.extend(library.pic_objects) elif library.static_library != None: if library.objects != None: - object_files.expand(library.objects) + object_files.extend(library.objects) def_parser = None # TODO(b/198254254): def_parser @@ -882,7 +882,11 @@ # all the dynamic libraries we need at runtime. Then copy these libraries next to the binary. copied_runtime_dynamic_libraries = None if cc_common.is_enabled(feature_configuration = feature_configuration, feature_name = "copy_dynamic_libraries_to_binary"): - copied_runtime_dynamic_libraries = _create_dynamic_libraries_copy_actions(ctx, _get_dynamic_libraries_for_runtime(is_static_mode, deps_cc_linking_context.libraries.to_list())) + linker_inputs = deps_cc_linking_context.linker_inputs.to_list() + libraries = [] + for linker_input in linker_inputs: + libraries.extend(linker_input.libraries) + copied_runtime_dynamic_libraries = _create_dynamic_libraries_copy_actions(ctx, _get_dynamic_libraries_for_runtime(is_static_mode, libraries)) # TODO(b/198254254)(bazel-team): Do we need to put original shared libraries (along with # mangled symlinks) into the RunfilesSupport object? It does not seem @@ -927,7 +931,7 @@ # If PDB file is generated by the link action, we add it to pdb_file output group if pdb_file != None: - output_groups["pdb_file"] = pdb_file + output_groups["pdb_file"] = depset([pdb_file]) if generated_def_file != None: output_groups["def_file"] = generated_def_file
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/mock/cc_toolchain_config.bzl b/src/test/java/com/google/devtools/build/lib/analysis/mock/cc_toolchain_config.bzl index 08a4bc0..5259ca7 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/mock/cc_toolchain_config.bzl +++ b/src/test/java/com/google/devtools/build/lib/analysis/mock/cc_toolchain_config.bzl
@@ -32,6 +32,7 @@ load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "ACTION_NAMES") _FEATURE_NAMES = struct( + generate_pdb_file = "generate_pdb_file", no_legacy_features = "no_legacy_features", do_not_split_linking_cmdline = "do_not_split_linking_cmdline", supports_dynamic_linker = "supports_dynamic_linker", @@ -766,6 +767,10 @@ name = _FEATURE_NAMES.copy_dynamic_libraries_to_binary, ) +_generate_pdb_file_feature = feature( + name = _FEATURE_NAMES.generate_pdb_file, +) + _supports_start_end_lib_feature = feature( name = _FEATURE_NAMES.supports_start_end_lib, enabled = True, @@ -1317,6 +1322,7 @@ _FEATURE_NAMES.disable_pbh: _disable_pbh_feature, _FEATURE_NAMES.optional_cc_flags_feature: _optional_cc_flags_feature, _FEATURE_NAMES.cpp_compile_with_requirements: _cpp_compile_with_requirements, + _FEATURE_NAMES.generate_pdb_file: _generate_pdb_file_feature, "header_modules_feature_configuration": _header_modules_feature_configuration, "env_var_feature_configuration": _env_var_feature_configuration, "host_and_nonhost_configuration": _host_and_nonhost_configuration,