Change madatory provider for objc_library to CcInfo

This does not affect most rules, because Objective-C has already
migrated its compile info to CcInfo, so any rules with compile info
already must have a CcInfo.  Rules that this change breaks can simply
add an empty CcInfo to the providers they return.

RELNOTES[INC]: objc_library now requires CcInfo in its deps.  If this breaks you, add empty CcInfo() to your rule.

PiperOrigin-RevId: 451038913
Change-Id: I5ac3a8ece4be610e346eb014bd0aa5184659f0ea
diff --git a/src/main/starlark/builtins_bzl/common/objc/attrs.bzl b/src/main/starlark/builtins_bzl/common/objc/attrs.bzl
index 5532bd4..8fea74c 100644
--- a/src/main/starlark/builtins_bzl/common/objc/attrs.bzl
+++ b/src/main/starlark/builtins_bzl/common/objc/attrs.bzl
@@ -16,7 +16,7 @@
 
 load("@_builtins//:common/objc/semantics.bzl", "semantics")
 
-ObjcInfo = _builtins.toplevel.apple_common.Objc
+CcInfo = _builtins.toplevel.CcInfo
 AppleDynamicFrameworkInfo = _builtins.toplevel.apple_common.AppleDynamicFramework
 TemplateVariableInfo = _builtins.toplevel.platform_common.TemplateVariableInfo
 
@@ -80,11 +80,7 @@
     "includes": attr.string_list(),
     "sdk_includes": attr.string_list(),
     "deps": attr.label_list(
-        providers = [ObjcInfo],
-        allow_rules = [
-            "cc_library",
-            "cc_inc_library",
-        ],
+        providers = [CcInfo],
         flags = ["DIRECT_COMPILE_TIME_INPUT"],
     ),
 }
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
index cca510e..06fddc8 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcRuleTestCase.java
@@ -721,7 +721,7 @@
         "libs/defs.bzl",
         "def _custom_static_framework_import_impl(ctx):",
         "  return [apple_common.new_objc_provider(",
-        "      static_framework_file=depset(ctx.files.link_inputs))]",
+        "      static_framework_file=depset(ctx.files.link_inputs)), CcInfo()]",
         "custom_static_framework_import = rule(",
         "    _custom_static_framework_import_impl,",
         "    attrs={'link_inputs': attr.label_list(allow_files=True)},",
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcStarlarkTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcStarlarkTest.java
index 204bd20..8817400 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcStarlarkTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcStarlarkTest.java
@@ -32,6 +32,7 @@
 import com.google.devtools.build.lib.packages.StructImpl;
 import com.google.devtools.build.lib.rules.apple.AppleToolchain;
 import com.google.devtools.build.lib.rules.apple.DottedVersion;
+import com.google.devtools.build.lib.rules.cpp.CcInfo;
 import com.google.devtools.build.lib.vfs.PathFragment;
 import java.util.List;
 import java.util.Map;
@@ -304,13 +305,12 @@
   }
 
   @Test
-  public void testObjcRuleCanDependOnArbitraryStarlarkRuleThatProvidesObjc() throws Exception {
+  public void testObjcRuleCanDependOnArbitraryStarlarkRuleThatProvidesCcInfo() throws Exception {
     scratch.file("examples/rule/BUILD");
     scratch.file(
         "examples/rule/apple_rules.bzl",
         "def my_rule_impl(ctx):",
-        "   objc_provider = apple_common.new_objc_provider(linkopt=depset(['mock_linkopt']))",
-        "   return [objc_provider]",
+        "   return [CcInfo()]",
         "my_rule = rule(implementation = my_rule_impl,",
         "   attrs = {})");
 
@@ -336,8 +336,7 @@
         ")");
 
     ConfiguredTarget libTarget = getConfiguredTarget("//examples/apple_starlark:lib");
-    ObjcProvider libObjcProvider = libTarget.get(ObjcProvider.STARLARK_CONSTRUCTOR);
-    assertThat(libObjcProvider.get(ObjcProvider.LINKOPT).toList()).contains("mock_linkopt");
+    assertThat(libTarget.get(CcInfo.PROVIDER)).isNotNull();
   }
 
   @Test
@@ -956,7 +955,7 @@
             "   strict_includes = depset(['path'])",
             "   created_provider = apple_common.new_objc_provider\\",
             "(strict_include=strict_includes)",
-            "   return [created_provider]");
+            "   return [created_provider, CcInfo()]");
 
     ObjcProvider starlarkProvider = starlarkTarget.get(ObjcProvider.STARLARK_CONSTRUCTOR);
     assertThat(starlarkProvider.getStrictDependencyIncludes())