我想在bazel项目中使用非常大的非bazel系统。具体来说,ROS2。这种依赖关系提供了大量使用自己的手动构建系统构建的python,C和C ++库。显然,我希望避免将整个构建系统转换为bazel。
广义上,我这样做的最佳方法是什么?本能地是使用自定义存储库规则下载源代码(因为它被拆分为许多存储库),然后使用genrule
来调用ROS2构建系统。然后为我需要的每个单独的组件编写简单的cc_import
和py_library
规则。
但是,我在需要调用外部构建系统的地方遇到了麻烦。似乎genrule
需要指定输出文件列表,而我希望它可以使整个build
目录可用。
在花更多时间之前,我想问一下自从我对bazel陌生以来,我是否处在正确的位置。这是个好策略吗?您将如何解决这个问题?是否还有其他主要使用bazel的项目,但是我可以通过这种方式调用其他构建系统?
答案 0 :(得分:1)
最近,您可以使用rules_foreign_cc调用本机CMake或进行类似项目的配置。