Bazel 我可以根据不同的cc_二进制文件在cc_库中设置不同的宏值吗?

Bazel 我可以根据不同的cc_二进制文件在cc_库中设置不同的宏值吗?,bazel,Bazel,有一个名为“L”的cc_库目标,cc_二进制目标“a”、“B”、“C”依赖于它 库L实现了一个事务框架,包含一个长度为100的纯字符数组,数组上有很多复杂的逻辑 现在,目标B需要更大的数据大小,但目标a和C需要更小的数据大小以同时容纳更多事务 使用makefile时,一种可行的方法是在L中使用ifdef/else为长度设置不同的宏值。然后循环A、B、C,用不同的-D=A、-D=B和-D=C构建它们。因此,lib L在三个不同的二进制文件中具有不同的数组长度 有没有更好的方法来实施它? 我可以在b

有一个名为“L”的cc_库目标,cc_二进制目标“a”、“B”、“C”依赖于它

库L实现了一个事务框架,包含一个长度为100的纯字符数组,数组上有很多复杂的逻辑

现在,目标B需要更大的数据大小,但目标a和C需要更小的数据大小以同时容纳更多事务

使用makefile时,一种可行的方法是在L中使用ifdef/else为长度设置不同的宏值。然后循环A、B、C,用不同的-D=A、-D=B和-D=C构建它们。因此,lib L在三个不同的二进制文件中具有不同的数组长度

有没有更好的方法来实施它?
我可以在bazel做同样的事情吗?

您可以遵循完全相同的方法:

在cc_库上使用定义库的多个版本,例如a依赖的L_复杂_事务和B和C依赖的L_多个_事务

更好地在二进制文件上使用,并在cc_库上使用select语句来选择适当的define