我有一个只能在Linux上构建的目标(在这种情况下,因为它取决于仅在Linux上可用的syscalls,并且没有尝试创建此跨平台的愿望)。如何在BUILD
文件中表达这一点?
我从Platforms documentation看到存在一个@bazel_tools//platforms:linux
的Linux平台定义,但是我不清楚如何利用它来限制目标。尝试在compatible_with
中指定它会导致如下错误:
(13:27:09) ERROR: /foo/BUILD:4:1: in compatible_with attribute of go_library rule //foo:go_default_library: constraint_value rule '@bazel_tools//platforms:linux' is misplaced here (expected environment). Since this rule was created by the macro 'go_library_macro', the error might have been caused by the macro implementation in /foo/BUILD:4:1
所以我有几个相关问题:
compatible_with
提供了错误的规则类型。什么是environment
?如何提供? (我一直在努力寻找有关此文档的信息)rules_go
可能尚未更新。如果平台无法实现,是否有“旧方法”来代替?bazel test //:all
之类的命令时,我希望这样做不会导致构建错误。我希望只排除这些或其他内容。这可能吗?感谢您的帮助