Fix broken targets in nightly 2021.07.22-1
There were two problems. Order of cc_libraries and a getter that was misspelled.
Errors looked like:
[]
and
[]
RELNOTES:none
PiperOrigin-RevId: 386264878
diff --git a/src/main/starlark/builtins_bzl/common/objc/compilation_support.bzl b/src/main/starlark/builtins_bzl/common/objc/compilation_support.bzl
index 3ec8ca4..fab9f88 100644
--- a/src/main/starlark/builtins_bzl/common/objc/compilation_support.bzl
+++ b/src/main/starlark/builtins_bzl/common/objc/compilation_support.bzl
@@ -62,23 +62,6 @@
else:
compilation_artifacts = objc_internal.create_compilation_artifacts(ctx = ctx)
- # objc_common = objc_internal.create_common(
- # purpose = "COMPILE_AND_LINK",
- # ctx = ctx,
- # compilation_attributes = compilation_attributes,
- # compilation_artifacts = compilation_artifacts,
- # deps = deps,
- # runtime_deps = runtime_deps,
- # intermediate_artifacts = intermediate_artifacts,
- # alwayslink = ctx.attr.alwayslink,
- # has_module_map = True,
- # extra_import_libraries = extra_import_libraries,
- # linkopts = linkopts,
- # )
-
- # objc_provider = objc_common.objc_provider
- # objc_compilation_context = objc_common.objc_compilation_context
-
(objc_provider, objc_compilation_context) = objc_common.create_context_and_provider(
purpose = "COMPILE_AND_LINK",
ctx = ctx,
diff --git a/src/main/starlark/builtins_bzl/common/objc/objc_common.bzl b/src/main/starlark/builtins_bzl/common/objc/objc_common.bzl
index bfc3a3b..e3b5ff8 100644
--- a/src/main/starlark/builtins_bzl/common/objc/objc_common.bzl
+++ b/src/main/starlark/builtins_bzl/common/objc/objc_common.bzl
@@ -51,7 +51,7 @@
if apple_common.Objc in runtime_dep:
runtime_objc_providers.append(runtime_dep[apple_common.Objc])
if CcInfo in runtime_dep:
- cc_compilation_contexts.append(runtime_dep[CcInfo].cc_compilation_context)
+ cc_compilation_contexts.append(runtime_dep[CcInfo].compilation_context)
link_order_keys = [
"imported_library",
@@ -66,9 +66,9 @@
"weak_sdk_framework": [],
"sdk_dylib": [],
"linkopt": [],
- "cc_library": [],
"library": [],
"providers": objc_providers,
+ "cc_library": [],
"sdk_framework": [],
"linkstamp": [],
"force_load_library": [],
diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
index 5f897a4..8feddba 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcLibraryTest.java
@@ -2283,4 +2283,72 @@
getConfiguredTarget("//x:foo");
}
+
+ @Test
+ public void testRuntimeDeps() throws Exception {
+ scratch.file(
+ "x/defs.bzl",
+ "def _var_providing_rule_impl(ctx):",
+ " return [",
+ " CcInfo(),",
+ " apple_common.new_dynamic_framework_provider(objc=ctx.attr.dep[apple_common.Objc])",
+ " ]",
+ "var_providing_rule = rule(",
+ " implementation = _var_providing_rule_impl,",
+ " attrs = { 'dep': attr.label(),}",
+ ")");
+ scratch.file(
+ "x/BUILD",
+ "load('//x:defs.bzl', 'var_providing_rule')",
+ "objc_library(",
+ " name = 'baz',",
+ " srcs = ['baz.m'],",
+ ")",
+ "var_providing_rule(",
+ " name = 'foo',",
+ " dep = 'baz',",
+ ")",
+ "objc_library(",
+ " name = 'bar',",
+ " srcs = ['bar.m'],",
+ " runtime_deps = [':foo'],",
+ ")");
+ getConfiguredTarget("//x:bar");
+ }
+
+ @Test
+ public void testRightOrderCcLibs() throws Exception {
+ scratch.file(
+ "x/BUILD",
+ "cc_library(",
+ " name = 'qux',",
+ " srcs = ['qux.cc'],",
+ ")",
+ "cc_library(",
+ " name = 'baz',",
+ " srcs = ['baz.cc'],",
+ ")",
+ "objc_library(",
+ " name = 'quux',",
+ " srcs = ['quux.m'],",
+ " deps = ['qux'],",
+ ")",
+ "cc_library(",
+ " name = 'foo',",
+ " srcs = ['foo.cc'],",
+ " deps = [':baz'],",
+ ")",
+ "objc_library(",
+ " name = 'bar',",
+ " srcs = ['bar.m'],",
+ " deps = ['quux', ':foo'],",
+ ")");
+ assertThat(
+ artifactsToStrings(
+ getConfiguredTarget("//x:bar")
+ .get(ObjcProvider.STARLARK_CONSTRUCTOR)
+ .getCcLibraries()))
+ .containsExactly("/ x/libqux.a", "/ x/libfoo.a", "/ x/libbaz.a")
+ .inOrder();
+ }
}