v8chromiumembedded-v8gyp

How to build V8 without "external startup data"?


I want a standalone JavaScript library for embedding. I already build V8 and its working correctly, but binary needs two "external data" files. I don want this files.

I was trying to build V8 without "external startup data". I tried to set v8_use_external_startup_data : 0, in build.common.gypi and build/standalone.gypi, but then make is reporting failure at some point.

I'm using following code to build v8:

git clone https://chromium.googlesource.com/chromium/tool/depot_tools.git
export PATH=`pwd`/depot_tools:"$PATH"
fetch v8
gclient sync
cd v8
git checkout branch-heads/5.1
# ... modifying gyni files
make x64.release -j 20

I'm using default, static linking. How I can build V8 without need of natives_blob.bin and snapshot_blog.bin ?


Solution

  • When using the GYP build process (as you seem to be), pass the argument -Dv8_use_snapshot=false when invoking gyp. That turns off building snapshot data, and you won't need "natives_blob.bin" and "snapshot_blob.bin". My command-line looks like this (for V8 5.3, n.b. the GYP scripts have moved recently):

    python.exe gypfiles\gyp_v8 -Dtarget_arch=x64 -Dcomponent=shared_library -Dv8_enable_i18n_support=false -Dv8_use_snapshot=false -G msvs_version=2013