繁体   English   中英

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

[英]How do I install a project built with bazel?

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

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

我需要创建一个便携式(必须至少在Linux和MacOS上工作)的方式来安装项目。 特别:

  • 我需要能够指定需要安装的库,头文件,可执行文件和其他文件(例如LICENSE )。
  • 用户需要能够指定应安装事物的绝对前缀。
    • 我真的,真的应该能够不止一次地执行“安装”步骤,每次都给出不同的前缀,而不会让Bazel感到困惑(即它不能试图“记住”它已安装的文件,或者如果它已经安装,必须了解前缀何时与上次不同)。
  • 应该将库安装到正确的位置(例如lib64 ),或者至少应该可以让用户指定正确的libdir。
  • 安装步骤一定不能从先前触及的任何文件的时间戳安装并没有改变。 (理想情况下,Bazel本身会处理这个问题;使用install命令很棘手并且具有潜在的可移植性问题。请注意上面的平台要求。)

这样做的最佳方法是什么?

除非您想要执行特定的包(例如debrpm ),否则您可能希望创建一个可执行规则来为您执行安装。

您可以创建一个规则来创建可执行安装的可执行文件(例如shell脚本)(例如,执行校验和检查已安装文件是否有更改,如果文件已更改,则执行文件的实际副本)。 你必须使用扩展语言,这看起来类似于docker规则增量加载器加载 图像的方式

另外:我忘了说安装本身将使用run命令运行:如果规则在顶级BUILD文件中命名为install ,则运行bazel run install

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM