在bazel项目中使用大型非bazel依赖项

时间:2018-08-31 16:34:35

标签: bazel

我想在bazel项目中使用非常大的非bazel系统。具体来说,ROS2。这种依赖关系提供了大量使用自己的手动构建系统构建的python,C和C ++库。显然,我希望避免将整个构建系统转换为bazel。

广义上,我这样做的最佳方法是什么?本能地是使用自定义存储库规则下载源代码(因为它被拆分为许多存储库),然后使用genrule来调用ROS2构建系统。然后为我需要的每个单独的组件编写简单的cc_importpy_library规则。

但是,我在需要调用外部构建系统的地方遇到了麻烦。似乎genrule需要指定输出文件列表,而我希望它可以使整个build目录可用。

在花更多时间之前,我想问一下自从我对bazel陌生以来,我是否处在正确的位置。这是个好策略吗?您将如何解决这个问题?是否还有其他主要使用bazel的项目,但是我可以通过这种方式调用其他构建系统?

1 个答案:

答案 0 :(得分:1)

最近,您可以使用rules_foreign_cc调用本机CMake或进行类似项目的配置。