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

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



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

前提

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



必要なもの

  • VC++2010 Express
  • cygwin
    • all installすると1日かかりますw
  • python
    • 自分はPython 2.7.3をインストールしました
    • PATH通しておいてください
  • includeパス修正スクリプト
  • V8ソース
  • GYPソース

  • ※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 !