VC++2010 ExpressでV8をビルドするお話

ちょっと所用でV8をWindowsでビルドすることになったんだけど、
2012年6月時点でweb上に書かれている方法でやっても上手くいきません。
んで、うまくいく方法を調査したので以下に書きます。



ここの方法そのままではうまくビルドできない
http://code.google.com/p/v8/wiki/BuildingWithGYP

前提

VCは2010 Expressです。
GYPってのを使います。
SConsはもうメンテナンスされていないため使いません。



必要なもの


※2012/07/15 追記 cygwinのインストール要りませんでした。vc以外でインストールが必要なのはpythonのみ(ただし供述のthird_party/cygwinのチェックアウトは必要です)


手順(概要)

cygwinいれる
pythonいれる
pythonパスを通す



必要なソースを落とす
(Unixっぽい記述でかいてますけど全部windows上の話です)

 $ svn checkout http://v8.googlecode.com/svn/trunk/ v8
 $ cd v8
 $ mkdir -p build/gyp
 $ svn co http://gyp.googlecode.com/svn/trunk build/gyp
 $ mkdir -p third_party/cygwin
 $ svn co http://src.chromium.org/svn/trunk/deps/third_party/cygwin third_party/cygwin 
 ※リビジョン 66844 でチェックアウトすること
 $ cp /tmp/vcxproj_include_path_replacer.py .


cygwinターミナル立ち上げて
cygwinファイルシステム上から C:\等にアクセスしたい場合は/cygdrive以下にマウントされているので/cygdriveからパスを始める

 $ cd /cygdrive/c/Users/bravewood/Desktop/v8
 $ build/gyp_v8
 $ python vcxproj_include_path_replacer.py > replace.log


build/all.sln をダブルクリックして開く
F7でソリューション全体をビルド

ビルド結果が

 ========== ビルド: 16 正常終了、0 失敗、0 更新不要、0 スキップ ==========

みたいにエラーなければOK


実行してみる

d8 (v8のシェル)を実行してみたい場合は
\build\Debug\d8.exe
を立ち上げる

V8 version 3.11.10.4 [console: dumb]
d8> var i = 1 + 100;
d8> print( i );
101
d8>quit()

enjoy !