Get Objc compile info from CcCompilationContext

Note strict includes still come from ObjcProvider.

Step 2 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.

PiperOrigin-RevId: 307870523
diff --git a/src/TulsiGenerator/Bazel/tulsi/tulsi_aspects.bzl b/src/TulsiGenerator/Bazel/tulsi/tulsi_aspects.bzl
index 2d8d4ba..3d0e35c 100644
--- a/src/TulsiGenerator/Bazel/tulsi/tulsi_aspects.bzl
+++ b/src/TulsiGenerator/Bazel/tulsi/tulsi_aspects.bzl
@@ -266,7 +266,7 @@
     )
 
 def _depset_to_file_metadata_list(a_depset):
-    """"Converts a depset of files into a list of _file_metadata structs."""
+    """Converts a depset of files into a list of _file_metadata structs."""
     return [_file_metadata(f) for f in a_depset.to_list()]
 
 def _collect_artifacts(obj, attr_path, exclude_xcdatamodel = False, exclude_xcassets = False):
@@ -569,11 +569,14 @@
 
 def _extract_generated_sources(target):
     """Returns (source_metadatas, includes) generated by the given target."""
-    file_metadatas = []
+    transitive_depsets = []
     objc_provider = _get_opt_provider(target, ObjcInfo)
-    if hasattr(objc_provider, "source") and hasattr(objc_provider, "header"):
-        all_files = depset(transitive = [objc_provider.source, objc_provider.header])
-        file_metadatas = _depset_to_file_metadata_list(all_files)
+    if hasattr(objc_provider, "source"):
+        transitive_depsets.append(objc_provider.source)
+    cc_info = _get_opt_provider(target, CcInfo)
+    if cc_info:
+        transitive_depsets.append(cc_info.compilation_context.headers)
+    file_metadatas = _depset_to_file_metadata_list(depset(transitive = transitive_depsets))
 
     return file_metadatas
 
@@ -650,25 +653,13 @@
                 depsets.append(objc.strict_include)
     return depset(transitive = depsets)
 
-def _collect_objc_defines(objc_provider, cc_provider, rule_attr):
-    """Returns a depset of C-compiler defines."""
-    if cc_provider and not objc_provider:
-        return cc_provider.compilation_context.defines
-    depsets = [objc_provider.define] if objc_provider else []
-    for dep in _collect_dependencies(rule_attr, "deps"):
-        if CcInfo in dep:
-            compilation_context = dep[CcInfo].compilation_context
-            depsets.append(compilation_context.defines)
-    return depset(transitive = depsets)
-
 # TODO(b/64490743): Add these files to the Xcode project.
 def _collect_swift_header(target):
     """Returns a depset of Swift generated headers found on the given target."""
 
-    # swift_* targets put the generated header into their objc provider HEADER
-    # field.
-    if SwiftInfo in target and ObjcInfo in target:
-        return target[ObjcInfo].header
+    # swift_* targets put the generated header into CcInfo.
+    if SwiftInfo in target and CcInfo in target:
+        return target[CcInfo].compilation_context.headers
     return depset()
 
 def _target_filtering_info(ctx):
@@ -826,21 +817,19 @@
 
     objc_strict_includes = _collect_objc_strict_includes(target, rule_attr)
 
-    objc_provider = _get_opt_provider(target, ObjcInfo)
     cc_provider = _get_opt_provider(target, CcInfo)
     objc_defines = []
-    includes_depsets = []
 
-    if objc_provider:
+    if cc_provider:
+        cc_ctx = cc_provider.compilation_context
         includes_depsets = [
             objc_strict_includes,
-            objc_provider.include,
-            objc_provider.iquote,
-            objc_provider.include_system,
+            cc_ctx.includes,
+            cc_ctx.quote_includes,
+            cc_ctx.system_includes,
         ]
-    elif cc_provider:
-        cc_ctx = cc_provider.compilation_context
-        includes_depsets = [cc_ctx.includes, cc_ctx.quote_includes, cc_ctx.system_includes]
+    else:
+        includes_depsets = [objc_strict_includes]
 
     if includes_depsets:
         # Use a depset here to remove duplicates which is possible since
@@ -852,7 +841,8 @@
     else:
         target_includes = []
 
-    objc_defines = _collect_objc_defines(objc_provider, cc_provider, rule_attr).to_list()
+    if cc_provider:
+        objc_defines = cc_provider.compilation_context.defines.to_list()
 
     platform_type, os_deployment_target = _get_deployment_info(target, ctx)
     non_arc_srcs = _collect_files(rule, "attr.non_arc_srcs")
@@ -1089,9 +1079,11 @@
     all_files_depsets = []
     if target_kind in _SOURCE_GENERATING_RULES + _NON_ARC_SOURCE_GENERATING_RULES:
         objc_provider = _get_opt_provider(target, ObjcInfo)
-        if hasattr(objc_provider, "source") and hasattr(objc_provider, "header"):
+        if hasattr(objc_provider, "source"):
             all_files_depsets.append(objc_provider.source)
-            all_files_depsets.append(objc_provider.header)
+        cc_info = _get_opt_provider(target, CcInfo)
+        if cc_info:
+            all_files_depsets.append(cc_info.compilation_context.headers)
 
     all_files_depsets.append(_collect_swift_header(target))
     all_files_depsets.append(_collect_swift_modules(target))