2012-02-11 7 views
4

ビルドイベントで、ビルドターゲット、つまりmakeまたはbuildを検出したいとします。ビルドイベントでビルドターゲットを検出できますか?

私は、いくつかのCファイルをオブジェクト(.obj)にコンパイルして、私のパスカルファイルの1つに含まれている、プレビルドイベントを持っています。現時点では、ビルド前のイベントが実行されるたびにCファイルがコンパイルされます。ビルドターゲットがmakeで、オブジェクトが最新の場合はこのステージをスキップすることができます。

この段階をスキップすると、編集/コンパイル/デバッグ開発モードでコンパイル時間が大幅に短縮されます。

ビルドターゲットを検出できますか?

+0

私はそれがちょっとハックだが、プロジェクトグループ内の別のプロジェクトアイテムを使ってCビルドを起動しないのはなぜですか?これがビジュアルスタジオだったら、それは '.lib'ターゲットになるでしょう、おそらくあなたはどこかの方法で得ることができます。依存関係を作成して、もう一方が再構築されるときに依存関係を作成することもできます。 –

答えて

5

IDEが一度に1つのプロジェクトだけをコンパイルすると仮定すると、1つの解決策はIOTAProjectCompileNotifierを登録することです。 CompileInfo.Modeの値に応じて、BeforeCompileでビルドイベントを削除し、AfterCompileに追加することができます。

+2

ありがとうございます。私がそのルートを下った場合、環境変数を設定し、ビルドイベントコードがその環境変数の値に従ってその動作を変更させるようにします。 –

+2

私はこの解決策が好きです。 *コンパイルを検出した場合は、環境変数を設定します。あなたのビルドイベントは、特別な環境変数が存在しないかぎり、プラグインがインストールされていないIDEに対して "安全"な方法でなければ、すべてをビルドとして扱うべきです。 –

+2

@cosmin私はこれが仕事をするだろうと思うが、それは私の見解ではデルファイ自体によって処理されるべきものだ –

関連する問題