メイクファイルプロジェクトでは、ビルド/クリーン/リビルドのコマンドを設定します。
このコマンドにはユーザーが自由に処理を書けるので。
Visual Studio にはないコンパイラを使うこともでき、インテリセンスの恩恵を受けることができます。
makefile を使った例
makefile でビルドするプロジェクトを Visual Studio を使って開発する例です。- まずは、プロジェクトを作成します。
メイクファイルプロジェクトを選択し、コマンドを設定します。
(今回は、make でビルド、make clean でクリーンできるものとします。)
- この状態でもすでにビルドできます。
F7 でビルドしてみましょう。
- 次に、インテリセンスの恩恵を受けるためにコードをプロジェクトに追加します。
インクルードパスが通っていないと、インテリセンスが動作しないのでパスも通します。
(プリプロセッサの定義などもあれば設定します。)
これでインテリセンスが機能します。
- ログをカスタマイズする。
ビルドログは出力ウィンドウに表示されますが、メッセージは makefile の出したそのままのメッセージです。
このままでは、エラーウィンドウにエラー情報が表示されませんし、ログから該当コードにジャンプもできません。
これに対応するために、Visual Studio が認識できるフォーマットでログを出力するようにします。
build.bat ファイルを新規作成し、以下のようにログを加工します。(一例です。)
ビルドコマンドを build.bat に変更し、ビルドを実行します。@echo off SET LANG=ja_JP.SJIS bash -c "make --no-print-directory %*" 2> build_log.txt if errorlevel 1 ( sed -e "s/:\([0-9]*\):[0-9]*:/(\1):/g" build_log.txt | sed -e "s/\/cygdrive\/\([a-z]\)/\1:/g" del /F build_log.txt exit /b 1 ) else ( sed -e "s/:\([0-9]*\):[0-9]*:/(\1):/g" build_log.txt | sed -e "s/\/cygdrive\/\([a-z]\)/\1:/g" del /F build_log.txt exit /b 0 )
これでエラー一覧にエラーが表示されるようになりました。
HTML でも Visual Studio
Visual Studio で HTML ファイルを開くと色付きで表示してくれます。また、閉じてないタグや存在しないパスなど警告を表示してくれます。

これだけではつまらないので、メイクファイルプロジェクトを利用して htmllint をかけたいと思います。
(htmllint はこちらからダウンロードしました)
iutest での使用を例に説明します。
まずは、Makefile と build.bat を用意します。
Makefile:
#!/usr/bin/make LANG=ja_JP.SJIS HTMLLINT_PATH=$(subst \,/, $(HTMLLINT_ROOT)) default: target all: target lint target: Doxyfile doxygen Doxyfile lint: (find ../ -maxdepth 1 -type f -name "*.html" -print0 | xargs -0 perl $(HTMLLINT_PATH)/htmllint)
build.bat:
@echo off SET PATH=c:\cygwin\bin;%PATH% SET LANG=ja_JP.SJIS bash -c "make --no-print-directory %*" > build_log.txt if errorlevel 1 ( sed -e "s/: [0-9]*:/: error:/g" build_log.txt | sed -e "s/\/cygdrive\/\([a-z]\)/\1:/g" del /F build_log.txt exit /b 1 ) else ( sed -e "s/: [0-9]*:/: error:/g" build_log.txt | sed -e "s/\/cygdrive\/\([a-z]\)/\1:/g" del /F build_log.txt exit /b 0 )
make lintで、htmllint が実行されます。
build.bat はその出力を Visual Studio が対応している書式に変更します。
Visual Studio の設定は、ビルドコマンドに "build.bat lint" とするだけです。
実行すると以下のように結果が表示されます。
一覧から該当ファイルの行にジャンプできるので、修正がはかどります。

まとめ
このように、メイクファイルプロジェクトを使えば通常 Visual Studio では扱えないプロジェクトも管理でき、Visual Studio IDE の機能の恩恵を受けることができます。
ここまで高価な専門ツールである Visual Studio のことを紹介してきましたが、
メイクファイルプロジェクトは Express Edition でも使用出来るのでご安心ください。
これを使えば、mingw等でのコンパイル&ビルドが可能立ったりするのでしょうか?
返信削除はい。できます。
削除前回匿名でコメントしたものです。
削除やはり可能なんですね!
個人的なお願いだったりするのですが、これのMinGW版の設定方法書いたブログとか書いていただけないでしょうか?
srz_zumixさんが可能ならでいいのですが。。
英語サイトならこういうのいくらかみたのですが、私が英語を敬遠してるとこがあって日本語のサイトでこういうのないかなと探してる毎日であります(汗
既に MinGW でのビルド環境があるのであれば、そのビルドコマンドを呼び出すだけです。
削除「makefile を使った例」を参考に試してみてください。
ブログに書く件ですが、私は MinGW を(ほとんど)使わないですし、日本語の情報もたくさんありますので、私が記事にすることは多分ないです。ご了承ください。