如何在bazel中打包我的所有二进制文件?

时间:2018-06-09 19:22:21

标签: binary directory packaging bazel

在我的单声道回购的层次结构中散布着大量的BUILD文件 其中一些文件包含cc_binary规则 我知道它们都内置于bazel-bin,但我希望能够轻松访问它们 如何将它们打包,并将它们全部放入~/.bin/

我看到packaging rules,但我不清楚如何编写捕获每个程序并将它们打包在一起的规则。

1 个答案:

答案 0 :(得分:3)

这可能不是最优雅的解决方案(另外我希望我能得到这个问题),但这就是我们通过打包/" tarring"每个二进制文件都在自己的bazel包/ s1=bets.assign(correct=bets['status']=='Corrects').groupby(['temporada', 'username', 'comunidad', 'jornada']).correct.cumsum() s2=bets.assign(correct=bets['status']=='Incorrects').groupby(['temporada', 'username', 'comunidad', 'jornada']).correct.cumsum() bets['New']=(s1/(s1+s2)).values 文件中:

BUILD

然后我们将所有这些收集到项目根目录中的一个整体tarball /包中:

cc_binary(
    name = "hello"
    ...
)

load("@bazel_tools//tools/build_defs/pkg:pkg.bzl", "pkg_tar")
pkg_tar(
    name = "hello_pkg",
    srcs = [":hello"],
    mode = "0755",
    package_dir = "/usr/bin",
)

有时候我们实际上有多个这样的规则可以让hello收集pkg_tar( name = "mypkg", extension = "tar.gz", deps = [ "//hello:hello_pkg", ... ], ) 下的可执行文件和bin中包含中间libhello_bin目标的库。以与hello_lib相同的方式首先将其汇总到mypkg,然后在hello_pkg中使用。