たぶん、同じようなことをしている人は皆無だと思うが…コマンドプロンプトベースでなんでもやる人の参考になるかも
基本
ベースはこれ。これで基本ツールをそろえる
作業ベース
作業フォルダーは %USERPROFILE%\go\src\github.com\zetamatta\project みたいな深い場所になる。そこへ cd (chdir) するのは毎回たいへん。そこで次のような nyagos の機能のいずれかを使って簡単に cd できるようにする
set "CDPATH=%USERPROFILE%\go\src\github.com\zetamatta"しておいて、zetamatta 以下のフォルダーには名前だけで cd できるようにするlnk %USERPROFILE%\go\src\github.com\zetamatta\project ~\.して、ホームディレクトリの直下に project.lnk というショートカットを作る。これでcd project.lnkだけで移動できる- 一度移動したことのあるフォルダーであれば、
cd -hでディレクトリヒストリを出して、cd -2とかで移動する
Visual Stdio で開発する場合は、ここから open *.sln すれば IDE が起動する
.NET 開発用に vo に用意
go.exe 風に Visual Studio のコマンドラインツール devenv.com をコールするツール。
これのセールスポイントは、2010~2019までのどの Visual Stdio を呼ぶべきかをカレントディレクトリの .sln ファイルから判断して、その devenv.com を自動的に探し出して呼び出せるところ(%PATH% の設定は不要)。
ところで、なぜ、こんなものを用意したかというと、Visual Studio でも C++ の場合は「バッチビルド」で Debug 版/Release版全部のビルドを一度にできたりするが、.NET の場合はそういうのがないためだ。Debug 版でテストして、Release版を提出する時に切り替えを間違えたりすることがよくある。だが、コマンドプロンプトから vo rebuild -a で、全コンフィギュレーションに対してリビルドをかければ間違いはない
Makefile ではなくて、make.cmd
- Go や devenv.com を使う限り、実はファイルのタイムスタンプを比較してコマンドを発行したりすることはほとんどない。
- nmake.exe , mingw32-make.exe はどの環境でも入っているわけでないし、コマンド名が長い
なので、バッチファイルで十分だったりする。自分は次のような make.cmd をよく用意する
setlocal
call :"%1"
endlocal
exit /b
:""
:"all"
vo rebuild -a
exit /b
:"debug"
vo build -d
exit /b
:"release"
vo build -r
exit /b
%1を"%1"のように二重引用符で囲んでいるのは、引数なしのmakeが実行された時も:""というラベルに飛べるようにするため DEATH !