カスタムビルドステップを使ってVC++のソリューションにflexによるソース生成処理を統合する
VC++でflexで生成したソースをコンパイルできることがわかったので、flexによるソース生成→ソリューションのビルドを一連の流れで実行できるように、カスタムビルドステップを定義してみた。
まず、仮に"test++.l"というflexの入力ファイルがあるとして、それをソリューションに追加する。
次に、その"test++.l"のプロパティを開き、[カスタムビルドステップ]を以下のように入力。
コマンドラインの内容を解説すると
$(InputName)
は入力ファイルの拡張子を除いたファイル名に置き換えられる。
$(InputPath)
は入力ファイルの絶対パス名に置き換えられる。
これで、指定ファイルをコンパイルすると、"test++.cc"が生成される。
"test++.cc"をそのままコンパイルすると、
エラー 9 fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? c:\Users\snaka\Documents\Visual Studio 2008\Projects\flexcom\flexcom\test++.cpp 1593 flexcom
という、わかりにくいエラーが出るので、以下のように「プレコンパイル済みヘッダーを使わない」というように設定しておく。
これで、[ソリューションのビルド]で一気にビルドできるようになる。