Index: BUILD.gn |
diff --git a/BUILD.gn b/BUILD.gn |
index 6c6210c2c4a8845f90c7f6850c64633fa1d851ca..f9bd41e04fd0bef2df9595a443acad9b2ebe61a9 100644 |
--- a/BUILD.gn |
+++ b/BUILD.gn |
@@ -218,10 +218,19 @@ action("js2c") { |
sources += [ "src/i18n.js" ] |
} |
- args = |
- rebase_path(outputs, root_build_dir) + |
- [ "CORE", v8_compress_startup_data ] + |
- rebase_path(sources, root_build_dir) |
+ args = [ |
+ rebase_path("$target_gen_dir/libraries.cc", root_build_dir), |
+ "CORE", |
+ v8_compress_startup_data |
+ ] + rebase_path(sources, root_build_dir) |
+ |
+ if (v8_use_external_startup_data) { |
+ outputs += [ "$target_gen_dir/libraries.bin" ] |
+ args += [ |
+ "--startup_blob", |
+ rebase_path("$target_gen_dir/libraries.bin", root_build_dir) |
+ ] |
+ } |
} |
action("js2c_experimental") { |
@@ -250,10 +259,41 @@ action("js2c_experimental") { |
"$target_gen_dir/experimental-libraries.cc" |
] |
- args = |
- rebase_path(outputs, root_build_dir) + |
- [ "EXPERIMENTAL", v8_compress_startup_data ] + |
- rebase_path(sources, root_build_dir) |
+ args = [ |
+ rebase_path("$target_gen_dir/experimental-libraries.cc", root_build_dir), |
+ "EXPERIMENTAL", |
+ v8_compress_startup_data |
+ ] + rebase_path(sources, root_build_dir) |
+ |
+ if (v8_use_external_startup_data) { |
+ outputs += [ "$target_gen_dir/libraries_experimental.bin" ] |
+ args += [ |
+ "--startup_blob", |
+ rebase_path("$target_gen_dir/libraries_experimental.bin", root_build_dir) |
+ ] |
+ } |
+} |
+ |
+action("natives_blob") { |
+ visibility = ":*" # Only targets in this file can depend on this. |
+ |
+ deps = [ |
+ ":js2c", |
+ ":js2c_experimental" |
+ ] |
+ |
+ sources = [ |
+ "$target_gen_dir/libraries.bin", |
+ "$target_gen_dir/libraries_experimental.bin" |
+ ] |
+ |
+ outputs = [ |
+ "$root_gen_dir/natives_blob.bin" |
+ ] |
+ |
+ script = "tools/concatenate-files.py" |
+ |
+ args = rebase_path(sources + outputs, root_build_dir) |
} |
action("postmortem-metadata") { |
@@ -291,14 +331,21 @@ action("run_mksnapshot") { |
"root_out_dir") + "/mksnapshot", |
root_build_dir), |
"--log-snapshot-positions", |
- "--logfile", rebase_path("$target_gen_dir/snapshot.log", root_build_dir) |
+ "--logfile", rebase_path("$target_gen_dir/snapshot.log", root_build_dir), |
+ rebase_path("$target_gen_dir/snapshot.cc", root_build_dir) |
] |
if (v8_random_seed != "0") { |
args += [ "--random-seed", v8_random_seed ] |
} |
- args += rebase_path(outputs, root_build_dir) |
+ if (v8_use_external_startup_data) { |
+ outputs += [ "$root_gen_dir/snapshot_blob.bin" ] |
+ args += [ |
+ "--startup_blob", |
+ rebase_path("$root_gen_dir/snapshot_blob.bin", root_build_dir) |
+ ] |
+ } |
} |
@@ -353,6 +400,29 @@ source_set("v8_snapshot") { |
configs += [ ":internal_config", ":features", ":toolchain" ] |
} |
+source_set("v8_external_snapshot") { |
+ visibility = ":*" # Only targets in this file can depend on this. |
+ |
+ deps = [ |
+ ":js2c", |
+ ":js2c_experimental", |
+ ":generate_trig_table", |
+ ":run_mksnapshot", |
+ ":v8_base", |
+ ":natives_blob", |
+ ] |
+ |
+ sources = [ |
+ "$target_gen_dir/trig-table.cc", |
+ "src/natives-external.cc", |
+ "src/snapshot-external.cc", |
+ ] |
+ |
+ configs -= [ "//build/config/compiler:chromium_code" ] |
+ configs += [ "//build/config/compiler:no_chromium_code" ] |
+ configs += [ ":internal_config", ":features", ":toolchain" ] |
+} |
+ |
source_set("v8_base") { |
visibility = ":*" # Only targets in this file can depend on this. |
@@ -1024,7 +1094,12 @@ component("v8") { |
"src/v8dll-main.cc", |
] |
- if (v8_use_snapshot) { |
+ if (v8_use_external_startup_data) { |
+ deps = [ |
+ ":v8_base", |
+ ":v8_external_snapshot", |
+ ] |
+ } else if (v8_use_snapshot) { |
deps = [ |
":v8_base", |
":v8_snapshot", |
@@ -1050,7 +1125,12 @@ component("v8") { |
} else { |
group("v8") { |
- if (v8_use_snapshot) { |
+ if (v8_use_external_startup_data) { |
+ deps = [ |
+ ":v8_base", |
+ ":v8_external_snapshot", |
+ ] |
+ } else if (v8_use_snapshot) { |
deps = [ |
":v8_base", |
":v8_snapshot", |