我試圖使用ocamlbuild自動調用piqi來從protobuf定義生成ocaml模塊。這是一個兩步過程,我必須從%.protobuf
文件到%.proto.piqi
,最後到%_piqi.ml
。Ocamlbuild通過依賴關係複製到_build
我的第一步規則如下所示:
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