2

--compile-errorsの機能を使用しており、menhir非常に満足しています。ocamlbuildプロジェクトのコンパイルの管理にも使用しています。このプロジェクトは非常に基本的なものであるため、ビルド インフラストラクチャはこれまでのところ簡単なままです。

プロジェクトのルートに単一の_tagsファイルと単純なものがあります。Makefileまだファイルがありませmyocamlbuild.mlん。この_tagsファイルには次の 1 行しか含まれていません。

<src/*>: package(ppx_deriving.std)

Makefile の関連部分は次のとおりです。

all: src/ParsingErrors.ml
    ocamlbuild $(OPTIONS) src/Main.native

src/ParsingErrors.ml: src/Handcrafted.messages src/Parser.mly
    menhir --compile-errors src/Handcrafted.messages src/Parser.mly > src/ParsingErrors.ml

OPTIONS = -j 4 -use-menhir -use-ocamlfind -yaccflag --table -pkgs menhirLib,str,unix

OCamlbuild と Menhir は通常うまく統合されてい--compile-errorsますが、かなり新しい機能のようです。src/ParsingErrors.mlビルド ディレクトリではなく、ソース ディレクトリに自動生成されたファイルを配置するのが嫌いなので、私の設定は理想的ではありません。Menhir にこのエラー メッセージ ファイルをビルドしてもらいたいことを OCamlbuild に説明するには、どうすればよいでしょうか? ファイルの命名規則を (たとえば、src/Parser.messagessrc/Parser.mlに) 変更しても、物事が単純化されるのであれば問題ありません。

注:myocamlbuild.ml他のプロジェクトにファイルがありますが、オンライン ソースからコピーしました。解読するのは難しいと思いますし、これらの書き方もよくわかりません。

4

2 に答える 2

2

この機能は、現在の ocamlbuild バージョンではサポートされていません。プラグインに追加するにmyocamlbuild.mlは、新しいビルド ルールを定義する必要があります。内部にあるものが怖い場合は、新しいocamlbuild マニュアル、特にプラグインに関するセクションにmyocamlbuild.ml興味があるかもしれません。

この不足している機能を追跡するために、ocamlbuild リポジトリでイシュー レポート #121を開きました。適切なルールを作成し、次のバージョンの ocamlbuild に貢献するために、ocamlbuild について十分に学習することに興味がありますか? はいの場合は、気軽に github の問題にアクセスして、実装方法について質問を開始してください。喜んでお手伝いします。そうでない場合は、時間があるときに自分で実装しようとします。

それまでの間、特定のファイルに対してワンショット ルールを定義する方が、一般的なルールを定義するよりもはるかに簡単であることに注意してください。使用するソースファイルをハードコードする準備ができている場合は、Makefile ルールに非常によく似たものを作成できます。今日はこのルールを書いて確認する時間はありませんが、他の誰かがその間にそれを行っていない場合は、明日戻ってくるようにします.

于 2016-11-15T18:20:25.753 に答える