kkAyatakaのメモ帳。

誰かの役に立つかもしれない備忘録。

VC2010のカスタムウィザードを作る その1

Visual Studio 2010にてVCのカスタムウィザードを作ってみた。
まずはプロジェクトの作成と、編集するファイルの確認。


作成するきっかけは、CppUnitを試していた際、

  • ライブラリのビルドが必要
  • ヘッダ多い
  • デバッグとリリースでライブラリ違う
  • main関数が使いまわせる

と、なかなか利用するまでの手順が多く煩雑だったため。
ビルドはともかく、プロジェクトの設定や、main関数を毎回書くのは面倒なので、
カスタムウィザードで全部自動で作ってしまえば利用が楽になる。


これまで、VSのプロジェクトはエクスポートして使いまわせると思っていたけど、
VCではカスタムウィザードでちまちまやるしかないらしい・・・


なかなかにめんどくさいが、汎用性は高いのでいろいろできるようになっている。


今回作るウィザードはCppUnitを利用するC++プロジェクト構成を自動的に行うもので、
プロジェクト作成と同時に主に以下のことを自動で行う。

  • フィルターの設定
  • ヘッダとライブラリのコピー
  • main.cpp(main関数)のコピー
  • サンプルのテストクラスのコピー
  • コンパイラ、リンカ、ビルド後イベントなどの設定

ここまでやれば、CppUnitを使ったことが無くても、参考にしてテストが書けると思う。


カスタムウィザードはファイルのコピーももちろんだが、プロジェクトのプロパティは(おそらく)全て設定できるようになっている。
カスタマイズ性は高いんだけど、その分ドキュメントが複雑。
ただ、見方がわかれば難しくは無いので、自由にカスタムできてむしろ面白い。


リファレンスはここここ
基本的にテンプレのコード見れば概要はわかるので、後はリファレンスを元に設定を構築していく。

プロジェクトを作る

通常通りプロジェクトを作る手順で[Visual C++]-[全般]-[カスタムウィザード]を選択する。
カスタムウィザードは「UI」を持つことができる。
例えば、コンソールプロジェクトでアプリかDllかを選べたり、MFCの設定をカスタムするようなヤツだ。
UIはHTMLとJScript(JavaScriptでは無かったような・・・)で作成できる。


ただ、今回はCppUnitの使い方は固定するので、UIは無し。
HTMLわかんねってのもあるけど、カスタムウィザード自体初めてなので、
なるべくシンプル、最小限で作る。

編集するファイル

主に編集するファイルは以下のとおり

  • Templates.inf
  • default.js

「vsz」や「vsdir」は最後の調整にちょこっと触る。
アイコンはVSのプロジェクト選択画面で表示される。
デフォルトのはあんまりかっこよくないので、できれば準備したい。


「default.vcxproj」はプロジェクトのテンプレとなるファイルだが、今回は使わない。
既存のvcxprojファイルからコピペで構築できるが、あまり作りやすいとは思わない。

Templates.inf

コピーするファイルを指定する。
フォルダも自動的に作成されるので、階層構造になっていても問題ない。
ただ、全てのファイルについて記述しないとならないので、ファイルが多いとめんどくさい。

default.js

JScriptでプロジェクト構成を編集するファイル。
メインで編集する。
JScriptは知らんので始める前はかなりめんどくさく感じたが、リファレンスの場所さえわかればなんとなる。