$ python gencpp.py
Эта команда генерирует файл cpp foo.cpp
в рабочем каталоге.Использование сгенерированного кода в bazel build
Я хотел бы, чтобы запустить эту команду в bazel
, прежде чем строить, чтобы иметь возможность включать foo.cpp
в cc_binary
«S srcs
атрибутов.
Что я пробовал:
genrule(
name = 'foo',
outs = ['foo.cpp'],
cmd = 'python gencpp.py',
)
cc_library(
srcs = ['foo.cpp'], # tried also with :foo
...
)
объявил выход 'внешний/somelib/foo.cpp' не был создан genrule. Вероятно, это связано с тем, что genrule на самом деле не создавал этот вывод или потому, что вывод был каталогом, а genrule запускался удаленно (обратите внимание, что только содержимое объявленных файлов выгружается из genrules запускает удаленно).
Я знаю, что есть решение, которое требует, чтобы gencpp.py
было немного изменено, но это не то, что я ищу.
У меня была довольно похожая проблема [stackoverflow/bazel-автоматически-сгенерированные-cpp-hpp-файлы] (https://stackoverflow.com/questions/44312549/bazel-automatically-generated-cpp-hpp-files). Эти ответы могут завершить приведенные здесь. –