我想构建一个与cc_proto_library
非常相似的规则。关键特性是它将一个方面应用于所有传递proto_library
依赖关系,并为所有依赖关系生成.cc
和.h
文件。此外,它还会生成将这些操作编译为目标文件的操作。
虽然我理解如何生成文件,但我不知道如何轻松地生成对象。 native模块不适用于规则(或方面)实现,并且我不能在方面之上使用宏,因为我需要在与proto_library
相同的包中生成目标文件,因此它只生成一次。
cc_proto_library
可以做到这一点,因为它不是用Skylark编写的,因此可以访问更多原语。无论如何只有Skylark这样做吗?
答案 0 :(得分:0)
遗憾的是,这是不可能的。 C ++规则/操作没有Skylark API(我们称之为C++ sandwich)。我们计划在2018年第一季度实施此项目。有许多跟踪问题,这一问题看起来最相关:https://github.com/bazelbuild/bazel/issues/2163。