相关疑难解决方法(0)

如何在分析时在bazel中运行shell命令?

我正在尝试将mercurial版本烘焙到我的Bazel文件中,以便我可以得到这样的东西:

# These I set manually, since they're "semantic"
MAJOR_VERSION = 2
MINOR_VERSION = 3
BUGFIX_VERSION = 1

# This should be the result of `hg id -n`
BUILD_VERSION = ?

apple_bundle_version(
    name = "my_version",
    build_version = "{}.{}.{}.{}".format(MAJOR_VERSION, MINOR_VERSION, BUGFIX_VERSION, BUILD_VERSION),
    short_version_string = "{}.{}.{}".format(MAJOR_VERSION, MINOR_VERSION, BUGFIX_VERSION),
)
Run Code Online (Sandbox Code Playgroud)

这显然不是密封的,所以我知道这违反了Bazel的一些假设,所以我对其他选择持开放态度.

这里有一些可能的选择:

  1. 实际上hg id -n在Bazel分析期间运行,我不知道该怎么做.

  2. 在via命令行中传递构建版本,例如--define=build_version=$(hg id -n).不幸的是,这需要一个单独的命令来包装bazel build.

  3. 手动设置BUILD_VERSION.显然,这会很烦人.

有没有办法做#1?我还有什么其他选择?

versioning bazel

1
推荐指数
1
解决办法
1295
查看次数

标签 统计

bazel ×1

versioning ×1