make.batを書いてDelphiアプリケーションのビルドを行う

仕事でWindows用アプリケーションを作ることになり、最近あまりPythonを書いてない。
趣味開発以外でDelphiを使うのは初めてなのだけど、vimに慣れてしまうとDelphiIDEのエディタでは使いづらく感じるようになってしまった。
gvim+コマンドプロンプトで開発をしたいので、dcc32コマンドを使ってコンパイルをする。
コンパイルオプションを指定する必要があるため、バッチファイルを書くことにした。dcc32.cfgを書くという手もあるが、標準的な環境でコンパイルできるようにしたいのであえてそうしない。
バッチファイルをちゃんと書くのも初めてだな。

make.bat

@echo off
if "%1" == "" goto debug
if "%1" == "debug" goto debug
if "%1" == "release" goto release
if "%1" == "test" goto test
echo syntax: make [debug^|release^|test]
goto endbuild

:debug
rem Debug build
echo == Debug Build ==
dcc32 -D"DEBUG;CONSOLE_DEBUG" -U"C:\Program Files\CodeGear\RAD Studio\6.0\lib\Indy10" MyProject.dpr
goto endbuild

:release
rem Release build
echo == Release Build ==
dcc32 -U"C:\Program Files\CodeGear\RAD Studio\6.0\lib\Indy10" MyProject.dpr
goto endbuild

:test
rem Test
echo == Run Test ==
echo building tests...
dcc32 -D"CONSOLE_TESTRUNNER;DEBUG;CONSOLE_DEBUG" -U"C:\Program Files\CodeGear\RAD Studio\6.0\lib\Indy10" Tests\MyProjectTest.dpr
echo;
echo running tests...
Tests\MyProjectTest.exe
goto endbuild

:endbuild
rem End

バッチファイルの名前を"make.bat"にしたのは、打ちやすいから。最初は"build.bat"にしてたのだけど左右の指で交互に打てる"make"の文字のほうが楽。

make
make test
make release

のようにオプションを指定して、動作を切り替えるようにしてる。testの場合はDUnitのテストプロジェクトをビルドして実行してる。
まだ一ヶ月経ってないけども、そこそこDelphiによる開発のノウハウを身につけた気がする。気がするだけかもしれないけども・・・。

Delphi2009でSQLiteを使う

Delphi2009でSQLiteを使いたい。コンポーネントインストールの不要なSQLiteのラッパーが都合良くある。
http://www.itwriting.com/blog/a-simple-delphi-wrapper-for-sqlite-3
一応サンプルはDelphi2009でもコンパイルできて動作するのだが、思ったとおり日本語周りがうまくいかない。ソースを見た感じでは、2009の場合はUTF8Stringを渡してもだめなようだ。
というわけで、手元の2009環境で都合よく使えるように書き換えました。Delphi2009以外での動作は無視。bitbucketに置いてます。
http://bitbucket.org/tokibito/sqlite-simple-delphi2009/
ライセンスについてはオリジナルのほうのページで商用でも好きにしてよいとコメントで書かれているので、同様にご自由にどうぞ。
入力も出力もほぼstring(unicode)で扱えます。SQLiteAPIに渡す直前でUTF8Stringへコンバートしています。