У меня есть программа, которая может посмотреть исходный файл моего языка и получить правильное значение для значения deps=[]
своего правила сборки.
Я ищу способ заменить все мои существующие правила (которые выглядят так):
build_lib(name = "foo", deps = [...])
build_lib(name = "bar", deps = [...])
build_lib(name = "baz", deps = [...])
Вместо этого:
build_lib_new(name = "foo")
build_lib_new(name = "bar")
build_lib_new(name = "baz")
с тем же указанным deps, разрешенным внутри правила в вызове моей программы.
В идеале build_lib_new
было бы просто правилом обёртки вокруг build_lib
:
def derive_deps(name):
deps = []
# call my tool somehow?
return deps
def build_lib_new(name):
deps = derive_deps(name)
build_lib(name,deps)
Теперь я застрял. К сожалению, я думаю, что Базель хочет знать все зависимости заранее, как часть фазы анализа. Я вижу, что это действия для запуска команд оболочки, но я верю, что это происходит после того, как сделан график зависимости.
Нужно ли запускать внешний инструмент за пределами bazel для перезаписи BUILD
файлов?