В Buck, как я могу использовать вывод genrule в качестве заголовка для cxx_library?

У меня есть genrule который генерирует заголовочный файл C++ с использованием проприетарного инструмента. Затем заголовок используется в cxx_library, Глядя на код из этой презентации, я попробовал следующее:

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

Тем не менее, кажется, что genfile был объявлен устаревшим Что я должен использовать вместо этого?

1 ответ

Решение

Вам просто нужно указать цель сборки 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',
  },
  ...
)
Другие вопросы по тегам