如何安装使用 bazel 构建的项目?

How do I install a project built with bazel?

我正在从事一个从 CMake 过渡到 Bazel 的项目。我们显然在讨价还价中失去的一个关键功能是安装项目的能力,以便其他(不一定是 Bazel)项目可以使用它。

AFAICT,目前没有对安装项目的内置支持?!

我需要创建一个可移植的(必须至少在 Linux 和 MacOS 上工作)的方式来安装项目。具体来说:

执行此操作的最佳方法是什么?

除非你想做特定的包(例如 deb or rpm),你可能想创建一个可执行规则来为你安装。

您可以创建一个规则来创建一个可执行文件(例如 shell 脚本)为您执行安装(例如执行校验和检查已安装文件是否有更改并执行实际复制的文件,如果他们已经改变)。你必须使用扩展语言来做,这看起来类似于 docker rules does to load an image with the incremental loader

补充:我忘了说安装本身将是 运行 通过使用 运行 命令:bazel run install 如果规则在顶部被命名为 install关卡构建文件。