カスタム ビルド ステップの指定

更新 : 2007 年 11 月

カスタム ビルド ステップは、入力ファイルから出力ファイルをビルドするために必要な情報をビルド システムに提供します。カスタム ビルド ステップは入力ファイルに適用されます。カスタム ビルド ステップには、実行するコマンド、それらのコマンドで生成される出力ファイルの一覧、およびオプションでコマンドの説明が格納されています。

カスタム ビルド ステップの概要については、「カスタム ビルド ステップとビルド イベントについて」を参照してください。

カスタム ビルド ステップを指定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。詳細については、「Visual C++ プロジェクトのプロパティの設定」を参照してください。

  2. [構成] ボックスで、カスタム ビルド ステップを指定する構成を選択します。

  3. ソリューション エクスプローラで、カスタム ビルド ステップを適用する入力ファイルを選択します。

    [カスタム ビルド ステップ] フォルダが表示されない場合は、選択したファイルに既定のステップが関連付けられています。たとえば、.c ファイルと .cpp ファイルには、コンパイラを起動する既定のステップがあります。既定の設定をオーバーライドするには、[構成プロパティ] フォルダにある [ツール] プロパティを変更します。

  4. カスタム ビルド ステップに関連付けられているプロパティを指定します。

    • [追加の依存ファイル] で、カスタム ビルド ステップが定義されているファイル以外の追加ファイルを指定します。カスタム ビルド ステップが関連付けられているファイルは、暗黙的にステップへの入力と見なされます。入力ファイルの追加は、カスタム ビルド ステップの要件ではありません。追加する入力ファイルが複数ある場合は、セミコロンで区切ります。

      [追加の依存ファイル] で指定したファイルの日付が入力ファイルよりも後の場合は、カスタム ビルド規則が実行されます。[追加の依存ファイル] で指定したすべてのファイルが入力ファイルよりも古く、入力ファイルが [出力ファイル] で指定したファイルよりも古い場合は、カスタム ビルド ステップが実行されません。

      たとえば、MyInput.x を入力として MyInput.cpp を生成するカスタム ビルド ステップがあり、その MyInput.x がヘッダー ファイル MyHeader.h をインクルードする場合について考えます。MyHeader.h を MyInput.x への入力依存ファイルとして指定でき、ビルド システムは MyInput.x または MyHeader.h に対して MyInput.cpp が古い場合に MyInput.cpp をビルドします。

      入力依存関係により、カスタム ビルド ステップが必要な順序で実行されることも保証されます。前の例で、MyHeader.h が実際にはカスタム ビルド ステップの出力であるとします。MyHeader.h は MyInput.x に依存するため、ビルド システムは最初に Myheader.h をビルドしてから、MyInput.x に対するカスタム ビルド ステップを実行します。

    • [コマンド ライン] で、カスタム ビルド規則の構文を指定します。この構文には、コマンド ラインまたは .bat ファイルで有効な任意のコマンドを含めることができます。ビルドのコマンドとプロパティのマクロを使用して、ファイルの位置を指定したり、複数の選択肢がある場合に入力ファイルの実際の名前を取得したりできます。バッチ ファイルの名前の先頭に call を付けて、すべての後続コマンドが実行されるようにする必要があります。

    • [説明] に、カスタム ビルド ステップの説明を入力します。この説明は、ビルド システムがこのステップを処理するときに [出力] ウィンドウに出力されます。

    • [出力ファイル] で、出力ファイルの名前を指定します。これは必須のエントリです。このプロパティの値がないと、カスタム ビルド ステップは実行されません。カスタム ビルド ステップの出力が複数ある場合は、ファイル名をセミコロンで区切ります。

      出力ファイルの名前は、[コマンド ライン] プロパティで指定した名前である必要があります。プロジェクト ビルド システムでは、ファイルを検索して日付をチェックします。ファイルが入力ファイルよりも新しい場合、またはファイルが見つからない場合は、カスタム ビルド ステップが実行されます。[追加の依存ファイル] で指定したすべてのファイルの日時が入力ファイルよりも古く、[出力ファイル] で指定したファイルが入力ファイルよりも古い場合は、カスタム ビルド ステップが実行されません。

カスタム ビルド ステップで生成された出力ファイルをビルド システムで操作する場合は、その出力ファイルをプロパティに手動で追加する必要があります。カスタム ビルド ステップにより、ビルド時にファイルが更新されます。

使用例

プロジェクトに parser.l という名前のファイルを含める場合について考えます。構文アナライザで parser.l を処理し、.c ファイルを同じ基本名 (parser.c) で生成します。

まず、parser.l と parser.c をプロジェクトに追加します。ファイルがまだ存在していない場合は、ファイルに参照を追加します。parser.l に対してカスタム ビルド ステップを作成し、Commands プロパティに次のように入力します。

lexer $(InputPath) .\$(InputName).c

このコマンドは、parser.l に対して構文アナライザを実行し、parser.c をプロジェクトのディレクトリに出力します。

Outputs プロパティに、次のように入力します。

.\$(InputName).c

プロジェクトをビルドすると、ビルド システムは parser.l と parser.c のタイムスタンプを比較します。parser.l の方が新しい場合、または parser.c が存在しない場合は、ビルド システムが Command プロパティを実行して parser.c を最新にします。parser.c はプロジェクトにも追加されているため、ビルド システムは parser.c のコンパイルに進みます。

参照

参照

カスタム ビルド ステップとビルド イベントのトラブルシューティング

その他の技術情報

ビルドのコマンドとプロパティのマクロ