Chromium Code Reviews| Index: tools/v8_context_snapshot/BUILD.gn |
| diff --git a/tools/v8_context_snapshot/BUILD.gn b/tools/v8_context_snapshot/BUILD.gn |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..8f2e78a751cdc22057cc277c613d2d0dde1e05a1 |
| --- /dev/null |
| +++ b/tools/v8_context_snapshot/BUILD.gn |
| @@ -0,0 +1,90 @@ |
| +# Copyright 2017 The Chromium Authors. All rights reserved. |
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
|
Nico
2017/07/11 18:59:39
add a comment giving a short overview of what this
peria
2017/07/12 02:38:37
Done.
|
| +import("//build/config/c++/c++.gni") |
| +import("//v8/snapshot_toolchain.gni") |
| + |
| +if (is_android) { |
| + import("//build/config/android/rules.gni") |
| +} |
| + |
| +if (is_android) { |
| + android_assets("v8_context_snapshot_assets") { |
| + deps = [ |
| + ":v8_context_snapshot", |
| + ] |
| + sources = [ |
| + "$root_out_dir/v8_context_snapshot.bin", |
| + ] |
| + disable_compression = true |
| + } |
| +} |
| + |
| +group("v8_context_snapshot") { |
| + if (!is_chromeos) { |
| + public_deps = [ |
| + ":generate_v8_context_snapshot", |
| + ] |
| + } |
| +} |
| + |
| +if (!is_chromeos) { |
| + action("generate_v8_context_snapshot") { |
| + script = "run.py" |
| + output_file = "$root_out_dir/v8_context_snapshot.bin" |
| + output_path = rebase_path(output_file, root_build_dir) |
| + |
| + args = [ |
| + "./" + rebase_path( |
| + get_label_info( |
| + ":v8_context_snapshot_generator($v8_snapshot_toolchain)", |
| + "root_out_dir") + "/v8_context_snapshot_generator", |
| + root_build_dir), |
| + "--output_file=$output_path", |
| + ] |
| + |
| + outputs = [ |
| + output_file, |
| + ] |
| + |
| + deps = [ |
| + ":v8_context_snapshot_generator($v8_snapshot_toolchain)", |
| + ] |
| + } |
| + |
| + # This config disables a link time optimization "ICF", which may merge different |
| + # functions into one if the function signature and body of them are identical. |
|
Nico
2017/07/11 18:59:39
why?
peria
2017/07/12 02:38:37
The reason to disable ICF is on #83-84.
|
| + config("disable_icf") { |
| + visibility = [ ":*" ] # Only targets in this file can depend on this. |
| + if (is_win) { |
| + ldflags = [ "/OPT:NOICF" ] |
| + } else if (is_posix && !is_mac) { |
| + ldflags = [ "-Wl,--icf=none" ] |
| + } |
| + } |
| + |
| + executable("v8_context_snapshot_generator") { |
| + sources = [ |
| + "v8_context_snapshot_generator.cc", |
| + ] |
| + |
| + deps = [ |
| + "//gin:gin", |
| + "//mojo/edk/system:system", |
| + "//third_party/WebKit/public:blink", |
| + "//v8", |
| + ] |
| + |
| + if (is_linux) { |
| + deps += [ "//buildtools/third_party/libc++:libcxx_proxy" ] |
| + } |
| + |
| + # Link time optimization "ICF" breaks 1:1 mappings of the external references |
| + # for V8 snapshot. So, we disable it while taking a V8 snapshot. |
|
Nico
2017/07/11 18:59:39
Aha. Put this comment at the end of the comment on
peria
2017/07/12 02:38:37
Done.
|
| + configs += [ |
| + "//v8:external_startup_data", |
| + ":disable_icf", |
| + ] |
| + } |
| +} |