mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
107 lines
2.8 KiB
Plaintext
107 lines
2.8 KiB
Plaintext
|
# 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.
|
||
|
|
||
|
# 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("//tools/v8_context_snapshot/v8_context_snapshot.gni")
|
||
|
|
||
|
import("//build/config/c++/c++.gni")
|
||
|
import("//build/config/compiler/compiler.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 (use_v8_context_snapshot) {
|
||
|
public_deps = [
|
||
|
":generate_v8_context_snapshot",
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
config("use_v8_context_snapshot") {
|
||
|
if (use_v8_context_snapshot) {
|
||
|
defines = [ "USE_V8_CONTEXT_SNAPSHOT" ]
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (use_v8_context_snapshot) {
|
||
|
action("generate_v8_context_snapshot") {
|
||
|
script = "//build/gn_run_binary.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.
|
||
|
#
|
||
|
# ICF breaks 1:1 mappings of the external references for V8 snapshot, so we
|
||
|
# disable it while taking a V8 snapshot.
|
||
|
config("disable_icf") {
|
||
|
visibility = [ ":*" ] # Only targets in this file can depend on this.
|
||
|
if (is_win) {
|
||
|
ldflags = [ "/OPT:NOICF" ] # link.exe, but also lld-link.exe.
|
||
|
} else if (use_gold || use_lld) {
|
||
|
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 && (is_component_build || using_sanitizer) &&
|
||
|
use_custom_libcxx) {
|
||
|
deps += [ "//buildtools/third_party/libc++:libc++" ]
|
||
|
}
|
||
|
|
||
|
configs += [
|
||
|
"//v8:external_startup_data",
|
||
|
":disable_icf",
|
||
|
]
|
||
|
}
|
||
|
}
|