たぷつきません

おなかがでてきた。もうたぷついてるやん。

SWTビルドふたたび

SWTのJNIメソッド追加によるビルドを、マッサラのWindowsからやることになったが、自分のブログがちゃんとログとして機能してなかった。今後のために少し詳細に手順を書く。

いくつかの前提条件
  • x86の場合のみとする。x86_64やia64は説明の対象としない。
  • eclipseは3.4.1の場合のみとする。他は未確認。
  • 便宜上、作業ディレクトリを c:\swt_build_work とする。
インストールしておくもの
対象となる改修内容
  • swtのソースにnativeメソッド定義を追記するなどネイティブライブラリの再構築が必要なケース。

 例)

その他の準備
  1. C:\swt_build_work に、initenv.bat というファイルを作成しておく。
  2. eclipse/plugins/org.eclipse.swt.win32.win32.x86_3.4.1.v3449c.jar をZIP展開してあらわれる、swt-win32-3449.dllをC:\swt_build_work にコピーしておく。

initenv.batのファイル内容

set SWT_BUILDDIR=C:\swt_build_work
set DEV_TOOLS=%SWT_BUILDDIR%
junction %SWT_BUILDDIR%\msvc6 "c:\Program Files\Microsoft Visual Studio"
junction %SWT_BUILDDIR%\platformsdk "C:\Program Files\Microsoft Platform SDK"
set MSSDK=%SWT_BUILDDIR%\platformsdk
JNIソースの生成とビルドの手順
  1. swt.toolsをチェックアウトしてswtプロジェクトと並べてワークスペースに置く。
  2. リストアップされる内容が重複しないようにするためのパッチあてをswt.toolsにする。
  3. eclipse上で実行するのは、swt.toolsの中のJNIGeneratorAppUIクラスのmainになる。これを実行構成のJava Applicationで定義して、VM引数 に以下を記述する。-Dswt.library.path=C:\swt_build_work
  4. 適用して実行すると、画面が出るので [Generate Natives]ボタンをクリックする。
  5. 実行後は、JNIGeneratorAppUI画面の[Output Dir]が示すとおり、swtプロジェクト内の[Eclipse SWT PI/win32]/library/の中のファイルが幾つか更新されるので、コマンドプロンプトからそのディレクトリ内に移動する。
  6. eclipseを終了する。
  7. コマンドラインから、C:\swt_build_work\initenv.bat を実行。そのまま、eclipseを起動。
  8. swtプロジェクトと同列に、org.eclipse.swt.win32.win32.x86 というディレクトリを作成する。ビルドしたdllはここに出力される。
  9. http://www.eclipse.org/swt/jnigen.php にある手順どおり*1に Ant Buildを実行。

*1:Antをeclipse起動中の同じJREにして、実行後にワークスペースをリフレッシュするという設定