Windows7でWebKitの開発

ご無沙汰してました。
初のまともな記事としてWindows7でのWebKitの開発についてちょこちょこと書いてみたいと思います。
ブログの書き方にも慣れていないので見づらくなってしまうかもしれませんがご容赦ください。


WebKit は、SafariGoogle Chrome に使われてるいるオープンソースのHTMLレンダリングエンジンです。についてはこちら。
http://webkit.org/

メニューの「Working with the Code」の中に細かいところは書いてありますので、基本はそれに沿っていきます。


1. Visual C++ 2005 Express Edition のインストール
公式ではもう配布していないことになっていますが、以下のURLからまだダウンロードできます。

  • Visual C++ 2005 Express Edition

http://download.microsoft.com/download/8/E/8/8E85D539-2255-4CFD-AA97-440AE6C6F44A/vc.iso

  • Visual C++ 2005 Express Edition SP1

http://download.microsoft.com/download/7/7/3/7737290f-98e8-45bf-9075-85cc6ae34bf1/VS80sp1-KB926748-X86-INTL.exe

http://download.microsoft.com/download/9/7/a/97a5ac16-69ae-4672-b93e-40d66d77b278/5.2.3790.2075.51.PlatformSDK_Svr2003R2_rtm.img


IMG、ISO形式のファイルはいったんCDに焼くか、仮想化ツールを使ってインストールしてください。インストールが終わったら忘れずに Windows Update で最新にしておきましょう。


2. Cygwin のインストール
ソースの取得や各種スクリプトの実行用に Cygwin をインストールします。

WebKit に必要な Cygwin 本体や必要なライブラリをダウンロードしてくれる cygwin-downloader が配布されているので下記URLでダウンローします。

http://svn.webkit.org/repository/webkit/trunk/WebKitTools/CygwinDownloader/cygwin-downloader.zip

  • 任意のフォルダに解凍して cygwin-downloader.exe を実行します。

  • ダウンロードが始まり、終わると setup.exe ができていますので、実行してインストールします。

  • インストール方法は、さきほどダウンロードしたファイルを使うので「Install from Loacal Directory」を選択します。

  • 途中エラーダイアログのようなものがでますが、ただのメッセージなので無視します。

あとはどんどん次へ進めてください。Windows7なのでインストール終了後にプログラムの互換性アシスタント (PCA) のダイアログが立ち上がりますが、「このプログラムは正しくインストールされました」を選択して完了です。


3. Quick Time SDK のインストール
以下のURLから「QuickTime 7.3 SDK for Windows (ZIP)」をダウンロードしてインストールしてください。ダウンロードには Apple ID が必要です。
http://developer.apple.com/quicktime/download/


4. Safari のインストール
動作チェック用に Safari が入っていない人はインストールしておきましょう!


5.ソースの取得
Cygwin を起動して Subversion からソースを取得します。(git を使う方法もありますが、とりあえずドキュメント通りに Subversion を使用します。)
※1.3Gぐらいあるので、手っ取り早くやりたいひとは Nightly Builds のソースを使ってください。(http://nightly.webkit.org/)

#Subversion を使ってソース取得
svn checkout http://svn.webkit.org/repository/webkit/trunk WebKit


ソースの取得には少し時間がかかりますが、無事に取得が終わったら WebKit Support Libraries.zip をダウンロードして、解凍せずにWebKit/ 配下に配置します。
http://developer.apple.com/opensource/internet/webkit_sptlib_agree.html


次にソースを最新にします。
※このコマンドで、他に必要な WebKitAuxiliaryLibrary.zip の取得や WEBKITOUTPUTDIR 環境変数の設定などを行ってくれるようです。

#最新ソースの取得と環境設定
WebKit/WebKitTools/Scripts/update-webkit


6. Build
最後に Visual C++ Expression Edition を立ち上げて WebKit/WebKit/win/WebKit.vcproj/WebKit.sln からプロジェクトを読み込みます。

※Visual C++ Express Edition では、ソリューションフォルダが読み込めませんでしたと出てフォルダの中身が見えない状態になるようです。Visual Studio 2005 では普通に読み込みできました。


あとは、事前にインストールした Microsoft Platform SDK for Windows Server 2003 R2 の各種パスを通します。

ツール>オプション>プロジェクトおよびソリューション>VC++ディレクト

  • 実行可能ファイル

[Microsoft Platform SDK for Windows Server 2003 R2 インストールフォルダ]\Bin

  • インクルードファイル

[Microsoft Platform SDK for Windows Server 2003 R2 インストールフォルダ]\Include

  • ライブラリファイル

[Microsoft Platform SDK for Windows Server 2003 R2 インストールフォルダ]\Lib


終わったらデバッグオプションで Debug を選択して、実行してください。
Debug 終了後にプログラムを選択するダイアログが出るので Safari.exe を指定します。
無事に Safari が立ち上がれば成功です!


コマンドラインから行う場合は、Cygwin から以下のコマンドを実行します。

#Build
WebKit/WebKitTools/Scripts/build-webkit --debug

#Safari の実行
WebKit/WebKitTools/Scripts/run-safari


以上で完了です!
あとはソースを眺めるなり、好きにいじくるなりごゆるりと。
次回は、ソースの中身を見れたら良いなということで、今日はこのへんで。

追記:環境次第ではコマンドラインのビルドがうまくいかない可能性があるようです。要追試。