如何结合bazel方面和cc_library

时间:2017-09-09 19:54:25

标签: bazel bazel-aspect

我想构建一个与cc_proto_library非常相似的规则。关键特性是它将一个方面应用于所有传递proto_library依赖关系,并为所有依赖关系生成.cc.h文件。此外,它还会生成将这些操作编译为目标文件的操作。

虽然我理解如何生成文件,但我不知道如何轻松地生成对象。 native模块不适用于规则(或方面)实现,并且我不能在方面​​之上使用宏,因为我需要在与proto_library相同的包中生成目标文件,因此它只生成一次。

我相信

cc_proto_library可以做到这一点,因为它不是用Skylark编写的,因此可以访问更多原语。无论如何只有Skylark这样做吗?

1 个答案:

答案 0 :(得分:0)

遗憾的是,这是不可能的。 C ++规则/操作没有Skylark API(我们称之为C++ sandwich)。我们计划在2018年第一季度实施此项目。有许多跟踪问题,这一问题看起来最相关:https://github.com/bazelbuild/bazel/issues/2163