我想知道特定于平台的默认 Bazel 构建标志是否可能。
例如,我们想使用--workspace_status_command
但这必须是 Linux 上的 shell 脚本,并且必须指向 Windows 上的批处理脚本。
有没有一种方法可以让我们在tools/bazel.rc
文件类似...
if platform=WINDOWS build: --workspace_status_command=status_command.bat
if platform=LINUX build: --workspace_status_command=status_command.sh
我们可以通过让用户在构建之前运行脚本来生成 .bazelrc 文件,但如果没有必要,它会更干净/更好。
是的,有点。您可以指定特定于配置的 bazelrc 条目,您可以通过传递来选择--config=<configname>
.
例如,您的 bazelrc 可能如下所示:
build:linux --cpu=k8
build:linux --workspace_status_command=/path/to/command.sh
build:windows --cpu=x64_windows
build:windows --workspace_status_command=c:/path/to/command.bat
你会像这样构建:
bazel build --config=linux //path/to:target
or:
bazel build --config=windows //path/to:target
你必须小心不要混合语义上冲突的--config
标志(Bazel 不会阻止你这样做)。虽然它会起作用,但当配置修改相同的标志时,结果可能是不可预测的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)