WebKit は、世界的に認められた優れたオープンソース ブラウザ カーネルです。高速なレンダリング速度、柔軟性とカスタマイズ、マルチプラットフォームのサポートという利点があります。国内の有名なMaxthonとUCWebはブラウザコアとしてWebKitを選択しています。 Google と Apple は、それぞれ WebKit に基づいて Chrome ブラウザと Safari ブラウザのみを構築しました。
WebKit はプログラマーにますます受け入れられていますが、そのコンパイル プロセスは非常に面倒です。以下に、WebKit コードのコンパイルにおける私の経験を共有します。
1) WebKit ソースコードを入手する
WebKit ソース コードは、Subversion ツールを使用して管理されます。したがって、Subversion クライアントを使用している人は誰でも、 http://svn.webkit.org/repository/webkit/trunkからソース コードを入手できます。ただし、これは最良の方法ではありません。実際のコンパイルプロセス中に svn 経由で取得したコードは、多くの問題を引き起こす可能性があります。したがって、WebKit の Nightly ビルドから WebKit ソース コードの tarball を直接ダウンロードすることをお勧めします。具体的なアドレスは次のとおりです: http://nightly.webkit.org/builds/trunk/src/1 WebKit ほどの大規模なプロジェクトが、依然として Daily Build の原則に従っていることは驚くべきことです。
この記事の執筆時点では、WebKit ソース コードのバージョンは r52221 ですが、過去 2 日間、このバージョンの WebKit を正常にコンパイルできませんでした。その理由は、Visual Studio 2005 を使用してプロジェクトを開いてから数分後に、Visual Studio 2005 が応答を停止するためです。 5 から始まる最初のバージョンであるバージョン r50006 をテストしましたが、そのような問題はありません。バージョン番号が大きいほどソース コードは新しくなり、その逆も同様です。
2) WebKitコンパイル環境の構築
WebKit の Web サイトには、Windows プラットフォームでの WebKit の環境構築を説明した記事があります: http://webkit.org/building/tools.html しかし、この記事はあまりにも単純すぎます。これは、WebKit が人々を最も破壊する場所です。何十回もの失敗を経て、ついに目標への近道を見つけました。
ハードウェア
2G 以上のメモリを搭載したコンピュータを見つけるのが最善です。 WebKit プロジェクトは大きすぎるため、数百の .obj ファイルが生成されます。リンク動作を行う場合、約1.6Gのメモリが必要となります。マシンに Vista などのメモリを大量に消費するオペレーティング システムがインストールされている場合は、link.exe が「メモリ不足」を通知するまで待ちます。 Vista をインストールしたマシンのメモリは 2G しかなく、何度かリンクを試みましたが失敗し、最終的にはセーフ モードでコンパイルすることになりました (ネットワーク カード ドライバーをロードする勇気さえありませんでした)。ピークメモリが 1.99G に達したとき、ついにテストに合格しました。とても興奮しています。
もちろん、ハードディスクは大きければ大きいほど良いのです。WebKit ソース コードは拡張後に 160M ~ 190M のディスク領域を占有し、コンパイル プロセスで生成される中間ファイルには約 4G の記憶領域が必要になるからです。 Cygwin Visual Studio などによって占有されるディスク容量に加えて、これらは非常に大きくなります。 最も重要なことは、システム ディスク上に約 4G のスペースを確保することです。
実際、マルチコア CPU の使用は WebKit のコンパイルにも有益であり、コンパイル スクリプトで cl.exe を呼び出して同時に WebKit をコンパイルできるため、コンパイル時間が大幅に短縮されます。
ソフトウェア
まず、Visual Studio 2005 SP1 をインストールする必要があります。Vista または Windows 7 の場合は、Vista 用の SP1 アップデートをインストールする必要があります。 Visual C++ 2005 Express も WebKit をコンパイルできますが、Platform SDK を別途インストールする必要があります。 実践により、WebKit をコンパイルしてプラットフォーム 5.0 6.0 に渡すことができることが証明されました。
これにより、Visual Studio 2008 が既にマシンにインストールされている場合はどうなるのかという疑問も生じます。 心配しないでください。Visual Studio 2005 と Visual Studio 2008 は共存でき、Visual Studio 2008 の後に Visual Studio 2005 をインストールできます。ただし、Visual Studio 2008 の後に Visual Studio 2005 がインストールされた場合、WebKit の Perl スクリプトは「System DiskProgram FilesMicrosoft Visual Studio」にのみ移動して VC bin フォルダー (つまり、 cl .exe) を検索することに注意してください。フォルダ)。インストールした VS 2005 がシステム ディスク上にない場合は、VC bin フォルダをシステム ディスク上のディレクトリにコピーする必要があります。
Visual Studio 2005 をインストールした後、別の大きな Cygwin をインストールする必要があります。 Cygwin は実際に Windows 上で Unix 環境をシミュレートします。 Cygwin をインストールするときは、Cygwin Web サイトにある setup.exe ファイルを直接使用しないことをお勧めします。代わりに、WebKit.org Web サイトにある cygwin-downloader ツールを使用してください。 cygwin-downloader は、Perl、zlib、bash など、WebKit のコンパイルに必要な 101 のツール (現在はさらにいくつかある可能性があります) をダウンロードします。ダウンロードが完了したら、Cygwin のインストール ツール Setup.exe を実行し、ローカル ディレクトリからのインストールを選択します。ご注意ください! Cygwin はシステム ディスク パーティションにインストールする必要があります。C ドライブがシステム ディスクの場合、Cygwin は C:cygwin にインストールする必要があります。インストールが完了すると、約数百メガバイトのスペースが必要になります。
次に、インストールする必要があるのは、QuickTime SDK です。 QuickTime SDK をインストールする必要はないという人もいますが、インストールしないと WebKit ソリューションの QTMovie プロジェクトが正常にコンパイルされないことがわかりました。 QuickTime はシステム ディスクのProgram FilesQucikTime SDK にインストールする必要があります。インストール パスは変更しないでください。
最後に、WebKit ソース コード ファイルを解凍した後、webKit.org サイトにアクセスして WebKitSupportLibrary.zip ファイルをダウンロードする必要があります。このファイルは、Windows プラットフォーム上の一部のサードパーティ ライブラリのプリコンパイルされたバージョンです。 WebKit にリンクするときに使用します。ダウンロード後、zip ファイルを解凍する必要はなく、WebKit のルート ディレクトリに直接配置できます。
コンパイル手順
1) 環境変数を設定します。 WEBKITLIBRARIESDIR を WebKit ソース コード ディレクトリWebKitLibrarieswin パスに設定し、WEBKITOUTPUTDIR を obj と dll を保存する出力フォルダーに設定します。 もちろん、このフォルダーが配置されるパーティションには少なくとも 4G の空き領域が必要です。
2) 更新スクリプトを実行します。 デスクトップで cygwin コマンド ライン ウィンドウを実行し、CD コマンド (DOS CD コマンドと同じ) を使用して、WebKit ソース コード ディレクトリWebKitToolsScripts フォルダーにジャンプします。たとえば、私の WebKit ソース コードは F ドライブ (cd F:/WebKit/WebKitTools/Scripts/) に配置されており、このディレクトリで 2 つのスクリプト Update-WebKit および Update-WebKit-Support-libs を実行します。 このステップは多くのブログでは言及されていませんが、実際、このステップがコンパイルを成功させる鍵となります。
3) 上記 2 つの手順を正常に実行した後、Visual Studio 2005 を使用して、WebKit ソース コード ディレクトリ WebKitwinWebKit.vcproj ディレクトリにある WebKit.sln ソリューションを開くことができます。この sln には、デフォルトで Debug、Debug_all、Debug_Cairo、Release、Debug_Internal、および Release_Cairo の 6 つのコンパイル構成が付属しています。 Release でコンパイルされたバージョンは、Safari のものと一致する Apple 独自のレンダリング エンジンを使用します。 Release_Cairo でコンパイルされたバージョンは Cairo レンダリング エンジンをサポートします。このバージョンは Apple の環境に関係なく実行できますが、Apple の Safari 環境では実行できません。コンパイルが成功したかどうかを監視するには、WinLauncher.exe アプリケーションを使用して、テスト用に WebKit をロードします。
とりあえずここに書いておきますので、また何か思いついたら追記していきます。