c++ - 在 Buck 中,如何使用 genrule 的输出作为 cxx_library 的 header ?

标签 c++ buck

我有一个 genrule,它使用专有工具生成 C++ 头文件。然后,该 header 将在 cxx_library 中使用。查看来自 this presentation 的代码,我尝试过以下方法:

cxx_library(
  name = 'my-library',
  srcs = glob(['src/**/*.cpp']),
  exported_headers = {
    'my_header.h': genfile('my-header.h'),
  },
  ...

但是,genfile 似乎已被弃用。我应该用什么来代替?

最佳答案

您只需指定 build target genrule的代替genfile('my-header.h')

genrule(
  name='my-header',
  cmd='some_command.py',
  out='my-header.h',
)

cxx_library(
  name = 'my-library',
  srcs = glob(['src/**/*.cpp']),
  exported_headers = {
    'my_header.h': ':my-header',
  },
  ...
)

关于c++ - 在 Buck 中,如何使用 genrule 的输出作为 cxx_library 的 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41595945/

相关文章:

c++ - 如何在模板参数上强制执行契约(Contract)

c++ - Bazel:如何将标题放入一个包含路径

c++ - buck 使用什么来实际构建 c++

c++ - 在 Travis 服务器上使用 Buck 构建

java - 如何在 Buck 中使用自定义注释处理器?

c++ - boost.python 暴露成员的成员

c++ - 仅针对具有枚举非类型模板参数的 C++ 模板函数的特化

c++ - 用于检测 C++ 中 ABI 中断的静态分析工具

c++ - 多参数隐式转换、运算符重载

java - 如何用buck创建多项目?