[gn] Add swarming support
BUG=chromium:474921 Review-Url: https://codereview.chromium.org/2034633004 Cr-Commit-Position: refs/heads/master@{#36694}
This commit is contained in:
parent
f6d47317a0
commit
928dd32993
17
BUILD.gn
17
BUILD.gn
@ -12,19 +12,12 @@ if (is_android) {
|
||||
}
|
||||
|
||||
import("gni/v8.gni")
|
||||
import("gni/isolate.gni")
|
||||
import("//build_overrides/v8.gni")
|
||||
|
||||
import("snapshot_toolchain.gni")
|
||||
|
||||
declare_args() {
|
||||
# Enable the snapshot feature, for fast context creation.
|
||||
# http://v8project.blogspot.com/2015/09/custom-startup-snapshots.html
|
||||
v8_use_snapshot = true
|
||||
|
||||
# Use external files for startup data blobs:
|
||||
# the JS builtins sources and the start snapshot.
|
||||
v8_use_external_startup_data = !is_ios
|
||||
|
||||
# Sets -DVERIFY_HEAP.
|
||||
v8_enable_verify_heap = false
|
||||
|
||||
@ -2148,6 +2141,14 @@ executable("d8") {
|
||||
}
|
||||
}
|
||||
|
||||
v8_isolate_run("d8") {
|
||||
deps = [
|
||||
":d8",
|
||||
]
|
||||
|
||||
isolate = "//src/d8.isolate"
|
||||
}
|
||||
|
||||
if (want_v8_shell) {
|
||||
executable("v8_shell") {
|
||||
sources = [
|
||||
|
159
gni/isolate.gni
Normal file
159
gni/isolate.gni
Normal file
@ -0,0 +1,159 @@
|
||||
# Copyright 2016 the V8 project authors. All rights reserved.
|
||||
# Use of this source code is governed by a BSD-style license that can be
|
||||
# found in the LICENSE file.
|
||||
|
||||
import("//build/config/sanitizers/sanitizers.gni")
|
||||
import("v8.gni")
|
||||
|
||||
declare_args() {
|
||||
# Sets the test isolation mode (noop|prepare|check).
|
||||
v8_test_isolation_mode = "noop"
|
||||
}
|
||||
|
||||
template("v8_isolate_run") {
|
||||
# Remember target name as within the action scope the target name will be
|
||||
# different.
|
||||
name = target_name
|
||||
if (name != "" && invoker.isolate != "" && invoker.deps != [] &&
|
||||
v8_test_isolation_mode != "noop") {
|
||||
action(name + "_run") {
|
||||
deps = invoker.deps
|
||||
|
||||
script = "tools/isolate_driver.py"
|
||||
|
||||
sources = [
|
||||
invoker.isolate,
|
||||
]
|
||||
|
||||
inputs = [
|
||||
# Files that are known to be involved in this step.
|
||||
"tools/swarming_client/isolate.py",
|
||||
"tools/swarming_client/run_isolated.py",
|
||||
]
|
||||
|
||||
outputs = [
|
||||
"$root_out_dir/$name.isolated",
|
||||
]
|
||||
|
||||
# Translate gn to gyp variables.
|
||||
if (is_asan) {
|
||||
asan = "1"
|
||||
} else {
|
||||
asan = "0"
|
||||
}
|
||||
if (is_msan) {
|
||||
msan = "1"
|
||||
} else {
|
||||
msan = "0"
|
||||
}
|
||||
if (is_tsan) {
|
||||
tsan = "1"
|
||||
} else {
|
||||
tsan = "0"
|
||||
}
|
||||
if (is_cfi) {
|
||||
cfi_vptr = "1"
|
||||
} else {
|
||||
cfi_vptr = "0"
|
||||
}
|
||||
if (use_custom_libcxx) {
|
||||
custom_libcxx = "1"
|
||||
} else {
|
||||
custom_libcxx = "0"
|
||||
}
|
||||
if (target_cpu == "x86") {
|
||||
target_arch = "ia32"
|
||||
} else {
|
||||
target_arch = target_cpu
|
||||
}
|
||||
if (is_debug) {
|
||||
configuration_name = "Debug"
|
||||
} else {
|
||||
configuration_name = "Release"
|
||||
}
|
||||
if (is_component_build) {
|
||||
component = "shared_library"
|
||||
} else {
|
||||
component = "static_library"
|
||||
}
|
||||
if (icu_use_data_file) {
|
||||
icu_use_data_file_flag = "1"
|
||||
} else {
|
||||
icu_use_data_file_flag = "0"
|
||||
}
|
||||
if (v8_use_external_startup_data) {
|
||||
use_external_startup_data = "1"
|
||||
} else {
|
||||
use_external_startup_data = "0"
|
||||
}
|
||||
if (v8_use_snapshot) {
|
||||
use_snapshot = "1"
|
||||
} else {
|
||||
use_snapshot = "0"
|
||||
}
|
||||
|
||||
args = [
|
||||
v8_test_isolation_mode,
|
||||
"--isolated",
|
||||
rebase_path("$root_out_dir/$name.isolated", root_build_dir),
|
||||
"--isolate",
|
||||
rebase_path(invoker.isolate, root_build_dir),
|
||||
|
||||
# Path variables are used to replace file paths when loading a .isolate
|
||||
# file
|
||||
"--path-variable",
|
||||
"DEPTH",
|
||||
rebase_path("//", root_build_dir),
|
||||
"--path-variable",
|
||||
"PRODUCT_DIR",
|
||||
rebase_path(root_out_dir, root_build_dir),
|
||||
|
||||
# TODO(machenbach): Set variables for remaining features.
|
||||
"--config-variable",
|
||||
"CONFIGURATION_NAME=$configuration_name",
|
||||
"--config-variable",
|
||||
"OS=$target_os",
|
||||
"--config-variable",
|
||||
"asan=$asan",
|
||||
"--config-variable",
|
||||
"cfi_vptr=$cfi_vptr",
|
||||
"--config-variable",
|
||||
"gcmole=0",
|
||||
"--config-variable",
|
||||
"has_valgrind=0",
|
||||
"--config-variable",
|
||||
"icu_use_data_file_flag=$icu_use_data_file_flag",
|
||||
"--config-variable",
|
||||
"msan=$msan",
|
||||
"--config-variable",
|
||||
"tsan=$tsan",
|
||||
"--config-variable",
|
||||
"coverage=0",
|
||||
"--config-variable",
|
||||
"sanitizer_coverage=0",
|
||||
"--config-variable",
|
||||
"component=$component",
|
||||
"--config-variable",
|
||||
"target_arch=$target_arch",
|
||||
"--config-variable",
|
||||
"use_custom_libcxx=$custom_libcxx",
|
||||
"--config-variable",
|
||||
"v8_use_external_startup_data=$use_external_startup_data",
|
||||
"--config-variable",
|
||||
"v8_use_snapshot=$use_snapshot",
|
||||
]
|
||||
|
||||
if (is_win) {
|
||||
args += [
|
||||
"--config-variable",
|
||||
"msvs_version=2013",
|
||||
]
|
||||
} else {
|
||||
args += [
|
||||
"--config-variable",
|
||||
"msvs_version=0",
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -5,6 +5,14 @@
|
||||
import("//build/config/sanitizers/sanitizers.gni")
|
||||
|
||||
declare_args() {
|
||||
# Enable the snapshot feature, for fast context creation.
|
||||
# http://v8project.blogspot.com/2015/09/custom-startup-snapshots.html
|
||||
v8_use_snapshot = true
|
||||
|
||||
# Use external files for startup data blobs:
|
||||
# the JS builtins sources and the start snapshot.
|
||||
v8_use_external_startup_data = !is_ios
|
||||
|
||||
# V8 generates code for this architecture. If v8_target_arch differs from
|
||||
# target_cpu, a simulator will be run.
|
||||
v8_target_arch = ""
|
||||
|
Loading…
Reference in New Issue
Block a user