5

C++ アプリケーションでデータのシリアル化にプロトコル バッファを使用しています。プリメイクprotocビルド スクリプトにコード ジェネレーターの呼び出しを追加したいと考えています (これにより、生成されたクラスの最新の状態が保証され、生成されたソースをバージョン管理下に保存する必要がなくなります)。

彼らのFAQにもこれに関する質問と回答がありますが、私にとってその回答は非常に不完全です. 任意の lua 関数を呼び出すことができるのは素晴らしいことですが、その呼び出しを正確にどこに置くのでしょうか? アプリケーションまたは単体テストをビルドする前に、protoc コンパイラを実行する必要があります。

4

2 に答える 2

5

Premake スクリプトから外部コードを確実に呼び出すことができます。ただし、覚えておいてください: Premake スクリプトは、ビルド ファイル(Makefile、C++ プロジェクトなど) を生成するために使用されます。Premake スクリプトは、プロジェクトをビルドする前に実行されます。

この前処理を実際のビルド ファイルの外で (make、VC++、Code::Blocks などではなく) 実行したい場合は、簡単です。Luaos.executeはコマンドラインを実行します。

Premake スクリプトは依然として Lua スクリプトです。すべての Premake コマンドは、Premake が定義する関数への Lua 呼び出しです。Premake はスクリプトを実行し、スクリプトからのデータを使用してビルド ファイルを生成します。したがって、スクリプトの実行中にすべての Lua コードが実行されます。このコマンドをスクリプト内のどこに置くかは関係ありません。どこにいても、ビルド ファイルが生成される前に実行されます。

于 2011-08-02T21:33:24.763 に答える
3

また、ビルド中に(VC ++、makefileなどから)protocステップを実行する場合は、prebuildコマンドを設定できます。詳細と例については、 http://industriousone.com/prebuildcommandsを参照してください。

于 2011-08-03T09:28:29.767 に答える