How to compile the smallest possible V8 library for Windows?

混江龙づ霸主 提交于 2019-11-30 09:18:13

There is a page Building with GYP in the V8 wiki. In brief, you should use GYP to generate a Visual Studio solution and then build it.

  1. Install Python, Subversion client; make it available from a command line.
  2. Open Visual Studio Command Prompt, do next steps there.
  3. Fetch V8 sources into some directory, say it would be named v8-build:

    svn checkout http://v8.googlecode.com/svn/trunk v8-build

for the recent version (either some tagged version, for example http://v8.googlecode.com/svn/tags/3.28.57)

  1. On Windows you need Cygwin: svn checkout http://src.chromium.org/svn/trunk/deps/third_party/cygwin@66844 v8-build/third_party/cygwin

(see actual URL in a v8-build/DEPS file)

  1. Fetch GYP:

    svn checkout http://gyp.googlecode.com/svn/trunk@1831 v8-build/gyp

  2. Optionally fetch ICU:

    svn checkout https://src.chromium.org/svn/trunk/deps/third_party/icu46@258359 v8-build/third_party/icu

  3. Make tools available in the command line:

    • set CYGWIN_ROOT=%cd%\v8-build\third_party\cygwin
    • set PATH=%CYGWIN_ROOT%\bin;%PATH%
    • set PYTHONPATH=%cd%\v8-build\gyp\pylib
    • v8-build\third_party\cygwin\setup_mount.bat
    • v8-build\third_party\cygwin\setup_env.bat
  4. Run GYP with desired options:

    python v8-build\build\gyp_v8 -Dcomponent=static_library -Dtarget_arch=x64 -v8_enable_i18n_support=0 -Dv8_use_snapshot=0

(see allowed variables in v8-build\build\features.gypi)

  1. Build generated project with Visual Studio using the Cygwin environment:

    msbuild /m /p:UseEnv=true /p:Configuration=Release /p:Platform=x64 v8-build\tools\gyp\v8.vcxproj

  2. Result libraries should be in the v8-build\build directory

I use a Python script to automate the steps above.

Update: I use similar script to build NuGet packages for V8, and here is it: https://github.com/pmed/v8-nuget/blob/master/build.py

cnexans

I know this post is quite old, but I'm going to improve pmed's answer. I'm assuming you have Python installed in your windows machine (just install it from the official page and add the Python root directory to your PATH variable) and also Git-Bash. I will be using "~/" to represent your user directory.

The easiest way to compile V8 is using depot tools, just create a directory, let's say ~/devtools/google, use git-bash to run

cd ~/devtools/google
git clone git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

Then add ~/devtools/google/depot_tools to your PATH variable.

Use Power Shell to run

cd ~/devtools/google
fetch v8

That will clone the files of the V8 engine and all its dependencies gyp, cygwin, etc.

At this point you can follow the pmed's answer from step 7, just change the directories for the environment variables:

I'm using Path-to-your-installation\v8\ to represent ~/devtools/google/v8

CYGWIN_ROOT=Path-to-your-installation\v8\third_party\cygwin
PATH=%CYGWIN_ROOT%\bin;%PATH%
PYTHONPATH=Path-to-your-installation\v8\build\gyp\pylib

Then run (in PowerShell) Path-to-your-installation\v8\build\third_party\cygwin\setup_mount.bat Path-to-your-installation\v8\build\third_party\cygwin\setup_env.bat

The visual studio project will be located in Path-to-your-installation\v8\tools\gyp*

You can just open the v8 project with Visual Studio and compile it.

I had hard times trying to figure out why "fetch v8" fails somehow in Git-bash, appearently, you must use PowerShell (maybe the classic cmd too?)

PS: If you have problems compiling (unable to remap [...] cygncurses-8.dll) take a look at this post https://superuser.com/questions/194529/cygwin-fatal-error-unable-to-remap-what-does-it-mean

Regards.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!