diff --git a/cc/private/compile/cc_compilation_helper.bzl b/cc/private/compile/cc_compilation_helper.bzl index 01aa11fc..b0251fe9 100644 --- a/cc/private/compile/cc_compilation_helper.bzl +++ b/cc/private/compile/cc_compilation_helper.bzl @@ -196,6 +196,7 @@ _ModuleMapInfo = provider( "module_map", "public_headers", "private_headers", + "public_textual_headers", "dependency_module_maps", "additional_exported_headers", "separate_module_headers", @@ -261,6 +262,12 @@ def _module_map_struct_to_module_map_content(parameters, tree_expander): add_header(path = header.path, visibility = "", can_compile = False) added_paths.add(header.path) + for header in parameters.public_textual_headers: + if header.path in added_paths: + continue + add_header(path = header.path, visibility = "", can_compile = False) + added_paths.add(header.path) + for path in parameters.additional_exported_headers: if path in added_paths: continue @@ -303,6 +310,7 @@ def _create_module_map_action( module_map, private_headers, public_headers, + public_textual_headers, dependency_module_maps, additional_exported_headers, separate_module_headers, @@ -316,6 +324,7 @@ def _create_module_map_action( leading_periods = "" if module_map_home_is_cwd else "../" * segments_to_exec_path public_headers = _cc_internal.freeze(public_headers) private_headers = _cc_internal.freeze(private_headers) + public_textual_headers = _cc_internal.freeze(public_textual_headers) dependency_module_maps = _cc_internal.freeze(dependency_module_maps) additional_exported_headers = _cc_internal.freeze(additional_exported_headers) separate_module_headers = _cc_internal.freeze(separate_module_headers) @@ -323,6 +332,7 @@ def _create_module_map_action( module_map = module_map, public_headers = public_headers, private_headers = private_headers, + public_textual_headers = public_textual_headers, dependency_module_maps = dependency_module_maps, additional_exported_headers = additional_exported_headers, separate_module_headers = separate_module_headers, @@ -499,6 +509,7 @@ def _init_cc_compilation_context( actions = actions, module_map = module_map, public_headers = public_headers_for_module_map_action, + public_textual_headers = public_textual_headers, separate_module_headers = separate_public_headers.module_map_headers, dependency_module_maps = dependency_module_maps, private_headers = private_headers_for_module_map_action, diff --git a/cc/private/compile/compile.bzl b/cc/private/compile/compile.bzl index c92fa70d..cf1b9a7a 100644 --- a/cc/private/compile/compile.bzl +++ b/cc/private/compile/compile.bzl @@ -311,8 +311,7 @@ def compile( generate_pic_action = generate_pic_action, generate_no_pic_action = generate_no_pic_action, module_map = module_map, - additional_exported_headers = - additional_exported_hdrs + [h.path for h in textual_hdrs_list] if textual_hdrs_list else additional_exported_hdrs, + additional_exported_headers = additional_exported_hdrs, deps = compilation_contexts, implementation_deps = implementation_compilation_contexts, additional_cpp_module_maps = additional_module_maps,