Windows で WebKit を build する。

Build 用ツールの準備

SDK の設定

http://msdn.microsoft.com/en-us/library/ms235626(VS.80).aspx

C:\Program Files\Microsoft SDK\Bin と書いてあるが、違う場合があるので Program Files ディレクトリを覗いて確認する。

プロジェクトのプロパティで追加しないこと。Include の順番がかわってエラーになる場合がある。

Build 手順

update するまえに http://build.webkit.org/waterfall をチェック

svn update と違い、update-webkit は追加ファイルのダウンロードをする

WebKitLibraries/win/WebKitChangesToPthreads.diff
WebKitLibraries/win/WebKitAuxiliaryLibrary.headers
WebKitLibraries/win/include/libxslt
WebKitLibraries/win/include/SQLite
WebKitLibraries/win/include/unicode
WebKitLibraries/win/include/libxml
WebKitLibraries/win/include/pthreads
WebKitLibraries/win/lib/libxslt.lib
WebKitLibraries/win/lib/pthreadVC2.lib
WebKitLibraries/win/lib/SQLite3.lib
WebKitLibraries/win/lib/icuin.lib
WebKitLibraries/win/lib/icuuc.lib
WebKitLibraries/win/lib/libxml2.lib

このへん

update-webkit-auxiliary-libs を実行すればいい。

build-webkit を使っても VC++ の GUI を使ってもできる。

ガイドに載っている手順以外に必要だった変更

WebKitSupportLibraries.zip に含まれる win/includes/ColorSyncDeprecated.h は ASCII でない文字を含んでいて、VC++ がエラーを起こす。"BeginMatching" で検索すれば見つかるので取り除いてから WebKitLibraries にコピーする。そのあと VC++ の GUI を起動して build。

build-webkit スクリプトは update-webkit-support-libs を呼び、WebKitSupportLibrary.zip の MD5 をチェックするので、アーカイブに含まれる ColorSyncDeprecated.h を修正した場合は update-webkit-support-libs のチェックを自分で外すしかない。

win/WebCoreLocalizedStrings.cpp に UTF-8 の文字で掛け算記号が入っていてここでもとまる。これはエスケープシーケンスに置き換える。

VC++ の GUI を使う

WebKit\win\WebKit.vcproj\WebKit.sln をダブルクリックして立ち上げ。ただし、build-webkit が設定してくれる環境変数を自分で設定する必要がある。

設定例

加えて WebKitSupportLibrary.zip と WebKitAuxiliaryLibrary.zip の展開が必要。

WebKitSupportLibrary.zip で入るのはこのへん

WebKitLibraries/win/include/CoreFoundation
WebKitLibraries/win/include/TargetConditionals.h
WebKitLibraries/win/include/SafariTheme
WebKitLibraries/win/include/stdint.h
WebKitLibraries/win/include/CoreServices
WebKitLibraries/win/include/AssertMacros.h
WebKitLibraries/win/include/stdbool.h
WebKitLibraries/win/include/unistd.h
WebKitLibraries/win/include/AvailabilityInternal.h
WebKitLibraries/win/include/ConditionalMacros.h
WebKitLibraries/win/include/Availability.h
WebKitLibraries/win/include/CFNetwork
WebKitLibraries/win/include/inttypes.h
WebKitLibraries/win/include/AvailabilityMacros.h
WebKitLibraries/win/include/ApplicationServices
WebKitLibraries/win/include/CoreGraphics
WebKitLibraries/win/include/ImageIO
WebKitLibraries/win/include/ColorSync
WebKitLibraries/win/include/xlocale.h
WebKitLibraries/win/include/checkint.h
WebKitLibraries/win/lib/CoreFoundation.lib
WebKitLibraries/win/lib/CFNetwork.lib
WebKitLibraries/win/lib/SafariTheme.lib
WebKitLibraries/win/lib/CoreGraphics.lib

以下を実行すればいい

update-webkit-support-libs
update-webkit-auxiliary-libs

ソリューション構成を Debug (最初は Debug_Cairo になっている) に直すのを忘れずに

かかる時間

Core 2 Duo E8500 / RAM 4GB (ただし 32-bit Windows XP) / Visual C++ 2005 Express でこのぐらい

% time build-webkit --debug
...
===========================================================
 WebKit is now built. To run Safari with this newly-built
...
build-webkit --debug  0.69s user 0.17s system 0% cpu 18:31.19 total

どうもビルドできない

エラーいろいろ

デバッグ・実行

掃除

svn status --no-ignore

で確認

find . | grep "vcproj\\.[^/]*\\.user$" | xargs rm
rm WebKit/win/WebKit.vcproj/WebKit.ncb
rm WebKit/win/WebKit.vcproj/WebKit.suo
rm WebKit/win/WebKit.vcproj/tmp.obj
rm WebCore/WebCore.vcproj/tmp.obj

suo は Solution User Options file

ncb は IntelliSense 用データストア http://msdn.microsoft.com/en-us/library/ms379615(VS.80).aspx

複数の checkout を使う

export PATH=/cygdrive/c/wk1_svn_cygwin/WebKitTools/Scripts:$PATH
export WEBKITLIBRARIESDIR=C:\\wk1_svn_cygwin\\WebKitLibraries\\win
export WEBKITOUTPUTDIR=C:\\wk1_svn_cygwin\\WebKitBuild

などと書いたファイルを用意して作業前に source して使い分ける。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-11-07 (土) 04:27:55