Ich versuche eine plattformübergreifende Bibliothek zu erstellen, die die APIs der verschiedenen Plattformen verwendet. Ich mache gerade macOS und ich habe ein Problem, weil ich objective-c verwenden muss. dieseUmgang mit Implementierungen für verschiedene Plattformen
ich habe:
cc_library(
name = "base",
hdrs = ["application.h"],
deps = [":base_mac"],
visibility = ["//visibility:public"],
)
objc_library(
name = "base_mac",
srcs = ["application_mac.mm"],
)
In anderen Paketen, ich bin abhängig von base
.
Das Problem ist, dass application_mac.mm
umfasst application.h
und setzt sie aber nicht kompilieren, weil die base_mac
Regel nicht auf der base
Regel abhängt und nicht seine Header verwenden. Es funktioniert auch nicht, um diese Abhängigkeit hinzuzufügen, denn dann haben wir einen Abhängigkeitszyklus und Bazel mag es nicht.
Also, wie kann ich dieses Problem am besten lösen?
Danke, ich endete nach Ihrem zweiten Vorschlag. –