| # Copyright 2017 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Targets in ths file are to take a V8 context snapshot on build time. |
| # Created V8 context snapshot is used in |
| # third_party/WebKit/Source/bindings/core/v8/V8ContextSnapshot.{cpp|h}. |
| # to speedup creating a V8 context and setting up around it. |
| |
| import("//build/config/chromecast_build.gni") |
| import("//build/config/chromeos/ui_mode.gni") |
| import("//build/config/v8_target_cpu.gni") |
| import("//v8/gni/v8.gni") |
| |
| declare_args() { |
| # TODO(crbug.com/764576): Enable the feature on more environments. |
| # Disable in mac and win cross builds since building Blink twice is slow. |
| use_v8_context_snapshot = |
| !is_chromeos && !is_android && !is_castos && !is_fuchsia && |
| # Android may build for both 64 bit and 32bit. When this happens, the |
| # v8_target_cpu will not equal the target_cpu (for example, |
| # v8_target_cpu == "arm" but target_os == "arm64"). |
| (v8_target_cpu == target_cpu || target_os == "android") && |
| !(host_toolchain == default_toolchain && is_msan) && |
| !(is_win && host_os != "win") && !(is_mac && host_os != "mac") |
| |
| # We use a different filename for arm64 macOS builds so that the arm64 and |
| # x64 snapshots can live side-by-side in a universal macOS app. |
| if (is_mac) { |
| if (v8_target_cpu == "x64") { |
| v8_context_snapshot_filename = "v8_context_snapshot.x86_64.bin" |
| } else if (v8_target_cpu == "arm64") { |
| v8_context_snapshot_filename = "v8_context_snapshot.arm64.bin" |
| } |
| } else if (target_os == "android") { |
| if (v8_current_cpu == "arm" || v8_current_cpu == "x86" || |
| v8_current_cpu == "mipsel") { |
| v8_context_snapshot_filename = "v8_context_snapshot_32.bin" |
| } else { |
| v8_context_snapshot_filename = "v8_context_snapshot_64.bin" |
| } |
| } else { |
| v8_context_snapshot_filename = "v8_context_snapshot.bin" |
| } |
| } |
| |
| # We cannot use V8 context snapshot, if V8 doesn't use snapshot files. |
| if (use_v8_context_snapshot && !v8_use_external_startup_data) { |
| use_v8_context_snapshot = false |
| } |