我想知道特定于平台的默认 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
Run Code Online (Sandbox Code Playgroud)
我们可以通过让用户在构建之前运行脚本来生成一个 .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
Run Code Online (Sandbox Code Playgroud)
你会像这样构建:
bazel build --config=linux //path/to:target
Run Code Online (Sandbox Code Playgroud)
或者:
bazel build --config=windows //path/to:target
Run Code Online (Sandbox Code Playgroud)
你必须小心不要混合语义冲突的--config
标志(Bazel 不会阻止你这样做)。虽然它会起作用,但当配置修改相同的标志时,结果可能是不可预测的。
归档时间: |
|
查看次数: |
781 次 |
最近记录: |