我想构建一个非常类似于cc_proto_library的规则。关键特性是它将一个方面应用于所有可传递的proto_library依赖项,并为所有依赖项生成.cc和.h文件。此外,它还会生成将这些文件编译成目标文件的操作。
虽然我知道如何生成文件,但我不知道如何轻松地生成对象。native模块不能用于规则(或方面)实现,并且我不能在方面之上使用宏,因为我需要在与proto_library相同的包中生成目标文件,以便它只生成一次。
我相信cc_proto_library可以做到这一点,因为它不是用Skylark编写的,因此可以访问更多的原语。有没有办法只用Skylark就能做到这一点?
发布于 2017-09-25 16:59:51
不幸的是,这目前是不可能的。对于C++规则/操作(我们称之为C++ sandwich),没有Skylark API。我们计划在2018年的Q1中实现这一点。有很多跟踪问题,这一个看起来最相关:https://github.com/bazelbuild/bazel/issues/2163。
https://stackoverflow.com/questions/46134600
复制相似问题