我正在尝试使用 ocamlbuild 自动调用piqi从 protobuf 定义中生成 ocaml 模块。这是一个 2 步过程,我必须从%.protobuf
文件转到 a %.proto.piqi
,最后转到%_piqi.ml
.
我的第一步规则如下:
rule "piqi: .proto -> .piqi"
~dep:"%.proto"
~prod:"%.proto.piqi"
begin fun env build ->
Cmd (S [ A piqi ; A "of-proto"
; A "-I"; P protobuf_include
; P (env "%.proto") ]
)
end;
但这不起作用,因为%.proto.piqi
目标实际上依赖于我的源目录中的所有“*.proto”文件,因为各个.proto
文件在源中相互导入。但是,我不确定如何在 ocamlbuild 中表达它们之间的这种依赖关系。如果将所有原始文件复制到_build
而不是仅复制到其中的一个就足够了~dep