【问题标题】:Bazel: building a tree of dependenciesBazel:构建依赖树
【发布时间】:2022-08-16 05:14:19
【问题描述】:

我需要使用 bazel 来管理我们的源依赖项,以便最终构建产品纯粹是工具链的一个功能,来自 linux-distribution 的文件数量非常少,以及源代码本身。这意味着构建诸如 libz、libssl、libcrypto、libcurl 之类的东西......

  1. 这些依赖相互依赖
  2. 他们有自己的本地(主要基于自动工具)构建系统,基于 ./configure --prefix=foo && make -j && make install 之类的东西。

    在我看来,Bazel 不太适合这个用例。特别是,我们需要为每个库手动重新创建make install 步骤,以便将make install 工件复制出执行根.我不清楚下一个依赖项如何重用产品。因此,例如,在构建 zlib 时,我们会生成 libz.a 和一堆头文件。然后,在构建libcrypto.a时,我们需要修改CPPFLAGSLDFLAGS指向zlib\"installation\"。

    这让我觉得很迂腐,以至于它乞求代码生成来生成 BUILD 文件。

    是否有不需要将“make install”逻辑定制复制到 genrule 的替代方法?

    标签: bazel bazel-rules


    【解决方案1】:

    看看 rules_foreign_cc (https://github.com/bazelbuild/rules_foreign_cc)。这包含与外部构建系统(make、autotools+make、cmake 等)集成的规则。

    【讨论】:

      猜你喜欢
      • 2011-07-21
      • 1970-01-01
      • 2018-03-18
      • 2010-11-30
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-30
      相关资源
      最近更新 更多