我正在尝试构建一个使用多个平台API的跨平台库。我现在正在做macOS,因为我需要使用objective-c,所以我遇到了一个问题。
我有这个:
jest
在其他套餐中,我依赖于cc_library(
name = "base",
hdrs = ["application.h"],
deps = [":base_mac"],
visibility = ["//visibility:public"],
)
objc_library(
name = "base_mac",
srcs = ["application_mac.mm"],
)
。
问题是base
包含application_mac.mm
并实现了它,但由于application.h
规则不依赖于base_mac
规则而且无法编译,因此无法编译使用它的标题。它也不能添加这种依赖,因为我们有一个依赖循环,而bazel不喜欢它。
那么,我该如何最好地解决这个问题?
答案 0 :(得分:1)
两种解决方案:
hdrs = ["application.h"]
添加到base_mac
,或cc_library
创建另一个hdrs = ["application.h"]
,取决于base
和base_mac
中的hdrs
,并从base
中删除base_mac
()