From 7a1420a61013a5ae5ba133c6da723d6079f1baac Mon Sep 17 00:00:00 2001 From: Googler Date: Thu, 27 Feb 2020 20:08:00 -0800 Subject: [PATCH] Migrate Objc compile info to CcCompilationContext Step 1 of 3-step plan: 1. Migrate the definitions. 2. Migrate the uses. 3. Delete old ObjcProvider definitions. See https://github.com/bazelbuild/bazel/issues/10674. RELNOTES: None PiperOrigin-RevId: 297752932 --- apple/internal/apple_framework_import.bzl | 32 +++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/apple/internal/apple_framework_import.bzl b/apple/internal/apple_framework_import.bzl index cae7e727f2..7472d416af 100644 --- a/apple/internal/apple_framework_import.bzl +++ b/apple/internal/apple_framework_import.bzl @@ -26,6 +26,10 @@ load( "@bazel_skylib//lib:paths.bzl", "paths", ) +load( + "@bazel_skylib//lib:sets.bzl", + "sets", +) load( "@build_bazel_rules_apple//apple/internal:resources.bzl", "resources", @@ -195,6 +199,18 @@ def _framework_objc_provider_fields( return objc_provider_fields +def _framework_search_paths(header_imports): + """Return the list framework search paths for the headers_imports.""" + if header_imports: + header_groups = _grouped_framework_files(header_imports) + + search_paths = sets.make() + for path in header_groups.keys(): + sets.insert(search_paths, paths.dirname(path)) + return sets.to_list(search_paths) + else: + return [] + def _apple_dynamic_framework_import_impl(ctx): """Implementation for the apple_dynamic_framework_import rule.""" providers = [] @@ -220,6 +236,14 @@ def _apple_dynamic_framework_import_impl(ctx): objc_provider = _objc_provider_with_dependencies(ctx, objc_provider_fields) providers.append(objc_provider) + providers.append( + CcInfo( + compilation_context = cc_common.create_compilation_context( + headers = depset(header_imports), + framework_includes = depset(_framework_search_paths(header_imports)), + ), + ), + ) providers.append(apple_common.new_dynamic_framework_provider( objc = objc_provider, framework_dirs = framework_dirs_set, @@ -277,6 +301,14 @@ def _apple_static_framework_import_impl(ctx): objc_provider_fields.update(_ensure_swiftmodule_is_embedded(swiftmodule)) providers.append(_objc_provider_with_dependencies(ctx, objc_provider_fields)) + providers.append( + CcInfo( + compilation_context = cc_common.create_compilation_context( + headers = depset(header_imports), + framework_includes = depset(_framework_search_paths(header_imports)), + ), + ), + ) bundle_files = [x for x in framework_imports if ".bundle/" in x.short_path] if bundle_files: