summaryrefslogtreecommitdiff
path: root/deps/v8/BUILD.gn
diff options
context:
space:
mode:
authorRefael Ackermann <refack@gmail.com>2019-05-28 08:46:21 -0400
committerRefael Ackermann <refack@gmail.com>2019-06-01 09:55:12 -0400
commited74896b1fae1c163b3906163f3bf46326618ddb (patch)
tree7fb05c5a19808e0c5cd95837528e9005999cf540 /deps/v8/BUILD.gn
parent2a850cd0664a4eee51f44d0bb8c2f7a3fe444154 (diff)
downloadandroid-node-v8-ed74896b1fae1c163b3906163f3bf46326618ddb.tar.gz
android-node-v8-ed74896b1fae1c163b3906163f3bf46326618ddb.tar.bz2
android-node-v8-ed74896b1fae1c163b3906163f3bf46326618ddb.zip
deps: update V8 to 7.5.288.22
PR-URL: https://github.com/nodejs/node/pull/27375 Reviewed-By: Michaƫl Zasso <targos@protonmail.com> Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
Diffstat (limited to 'deps/v8/BUILD.gn')
-rw-r--r--deps/v8/BUILD.gn1076
1 files changed, 772 insertions, 304 deletions
diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn
index 7a50b192f0..10fee26420 100644
--- a/deps/v8/BUILD.gn
+++ b/deps/v8/BUILD.gn
@@ -88,9 +88,18 @@ declare_args() {
# Enable embedded builtins.
v8_enable_embedded_builtins = true
+ # Enable the registration of unwinding info for Windows/x64.
+ v8_win64_unwinding_info = false
+
# Enable code comments for builtins in the snapshot (impacts performance).
v8_enable_snapshot_code_comments = false
+ # Enable native counters from the snapshot (impacts performance, sets
+ # -dV8_SNAPSHOT_NATIVE_CODE_COUNTERS).
+ # This option will generate extra code in the snapshot to increment counters,
+ # as per the --native-code-counters flag.
+ v8_enable_snapshot_native_code_counters = ""
+
# Enable code-generation-time checking of types in the CodeStubAssembler.
v8_enable_verify_csa = false
@@ -127,6 +136,10 @@ declare_args() {
# Use Siphash as added protection against hash flooding attacks.
v8_use_siphash = false
+ # Use Perfetto (https://perfetto.dev) as the default TracingController. Not
+ # currently implemented.
+ v8_use_perfetto = false
+
# Switches off inlining in V8.
v8_no_inline = false
@@ -171,6 +184,9 @@ declare_args() {
# setting the "check_v8_header_includes" gclient variable to run a
# specific hook).
v8_check_header_includes = false
+
+ # Enable sharing read-only space across isolates.
+ v8_enable_shared_ro_heap = false
}
# We reuse the snapshot toolchain for building torque and other generators to
@@ -205,6 +221,9 @@ if (v8_check_microtasks_scopes_consistency == "") {
v8_check_microtasks_scopes_consistency =
v8_enable_debugging_features || dcheck_always_on
}
+if (v8_enable_snapshot_native_code_counters == "") {
+ v8_enable_snapshot_native_code_counters = v8_enable_debugging_features
+}
assert(v8_current_cpu != "x86" || !v8_untrusted_code_mitigations,
"Untrusted code mitigations are unsupported on ia32")
@@ -214,6 +233,9 @@ assert(!v8_enable_lite_mode || v8_enable_embedded_builtins,
assert(!v8_enable_lite_mode || v8_use_snapshot,
"Lite mode requires a snapshot build")
+assert(v8_use_snapshot || !v8_enable_shared_ro_heap,
+ "Nosnapshot builds are not supported with shared read-only heap enabled")
+
v8_random_seed = "314159265"
v8_toolset_for_shell = "host"
@@ -336,6 +358,9 @@ config("features") {
}
defines +=
[ "V8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=${v8_typed_array_max_size_in_heap}" ]
+ if (v8_enable_raw_heap_snapshots) {
+ defines += [ "V8_ENABLE_RAW_HEAP_SNAPSHOTS" ]
+ }
if (v8_enable_future) {
defines += [ "V8_ENABLE_FUTURE" ]
}
@@ -385,6 +410,9 @@ config("features") {
}
if (v8_use_snapshot) {
defines += [ "V8_USE_SNAPSHOT" ]
+ if (v8_enable_snapshot_native_code_counters) {
+ defines += [ "V8_SNAPSHOT_NATIVE_CODE_COUNTERS" ]
+ }
}
if (v8_use_external_startup_data) {
defines += [ "V8_USE_EXTERNAL_STARTUP_DATA" ]
@@ -404,6 +432,15 @@ config("features") {
if (v8_use_siphash) {
defines += [ "V8_USE_SIPHASH" ]
}
+ if (v8_enable_shared_ro_heap) {
+ defines += [ "V8_SHARED_RO_HEAP" ]
+ }
+ if (v8_use_perfetto) {
+ defines += [ "V8_USE_PERFETTO" ]
+ }
+ if (v8_win64_unwinding_info) {
+ defines += [ "V8_WIN64_UNWINDING_INFO" ]
+ }
}
config("toolchain") {
@@ -608,15 +645,7 @@ config("toolchain") {
}
if (is_clang) {
- cflags += [
- "-Wmissing-field-initializers",
-
- # TODO(thakis): Remove once enabled globally, https://crbug.com/926235
- "-Wextra-semi",
-
- # TODO(hans): Remove once http://crbug.com/428099 is resolved.
- "-Winconsistent-missing-override",
- ]
+ cflags += [ "-Wmissing-field-initializers" ]
if (v8_current_cpu != "mips" && v8_current_cpu != "mipsel") {
# We exclude MIPS because the IsMipsArchVariant macro causes trouble.
@@ -670,29 +699,17 @@ config("toolchain") {
}
}
-config("default_optimization") {
- if (is_debug && !v8_optimized_debug) {
- configs = [ "//build/config/compiler:no_optimize" ]
- } else {
- # TODO(crbug.com/621335) Rework this so that we don't have the confusion
- # between "optimize_speed" and "optimize_max".
- if (((is_posix && !is_android) || is_fuchsia) && !using_sanitizer) {
- configs = [ "//build/config/compiler:optimize_speed" ]
- } else {
- configs = [ "//build/config/compiler:optimize_max" ]
- }
- }
-}
-
-# For code that is only run a few times during the build, C++ optimizations
-# are a waste of time.
-config("unoptimized_initializer") {
+# For code that is hot during mksnapshot. In fast-mksnapshot builds, we
+# optimize some files even in debug builds to speed up mksnapshot times.
+config("always_optimize") {
configs = [ ":internal_config" ]
- if (using_sanitizer) {
- # Some sanitizers rely on optimizations.
- configs += [ ":default_optimization" ]
+
+ # TODO(crbug.com/621335) Rework this so that we don't have the confusion
+ # between "optimize_speed" and "optimize_max".
+ if (((is_posix && !is_android) || is_fuchsia) && !using_sanitizer) {
+ configs += [ "//build/config/compiler:optimize_speed" ]
} else {
- configs += [ "//build/config/compiler:no_optimize" ]
+ configs += [ "//build/config/compiler:optimize_max" ]
}
}
@@ -913,6 +930,7 @@ torque_files = [
"src/builtins/array-reduce.tq",
"src/builtins/array-reduce-right.tq",
"src/builtins/array-reverse.tq",
+ "src/builtins/array-shift.tq",
"src/builtins/array-slice.tq",
"src/builtins/array-some.tq",
"src/builtins/array-splice.tq",
@@ -920,17 +938,29 @@ torque_files = [
"src/builtins/collections.tq",
"src/builtins/data-view.tq",
"src/builtins/extras-utils.tq",
- "src/builtins/object-fromentries.tq",
"src/builtins/iterator.tq",
+ "src/builtins/object-fromentries.tq",
+ "src/builtins/proxy.tq",
+ "src/builtins/proxy-constructor.tq",
+ "src/builtins/proxy-revocable.tq",
+ "src/builtins/proxy-revoke.tq",
+ "src/builtins/regexp.tq",
+ "src/builtins/regexp-replace.tq",
"src/builtins/string-endswith.tq",
+ "src/builtins/string-html.tq",
+ "src/builtins/string-repeat.tq",
"src/builtins/string-startswith.tq",
"src/builtins/typed-array.tq",
"src/builtins/typed-array-createtypedarray.tq",
+ "src/builtins/typed-array-every.tq",
"src/builtins/typed-array-filter.tq",
+ "src/builtins/typed-array-find.tq",
+ "src/builtins/typed-array-findindex.tq",
"src/builtins/typed-array-foreach.tq",
"src/builtins/typed-array-reduce.tq",
"src/builtins/typed-array-reduceright.tq",
"src/builtins/typed-array-slice.tq",
+ "src/builtins/typed-array-some.tq",
"src/builtins/typed-array-subarray.tq",
"test/torque/test-torque.tq",
"third_party/v8/builtins/array-sort.tq",
@@ -948,6 +978,7 @@ torque_namespaces = [
"array-map",
"array-of",
"array-reverse",
+ "array-shift",
"array-slice",
"array-splice",
"array-unshift",
@@ -959,15 +990,24 @@ torque_namespaces = [
"growable-fixed-array",
"iterator",
"object",
+ "proxy",
+ "regexp",
+ "regexp-replace",
"string",
+ "string-html",
+ "string-repeat",
"test",
"typed-array",
"typed-array-createtypedarray",
+ "typed-array-every",
"typed-array-filter",
+ "typed-array-find",
+ "typed-array-findindex",
"typed-array-foreach",
"typed-array-reduce",
"typed-array-reduceright",
"typed-array-slice",
+ "typed-array-some",
"typed-array-subarray",
]
@@ -989,6 +1029,7 @@ action("run_torque") {
outputs = [
"$target_gen_dir/torque-generated/builtin-definitions-from-dsl.h",
"$target_gen_dir/torque-generated/class-definitions-from-dsl.h",
+ "$target_gen_dir/torque-generated/objects-printer-from-dsl.cc",
]
foreach(namespace, torque_namespaces) {
outputs += [
@@ -1010,6 +1051,14 @@ action("run_torque") {
}
}
+group("v8_maybe_icu") {
+ if (v8_enable_i18n_support) {
+ public_deps = [
+ "//third_party/icu",
+ ]
+ }
+}
+
v8_source_set("torque_generated_initializers") {
visibility = [ ":*" ] # Only targets in this file can depend on this.
@@ -1018,11 +1067,9 @@ v8_source_set("torque_generated_initializers") {
":run_torque",
]
- if (v8_enable_i18n_support) {
- public_deps = [
- "//third_party/icu",
- ]
- }
+ public_deps = [
+ ":v8_maybe_icu",
+ ]
sources = []
foreach(namespace, torque_namespaces) {
@@ -1032,8 +1079,26 @@ v8_source_set("torque_generated_initializers") {
]
}
- remove_configs = [ v8_path_prefix + ":default_optimization" ]
- configs = [ ":unoptimized_initializer" ]
+ configs = [ ":internal_config" ]
+}
+
+v8_source_set("torque_generated_definitions") {
+ visibility = [ ":*" ] # Only targets in this file can depend on this.
+
+ deps = [
+ ":generate_bytecode_builtins_list",
+ ":run_torque",
+ ]
+
+ public_deps = [
+ ":v8_maybe_icu",
+ ]
+
+ sources = [
+ "$target_gen_dir/torque-generated/objects-printer-from-dsl.cc",
+ ]
+
+ configs = [ ":internal_config" ]
}
action("generate_bytecode_builtins_list") {
@@ -1092,10 +1157,20 @@ template("run_mksnapshot") {
"root_out_dir") + "/mksnapshot",
root_build_dir),
"--turbo_instruction_scheduling",
+
+ # In cross builds, the snapshot may be generated for both the host and
+ # target toolchains. The same host binary is used to generate both, so
+ # mksnapshot needs to know which target OS to use at runtime. It's weird,
+ # but the target OS is really |current_os|.
+ "--target_os=$current_os",
]
args += invoker.args
+ if (v8_win64_unwinding_info) {
+ args += [ "--win64-unwinding-info" ]
+ }
+
if (v8_enable_embedded_builtins) {
outputs += [ "$target_gen_dir/embedded${suffix}.S" ]
args += [
@@ -1148,6 +1223,14 @@ template("run_mksnapshot") {
args += [ "--code-comments" ]
}
+ if (v8_enable_snapshot_native_code_counters) {
+ args += [ "--native-code-counters" ]
+ } else {
+ # --native-code-counters is the default in debug mode so make sure we can
+ # unset it.
+ args += [ "--no-native-code-counters" ]
+ }
+
if (v8_enable_fast_mksnapshot) {
args += [
"--no-turbo-rewrite-far-jumps",
@@ -1257,7 +1340,11 @@ v8_source_set("v8_nosnapshot") {
deps = [
":js2c_extras",
- ":v8_base",
+ ":torque_generated_initializers",
+ ]
+
+ public_deps = [
+ ":v8_maybe_icu",
]
sources = [
@@ -1280,12 +1367,13 @@ if (v8_use_snapshot && !v8_use_external_startup_data) {
deps = [
":js2c_extras",
- ":v8_base",
]
+
public_deps = [
# This should be public so downstream targets can declare the snapshot
# output file as their inputs.
":run_mksnapshot_default",
+ ":v8_maybe_icu",
]
# Do not publicize any header to remove build dependency.
@@ -1373,10 +1461,6 @@ v8_source_set("v8_initializers") {
":torque_generated_initializers",
]
- public_deps = [
- ":v8_base",
- ]
-
sources = [
### gcmole(all) ###
"src/builtins/builtins-arguments-gen.cc",
@@ -1510,8 +1594,7 @@ v8_source_set("v8_initializers") {
sources -= [ "src/builtins/builtins-intl-gen.cc" ]
}
- remove_configs = [ v8_path_prefix + ":default_optimization" ]
- configs = [ ":unoptimized_initializer" ]
+ configs = [ ":internal_config" ]
}
v8_source_set("v8_init") {
@@ -1525,11 +1608,10 @@ v8_source_set("v8_init") {
### gcmole(all) ###
"src/setup-isolate-full.cc",
]
- if (v8_enable_i18n_support) {
- public_deps = [
- "//third_party/icu",
- ]
- }
+
+ public_deps = [
+ ":v8_maybe_icu",
+ ]
configs = [ ":internal_config" ]
}
@@ -1585,7 +1667,277 @@ v8_header_set("v8_shared_internal_headers") {
]
}
-v8_source_set("v8_base") {
+v8_compiler_sources = [
+ "src/compiler/access-builder.cc",
+ "src/compiler/access-builder.h",
+ "src/compiler/access-info.cc",
+ "src/compiler/access-info.h",
+ "src/compiler/all-nodes.cc",
+ "src/compiler/all-nodes.h",
+ "src/compiler/allocation-builder-inl.h",
+ "src/compiler/allocation-builder.h",
+ "src/compiler/backend/code-generator-impl.h",
+ "src/compiler/backend/code-generator.cc",
+ "src/compiler/backend/code-generator.h",
+ "src/compiler/backend/frame-elider.cc",
+ "src/compiler/backend/frame-elider.h",
+ "src/compiler/backend/gap-resolver.cc",
+ "src/compiler/backend/gap-resolver.h",
+ "src/compiler/backend/instruction-codes.h",
+ "src/compiler/backend/instruction-scheduler.cc",
+ "src/compiler/backend/instruction-scheduler.h",
+ "src/compiler/backend/instruction-selector-impl.h",
+ "src/compiler/backend/instruction-selector.cc",
+ "src/compiler/backend/instruction-selector.h",
+ "src/compiler/backend/instruction.cc",
+ "src/compiler/backend/instruction.h",
+ "src/compiler/backend/jump-threading.cc",
+ "src/compiler/backend/jump-threading.h",
+ "src/compiler/backend/live-range-separator.cc",
+ "src/compiler/backend/live-range-separator.h",
+ "src/compiler/backend/move-optimizer.cc",
+ "src/compiler/backend/move-optimizer.h",
+ "src/compiler/backend/register-allocator-verifier.cc",
+ "src/compiler/backend/register-allocator-verifier.h",
+ "src/compiler/backend/register-allocator.cc",
+ "src/compiler/backend/register-allocator.h",
+ "src/compiler/backend/unwinding-info-writer.h",
+ "src/compiler/basic-block-instrumentor.cc",
+ "src/compiler/basic-block-instrumentor.h",
+ "src/compiler/branch-elimination.cc",
+ "src/compiler/branch-elimination.h",
+ "src/compiler/bytecode-analysis.cc",
+ "src/compiler/bytecode-analysis.h",
+ "src/compiler/bytecode-graph-builder.cc",
+ "src/compiler/bytecode-graph-builder.h",
+ "src/compiler/bytecode-liveness-map.cc",
+ "src/compiler/bytecode-liveness-map.h",
+ "src/compiler/c-linkage.cc",
+ "src/compiler/checkpoint-elimination.cc",
+ "src/compiler/checkpoint-elimination.h",
+ "src/compiler/code-assembler.cc",
+ "src/compiler/code-assembler.h",
+ "src/compiler/common-node-cache.cc",
+ "src/compiler/common-node-cache.h",
+ "src/compiler/common-operator-reducer.cc",
+ "src/compiler/common-operator-reducer.h",
+ "src/compiler/common-operator.cc",
+ "src/compiler/common-operator.h",
+ "src/compiler/compilation-dependencies.cc",
+ "src/compiler/compilation-dependencies.h",
+ "src/compiler/compiler-source-position-table.cc",
+ "src/compiler/compiler-source-position-table.h",
+ "src/compiler/constant-folding-reducer.cc",
+ "src/compiler/constant-folding-reducer.h",
+ "src/compiler/control-equivalence.cc",
+ "src/compiler/control-equivalence.h",
+ "src/compiler/control-flow-optimizer.cc",
+ "src/compiler/control-flow-optimizer.h",
+ "src/compiler/dead-code-elimination.cc",
+ "src/compiler/dead-code-elimination.h",
+ "src/compiler/diamond.h",
+ "src/compiler/effect-control-linearizer.cc",
+ "src/compiler/effect-control-linearizer.h",
+ "src/compiler/escape-analysis-reducer.cc",
+ "src/compiler/escape-analysis-reducer.h",
+ "src/compiler/escape-analysis.cc",
+ "src/compiler/escape-analysis.h",
+ "src/compiler/frame-states.cc",
+ "src/compiler/frame-states.h",
+ "src/compiler/frame.cc",
+ "src/compiler/frame.h",
+ "src/compiler/functional-list.h",
+ "src/compiler/graph-assembler.cc",
+ "src/compiler/graph-assembler.h",
+ "src/compiler/graph-reducer.cc",
+ "src/compiler/graph-reducer.h",
+ "src/compiler/graph-trimmer.cc",
+ "src/compiler/graph-trimmer.h",
+ "src/compiler/graph-visualizer.cc",
+ "src/compiler/graph-visualizer.h",
+ "src/compiler/graph.cc",
+ "src/compiler/graph.h",
+ "src/compiler/int64-lowering.cc",
+ "src/compiler/int64-lowering.h",
+ "src/compiler/js-call-reducer.cc",
+ "src/compiler/js-call-reducer.h",
+ "src/compiler/js-context-specialization.cc",
+ "src/compiler/js-context-specialization.h",
+ "src/compiler/js-create-lowering.cc",
+ "src/compiler/js-create-lowering.h",
+ "src/compiler/js-generic-lowering.cc",
+ "src/compiler/js-generic-lowering.h",
+ "src/compiler/js-graph.cc",
+ "src/compiler/js-graph.h",
+ "src/compiler/js-heap-broker.cc",
+ "src/compiler/js-heap-broker.h",
+ "src/compiler/js-heap-copy-reducer.cc",
+ "src/compiler/js-heap-copy-reducer.h",
+ "src/compiler/js-inlining-heuristic.cc",
+ "src/compiler/js-inlining-heuristic.h",
+ "src/compiler/js-inlining.cc",
+ "src/compiler/js-inlining.h",
+ "src/compiler/js-intrinsic-lowering.cc",
+ "src/compiler/js-intrinsic-lowering.h",
+ "src/compiler/js-native-context-specialization.cc",
+ "src/compiler/js-native-context-specialization.h",
+ "src/compiler/js-operator.cc",
+ "src/compiler/js-operator.h",
+ "src/compiler/js-type-hint-lowering.cc",
+ "src/compiler/js-type-hint-lowering.h",
+ "src/compiler/js-typed-lowering.cc",
+ "src/compiler/js-typed-lowering.h",
+ "src/compiler/linkage.cc",
+ "src/compiler/linkage.h",
+ "src/compiler/load-elimination.cc",
+ "src/compiler/load-elimination.h",
+ "src/compiler/loop-analysis.cc",
+ "src/compiler/loop-analysis.h",
+ "src/compiler/loop-peeling.cc",
+ "src/compiler/loop-peeling.h",
+ "src/compiler/loop-variable-optimizer.cc",
+ "src/compiler/loop-variable-optimizer.h",
+ "src/compiler/machine-graph-verifier.cc",
+ "src/compiler/machine-graph-verifier.h",
+ "src/compiler/machine-graph.cc",
+ "src/compiler/machine-graph.h",
+ "src/compiler/machine-operator-reducer.cc",
+ "src/compiler/machine-operator-reducer.h",
+ "src/compiler/machine-operator.cc",
+ "src/compiler/machine-operator.h",
+ "src/compiler/memory-optimizer.cc",
+ "src/compiler/memory-optimizer.h",
+ "src/compiler/node-aux-data.h",
+ "src/compiler/node-cache.cc",
+ "src/compiler/node-cache.h",
+ "src/compiler/node-marker.cc",
+ "src/compiler/node-marker.h",
+ "src/compiler/node-matchers.cc",
+ "src/compiler/node-matchers.h",
+ "src/compiler/node-origin-table.cc",
+ "src/compiler/node-origin-table.h",
+ "src/compiler/node-properties.cc",
+ "src/compiler/node-properties.h",
+ "src/compiler/node.cc",
+ "src/compiler/node.h",
+ "src/compiler/opcodes.cc",
+ "src/compiler/opcodes.h",
+ "src/compiler/operation-typer.cc",
+ "src/compiler/operation-typer.h",
+ "src/compiler/operator-properties.cc",
+ "src/compiler/operator-properties.h",
+ "src/compiler/operator.cc",
+ "src/compiler/operator.h",
+ "src/compiler/osr.cc",
+ "src/compiler/osr.h",
+ "src/compiler/per-isolate-compiler-cache.h",
+ "src/compiler/persistent-map.h",
+ "src/compiler/pipeline-statistics.cc",
+ "src/compiler/pipeline-statistics.h",
+ "src/compiler/pipeline.cc",
+ "src/compiler/pipeline.h",
+ "src/compiler/property-access-builder.cc",
+ "src/compiler/property-access-builder.h",
+ "src/compiler/raw-machine-assembler.cc",
+ "src/compiler/raw-machine-assembler.h",
+ "src/compiler/redundancy-elimination.cc",
+ "src/compiler/redundancy-elimination.h",
+ "src/compiler/refs-map.cc",
+ "src/compiler/refs-map.h",
+ "src/compiler/representation-change.cc",
+ "src/compiler/representation-change.h",
+ "src/compiler/schedule.cc",
+ "src/compiler/schedule.h",
+ "src/compiler/scheduler.cc",
+ "src/compiler/scheduler.h",
+ "src/compiler/select-lowering.cc",
+ "src/compiler/select-lowering.h",
+ "src/compiler/serializer-for-background-compilation.cc",
+ "src/compiler/serializer-for-background-compilation.h",
+ "src/compiler/simd-scalar-lowering.cc",
+ "src/compiler/simd-scalar-lowering.h",
+ "src/compiler/simplified-lowering.cc",
+ "src/compiler/simplified-lowering.h",
+ "src/compiler/simplified-operator-reducer.cc",
+ "src/compiler/simplified-operator-reducer.h",
+ "src/compiler/simplified-operator.cc",
+ "src/compiler/simplified-operator.h",
+ "src/compiler/state-values-utils.cc",
+ "src/compiler/state-values-utils.h",
+ "src/compiler/store-store-elimination.cc",
+ "src/compiler/store-store-elimination.h",
+ "src/compiler/type-cache.cc",
+ "src/compiler/type-cache.h",
+ "src/compiler/type-narrowing-reducer.cc",
+ "src/compiler/type-narrowing-reducer.h",
+ "src/compiler/typed-optimization.cc",
+ "src/compiler/typed-optimization.h",
+ "src/compiler/typer.cc",
+ "src/compiler/typer.h",
+ "src/compiler/types.cc",
+ "src/compiler/types.h",
+ "src/compiler/value-numbering-reducer.cc",
+ "src/compiler/value-numbering-reducer.h",
+ "src/compiler/verifier.cc",
+ "src/compiler/verifier.h",
+ "src/compiler/wasm-compiler.cc",
+ "src/compiler/wasm-compiler.h",
+ "src/compiler/zone-stats.cc",
+ "src/compiler/zone-stats.h",
+]
+
+# The src/compiler files with optimizations.
+v8_source_set("v8_compiler_opt") {
+ visibility = [ ":*" ] # Only targets in this file can depend on this.
+
+ sources = v8_compiler_sources
+
+ public_deps = [
+ ":generate_bytecode_builtins_list",
+ ":run_torque",
+ ":v8_maybe_icu",
+ ]
+
+ if (is_debug && !v8_optimized_debug && v8_enable_fast_mksnapshot) {
+ # The :no_optimize config is added to v8_add_configs in v8.gni.
+ remove_configs = [ "//build/config/compiler:no_optimize" ]
+ configs = [ ":always_optimize" ]
+ } else {
+ # Without this else branch, gn fails to generate build files for non-debug
+ # builds (because we try to remove a config that is not present).
+ # So we include it, even if this config is not used outside of debug builds.
+ configs = [ ":internal_config" ]
+ }
+}
+
+# The src/compiler files with default optimization behavior.
+v8_source_set("v8_compiler") {
+ visibility = [ ":*" ] # Only targets in this file can depend on this.
+
+ sources = v8_compiler_sources
+
+ public_deps = [
+ ":generate_bytecode_builtins_list",
+ ":run_torque",
+ ":v8_maybe_icu",
+ ]
+
+ configs = [ ":internal_config" ]
+}
+
+group("v8_compiler_for_mksnapshot") {
+ if (is_debug && !v8_optimized_debug && v8_enable_fast_mksnapshot) {
+ deps = [
+ ":v8_compiler_opt",
+ ]
+ } else {
+ deps = [
+ ":v8_compiler",
+ ]
+ }
+}
+
+v8_source_set("v8_base_without_compiler") {
visibility = [ ":*" ] # Only targets in this file can depend on this.
# Split static libraries on windows into two.
@@ -1741,222 +2093,6 @@ v8_source_set("v8_base") {
"src/compiler-dispatcher/optimizing-compile-dispatcher.h",
"src/compiler.cc",
"src/compiler.h",
- "src/compiler/access-builder.cc",
- "src/compiler/access-builder.h",
- "src/compiler/access-info.cc",
- "src/compiler/access-info.h",
- "src/compiler/all-nodes.cc",
- "src/compiler/all-nodes.h",
- "src/compiler/allocation-builder-inl.h",
- "src/compiler/allocation-builder.h",
- "src/compiler/backend/code-generator-impl.h",
- "src/compiler/backend/code-generator.cc",
- "src/compiler/backend/code-generator.h",
- "src/compiler/backend/frame-elider.cc",
- "src/compiler/backend/frame-elider.h",
- "src/compiler/backend/gap-resolver.cc",
- "src/compiler/backend/gap-resolver.h",
- "src/compiler/backend/instruction-codes.h",
- "src/compiler/backend/instruction-scheduler.cc",
- "src/compiler/backend/instruction-scheduler.h",
- "src/compiler/backend/instruction-selector-impl.h",
- "src/compiler/backend/instruction-selector.cc",
- "src/compiler/backend/instruction-selector.h",
- "src/compiler/backend/instruction.cc",
- "src/compiler/backend/instruction.h",
- "src/compiler/backend/jump-threading.cc",
- "src/compiler/backend/jump-threading.h",
- "src/compiler/backend/live-range-separator.cc",
- "src/compiler/backend/live-range-separator.h",
- "src/compiler/backend/move-optimizer.cc",
- "src/compiler/backend/move-optimizer.h",
- "src/compiler/backend/register-allocator-verifier.cc",
- "src/compiler/backend/register-allocator-verifier.h",
- "src/compiler/backend/register-allocator.cc",
- "src/compiler/backend/register-allocator.h",
- "src/compiler/backend/unwinding-info-writer.h",
- "src/compiler/basic-block-instrumentor.cc",
- "src/compiler/basic-block-instrumentor.h",
- "src/compiler/branch-elimination.cc",
- "src/compiler/branch-elimination.h",
- "src/compiler/bytecode-analysis.cc",
- "src/compiler/bytecode-analysis.h",
- "src/compiler/bytecode-graph-builder.cc",
- "src/compiler/bytecode-graph-builder.h",
- "src/compiler/bytecode-liveness-map.cc",
- "src/compiler/bytecode-liveness-map.h",
- "src/compiler/c-linkage.cc",
- "src/compiler/checkpoint-elimination.cc",
- "src/compiler/checkpoint-elimination.h",
- "src/compiler/code-assembler.cc",
- "src/compiler/code-assembler.h",
- "src/compiler/common-node-cache.cc",
- "src/compiler/common-node-cache.h",
- "src/compiler/common-operator-reducer.cc",
- "src/compiler/common-operator-reducer.h",
- "src/compiler/common-operator.cc",
- "src/compiler/common-operator.h",
- "src/compiler/compilation-dependencies.cc",
- "src/compiler/compilation-dependencies.h",
- "src/compiler/compiler-source-position-table.cc",
- "src/compiler/compiler-source-position-table.h",
- "src/compiler/constant-folding-reducer.cc",
- "src/compiler/constant-folding-reducer.h",
- "src/compiler/control-equivalence.cc",
- "src/compiler/control-equivalence.h",
- "src/compiler/control-flow-optimizer.cc",
- "src/compiler/control-flow-optimizer.h",
- "src/compiler/dead-code-elimination.cc",
- "src/compiler/dead-code-elimination.h",
- "src/compiler/diamond.h",
- "src/compiler/effect-control-linearizer.cc",
- "src/compiler/effect-control-linearizer.h",
- "src/compiler/escape-analysis-reducer.cc",
- "src/compiler/escape-analysis-reducer.h",
- "src/compiler/escape-analysis.cc",
- "src/compiler/escape-analysis.h",
- "src/compiler/frame-states.cc",
- "src/compiler/frame-states.h",
- "src/compiler/frame.cc",
- "src/compiler/frame.h",
- "src/compiler/functional-list.h",
- "src/compiler/graph-assembler.cc",
- "src/compiler/graph-assembler.h",
- "src/compiler/graph-reducer.cc",
- "src/compiler/graph-reducer.h",
- "src/compiler/graph-trimmer.cc",
- "src/compiler/graph-trimmer.h",
- "src/compiler/graph-visualizer.cc",
- "src/compiler/graph-visualizer.h",
- "src/compiler/graph.cc",
- "src/compiler/graph.h",
- "src/compiler/int64-lowering.cc",
- "src/compiler/int64-lowering.h",
- "src/compiler/js-call-reducer.cc",
- "src/compiler/js-call-reducer.h",
- "src/compiler/js-context-specialization.cc",
- "src/compiler/js-context-specialization.h",
- "src/compiler/js-create-lowering.cc",
- "src/compiler/js-create-lowering.h",
- "src/compiler/js-generic-lowering.cc",
- "src/compiler/js-generic-lowering.h",
- "src/compiler/js-graph.cc",
- "src/compiler/js-graph.h",
- "src/compiler/js-heap-broker.cc",
- "src/compiler/js-heap-broker.h",
- "src/compiler/js-heap-copy-reducer.cc",
- "src/compiler/js-heap-copy-reducer.h",
- "src/compiler/js-inlining-heuristic.cc",
- "src/compiler/js-inlining-heuristic.h",
- "src/compiler/js-inlining.cc",
- "src/compiler/js-inlining.h",
- "src/compiler/js-intrinsic-lowering.cc",
- "src/compiler/js-intrinsic-lowering.h",
- "src/compiler/js-native-context-specialization.cc",
- "src/compiler/js-native-context-specialization.h",
- "src/compiler/js-operator.cc",
- "src/compiler/js-operator.h",
- "src/compiler/js-type-hint-lowering.cc",
- "src/compiler/js-type-hint-lowering.h",
- "src/compiler/js-typed-lowering.cc",
- "src/compiler/js-typed-lowering.h",
- "src/compiler/linkage.cc",
- "src/compiler/linkage.h",
- "src/compiler/load-elimination.cc",
- "src/compiler/load-elimination.h",
- "src/compiler/loop-analysis.cc",
- "src/compiler/loop-analysis.h",
- "src/compiler/loop-peeling.cc",
- "src/compiler/loop-peeling.h",
- "src/compiler/loop-variable-optimizer.cc",
- "src/compiler/loop-variable-optimizer.h",
- "src/compiler/machine-graph-verifier.cc",
- "src/compiler/machine-graph-verifier.h",
- "src/compiler/machine-graph.cc",
- "src/compiler/machine-graph.h",
- "src/compiler/machine-operator-reducer.cc",
- "src/compiler/machine-operator-reducer.h",
- "src/compiler/machine-operator.cc",
- "src/compiler/machine-operator.h",
- "src/compiler/memory-optimizer.cc",
- "src/compiler/memory-optimizer.h",
- "src/compiler/node-aux-data.h",
- "src/compiler/node-cache.cc",
- "src/compiler/node-cache.h",
- "src/compiler/node-marker.cc",
- "src/compiler/node-marker.h",
- "src/compiler/node-matchers.cc",
- "src/compiler/node-matchers.h",
- "src/compiler/node-origin-table.cc",
- "src/compiler/node-origin-table.h",
- "src/compiler/node-properties.cc",
- "src/compiler/node-properties.h",
- "src/compiler/node.cc",
- "src/compiler/node.h",
- "src/compiler/opcodes.cc",
- "src/compiler/opcodes.h",
- "src/compiler/operation-typer.cc",
- "src/compiler/operation-typer.h",
- "src/compiler/operator-properties.cc",
- "src/compiler/operator-properties.h",
- "src/compiler/operator.cc",
- "src/compiler/operator.h",
- "src/compiler/osr.cc",
- "src/compiler/osr.h",
- "src/compiler/per-isolate-compiler-cache.h",
- "src/compiler/persistent-map.h",
- "src/compiler/pipeline-statistics.cc",
- "src/compiler/pipeline-statistics.h",
- "src/compiler/pipeline.cc",
- "src/compiler/pipeline.h",
- "src/compiler/property-access-builder.cc",
- "src/compiler/property-access-builder.h",
- "src/compiler/raw-machine-assembler.cc",
- "src/compiler/raw-machine-assembler.h",
- "src/compiler/redundancy-elimination.cc",
- "src/compiler/redundancy-elimination.h",
- "src/compiler/refs-map.cc",
- "src/compiler/refs-map.h",
- "src/compiler/representation-change.cc",
- "src/compiler/representation-change.h",
- "src/compiler/schedule.cc",
- "src/compiler/schedule.h",
- "src/compiler/scheduler.cc",
- "src/compiler/scheduler.h",
- "src/compiler/select-lowering.cc",
- "src/compiler/select-lowering.h",
- "src/compiler/serializer-for-background-compilation.cc",
- "src/compiler/serializer-for-background-compilation.h",
- "src/compiler/simd-scalar-lowering.cc",
- "src/compiler/simd-scalar-lowering.h",
- "src/compiler/simplified-lowering.cc",
- "src/compiler/simplified-lowering.h",
- "src/compiler/simplified-operator-reducer.cc",
- "src/compiler/simplified-operator-reducer.h",
- "src/compiler/simplified-operator.cc",
- "src/compiler/simplified-operator.h",
- "src/compiler/state-values-utils.cc",
- "src/compiler/state-values-utils.h",
- "src/compiler/store-store-elimination.cc",
- "src/compiler/store-store-elimination.h",
- "src/compiler/type-cache.cc",
- "src/compiler/type-cache.h",
- "src/compiler/type-narrowing-reducer.cc",
- "src/compiler/type-narrowing-reducer.h",
- "src/compiler/typed-optimization.cc",
- "src/compiler/typed-optimization.h",
- "src/compiler/typer.cc",
- "src/compiler/typer.h",
- "src/compiler/types.cc",
- "src/compiler/types.h",
- "src/compiler/value-numbering-reducer.cc",
- "src/compiler/value-numbering-reducer.h",
- "src/compiler/verifier.cc",
- "src/compiler/verifier.h",
- "src/compiler/wasm-compiler.cc",
- "src/compiler/wasm-compiler.h",
- "src/compiler/zone-stats.cc",
- "src/compiler/zone-stats.h",
"src/constant-pool.cc",
"src/constant-pool.h",
"src/constants-arch.h",
@@ -1966,6 +2102,7 @@ v8_source_set("v8_base") {
"src/conversions-inl.h",
"src/conversions.cc",
"src/conversions.h",
+ "src/counters-definitions.h",
"src/counters-inl.h",
"src/counters.cc",
"src/counters.h",
@@ -2268,7 +2405,6 @@ v8_source_set("v8_base") {
"src/objects/arguments.h",
"src/objects/bigint.cc",
"src/objects/bigint.h",
- "src/objects/builtin-function-id.h",
"src/objects/cell-inl.h",
"src/objects/cell.h",
"src/objects/code-inl.h",
@@ -2319,6 +2455,7 @@ v8_source_set("v8_base") {
"src/objects/js-collator.cc",
"src/objects/js-collator.h",
"src/objects/js-collection-inl.h",
+ "src/objects/js-collection-iterator.h",
"src/objects/js-collection.h",
"src/objects/js-date-time-format-inl.h",
"src/objects/js-date-time-format.cc",
@@ -2480,8 +2617,6 @@ v8_source_set("v8_base") {
"src/profiler/tick-sample.h",
"src/profiler/tracing-cpu-profiler.cc",
"src/profiler/tracing-cpu-profiler.h",
- "src/profiler/unbound-queue-inl.h",
- "src/profiler/unbound-queue.h",
"src/property-descriptor.cc",
"src/property-descriptor.h",
"src/property-details.h",
@@ -2650,6 +2785,7 @@ v8_source_set("v8_base") {
"src/turbo-assembler.h",
"src/type-hints.cc",
"src/type-hints.h",
+ "src/type-traits.h",
"src/unicode-cache.h",
"src/unicode-decoder.cc",
"src/unicode-decoder.h",
@@ -2695,7 +2831,7 @@ v8_source_set("v8_base") {
"src/wasm/function-compiler.h",
"src/wasm/graph-builder-interface.cc",
"src/wasm/graph-builder-interface.h",
- "src/wasm/js-to-wasm-wrapper-cache-inl.h",
+ "src/wasm/js-to-wasm-wrapper-cache.h",
"src/wasm/jump-table-assembler.cc",
"src/wasm/jump-table-assembler.h",
"src/wasm/leb-helper.h",
@@ -2726,7 +2862,8 @@ v8_source_set("v8_base") {
"src/wasm/wasm-feature-flags.h",
"src/wasm/wasm-features.cc",
"src/wasm/wasm-features.h",
- "src/wasm/wasm-import-wrapper-cache-inl.h",
+ "src/wasm/wasm-import-wrapper-cache.cc",
+ "src/wasm/wasm-import-wrapper-cache.h",
"src/wasm/wasm-interpreter.cc",
"src/wasm/wasm-interpreter.h",
"src/wasm/wasm-js.cc",
@@ -2840,7 +2977,9 @@ v8_source_set("v8_base") {
"src/x64/register-x64.h",
"src/x64/sse-instr.h",
]
- if (is_linux || is_mac) {
+ # iOS Xcode simulator builds run on an x64 target. iOS and macOS are both
+ # based on Darwin and thus POSIX-compliant to a similar degree.
+ if (is_linux || is_mac || is_ios) {
sources += [
"src/trap-handler/handler-inside-posix.cc",
"src/trap-handler/handler-inside-posix.h",
@@ -2852,6 +2991,8 @@ v8_source_set("v8_base") {
"src/trap-handler/handler-inside-win.cc",
"src/trap-handler/handler-inside-win.h",
"src/trap-handler/handler-outside-win.cc",
+ "src/unwinding-info-win64.cc",
+ "src/unwinding-info-win64.h",
]
}
} else if (v8_current_cpu == "arm") {
@@ -3046,6 +3187,7 @@ v8_source_set("v8_base") {
defines = []
deps = [
+ ":torque_generated_definitions",
":v8_headers",
":v8_libbase",
":v8_libsampler",
@@ -3057,10 +3199,10 @@ v8_source_set("v8_base") {
public_deps = [
":generate_bytecode_builtins_list",
":run_torque",
+ ":v8_maybe_icu",
]
if (v8_enable_i18n_support) {
- public_deps += [ "//third_party/icu" ]
if (is_win) {
deps += [ "//third_party/icu:icudata" ]
}
@@ -3119,6 +3261,13 @@ v8_source_set("v8_base") {
}
}
+group("v8_base") {
+ public_deps = [
+ ":v8_base_without_compiler",
+ ":v8_compiler",
+ ]
+}
+
v8_source_set("torque_base") {
visibility = [ ":*" ] # Only targets in this file can depend on this.
@@ -3161,13 +3310,26 @@ v8_source_set("torque_base") {
]
deps = [
- ":v8_libbase",
":v8_shared_internal_headers",
]
- configs = [ ":internal_config" ]
+ public_deps = [
+ ":v8_libbase",
+ ]
+
+ configs = [
+ ":internal_config",
+ "//build/config/compiler:exceptions",
+ "//build/config/compiler:rtti",
+ ]
+
+ remove_configs = [
+ "//build/config/compiler:no_exceptions",
+ "//build/config/compiler:no_rtti",
+ ]
+
if (is_win && is_asan) {
- remove_configs = [ "//build/config/sanitizers:default_sanitizer_flags" ]
+ remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ]
}
}
@@ -3185,13 +3347,23 @@ v8_source_set("torque_ls_base") {
"src/torque/ls/message.h",
]
- deps = [
+ public_deps = [
":torque_base",
]
- configs = [ ":internal_config" ]
+ configs = [
+ ":internal_config",
+ "//build/config/compiler:exceptions",
+ "//build/config/compiler:rtti",
+ ]
+
+ remove_configs = [
+ "//build/config/compiler:no_exceptions",
+ "//build/config/compiler:no_rtti",
+ ]
+
if (is_win && is_asan) {
- remove_configs = [ "//build/config/sanitizers:default_sanitizer_flags" ]
+ remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ]
}
}
@@ -3259,8 +3431,6 @@ v8_component("v8_libbase") {
"src/base/ring-buffer.h",
"src/base/safe_conversions.h",
"src/base/safe_conversions_impl.h",
- "src/base/safe_math.h",
- "src/base/safe_math_impl.h",
"src/base/small-vector.h",
"src/base/sys-info.cc",
"src/base/sys-info.h",
@@ -3352,7 +3522,7 @@ v8_component("v8_libbase") {
"src/base/debug/stack_trace_fuchsia.cc",
"src/base/platform/platform-fuchsia.cc",
]
- } else if (is_mac) {
+ } else if (is_mac || is_ios) {
sources += [
"src/base/debug/stack_trace_posix.cc",
"src/base/platform/platform-macos.cc",
@@ -3369,7 +3539,6 @@ v8_component("v8_libbase") {
libs = [
"dbghelp.lib",
- "shlwapi.lib",
"winmm.lib",
"ws2_32.lib",
]
@@ -3404,6 +3573,8 @@ v8_component("v8_libplatform") {
"src/libplatform/default-platform.h",
"src/libplatform/default-worker-threads-task-runner.cc",
"src/libplatform/default-worker-threads-task-runner.h",
+ "src/libplatform/delayed-task-queue.cc",
+ "src/libplatform/delayed-task-queue.h",
"src/libplatform/task-queue.cc",
"src/libplatform/task-queue.h",
"src/libplatform/tracing/trace-buffer.cc",
@@ -3429,6 +3600,9 @@ v8_component("v8_libplatform") {
":v8_headers",
":v8_libbase",
]
+ if (v8_use_perfetto) {
+ deps += [ "third_party/perfetto:libperfetto" ]
+ }
}
v8_source_set("v8_libsampler") {
@@ -3463,11 +3637,8 @@ v8_source_set("fuzzer_support") {
public_deps = [
":v8_libbase",
":v8_libplatform",
+ ":v8_maybe_icu",
]
-
- if (v8_enable_i18n_support) {
- public_deps += [ "//third_party/icu" ]
- }
}
###############################################################################
@@ -3493,6 +3664,27 @@ if (v8_monolithic) {
}
}
+v8_static_library("wee8") {
+ deps = [
+ ":v8_base",
+ ":v8_libbase",
+ ":v8_libplatform",
+ ":v8_libsampler",
+ ":v8_maybe_snapshot",
+ "//build/win:default_exe_manifest",
+ ]
+
+ # TODO: v8dll-main.cc equivalent for shared library builds
+
+ configs = [ ":internal_config" ]
+
+ sources = [
+ "src/wasm/c-api.cc",
+ "third_party/wasm-c-api/wasm.h",
+ "third_party/wasm-c-api/wasm.hh",
+ ]
+}
+
###############################################################################
# Executables
#
@@ -3533,7 +3725,8 @@ if (v8_use_snapshot && current_toolchain == v8_snapshot_toolchain) {
configs = [ ":internal_config" ]
deps = [
- ":v8_base",
+ ":v8_base_without_compiler",
+ ":v8_compiler_for_mksnapshot",
":v8_init",
":v8_libbase",
":v8_libplatform",
@@ -3543,6 +3736,8 @@ if (v8_use_snapshot && current_toolchain == v8_snapshot_toolchain) {
if (target_os == "fuchsia") {
defines = [ "V8_TARGET_OS_FUCHSIA" ]
+ } else if (target_os == "win") {
+ defines = [ "V8_TARGET_OS_WIN" ]
}
}
}
@@ -3560,9 +3755,19 @@ if (current_toolchain == v8_snapshot_toolchain) {
"//build/win:default_exe_manifest",
]
- configs = [ ":internal_config" ]
+ configs = [
+ ":internal_config",
+ "//build/config/compiler:exceptions",
+ "//build/config/compiler:rtti",
+ ]
+
+ remove_configs = [
+ "//build/config/compiler:no_exceptions",
+ "//build/config/compiler:no_rtti",
+ ]
+
if (is_win && is_asan) {
- remove_configs = [ "//build/config/sanitizers:default_sanitizer_flags" ]
+ remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ]
}
}
}
@@ -3580,9 +3785,19 @@ v8_executable("torque-language-server") {
"//build/win:default_exe_manifest",
]
- configs = [ ":internal_config" ]
+ configs = [
+ ":internal_config",
+ "//build/config/compiler:exceptions",
+ "//build/config/compiler:rtti",
+ ]
+
+ remove_configs = [
+ "//build/config/compiler:no_exceptions",
+ "//build/config/compiler:no_rtti",
+ ]
+
if (is_win && is_asan) {
- remove_configs = [ "//build/config/sanitizers:default_sanitizer_flags" ]
+ remove_configs += [ "//build/config/sanitizers:default_sanitizer_flags" ]
}
}
@@ -3973,11 +4188,9 @@ v8_source_set("wasm_module_runner") {
":run_torque",
]
- if (v8_enable_i18n_support) {
- public_deps = [
- "//third_party/icu",
- ]
- }
+ public_deps = [
+ ":v8_maybe_icu",
+ ]
configs = [
":external_config",
@@ -4057,11 +4270,9 @@ v8_source_set("lib_wasm_fuzzer_common") {
":run_torque",
]
- if (v8_enable_i18n_support) {
- public_deps = [
- "//third_party/icu",
- ]
- }
+ public_deps = [
+ ":v8_maybe_icu",
+ ]
configs = [
":external_config",
@@ -4102,3 +4313,260 @@ group("v8_generated_cc_files") {
"test/cctest:v8_generated_cc_files",
]
}
+
+# Protobuf targets, used only when building outside of chromium.
+
+if (!build_with_chromium && v8_use_perfetto) {
+ # This config is applied to the autogenerated .pb.{cc,h} files in
+ # proto_library.gni. This config is propagated up to the source sets
+ # that depend on generated proto headers.
+ config("protobuf_gen_config") {
+ defines = [
+ "GOOGLE_PROTOBUF_NO_RTTI",
+ "GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
+ ]
+ cflags = [
+ # Using -isystem instead of include_dirs (-I), so we don't need to suppress
+ # warnings coming from libprotobuf headers. Doing so would mask warnings in
+ # our own code.
+ "-isystem",
+ rebase_path("third_party/protobuf/src", root_build_dir),
+ "-Wno-unknown-warning-option",
+ "-Wno-deprecated",
+ "-Wno-undef",
+ "-Wno-zero-as-null-pointer-constant",
+ ]
+ }
+
+ # Configuration used to build libprotobuf_* and the protoc compiler.
+ config("protobuf_config") {
+ # Apply the lighter supressions and macro definitions from above.
+ configs = [ ":protobuf_gen_config" ]
+
+ defines = [ "HAVE_PTHREAD=1" ]
+ if (is_clang) {
+ cflags = [
+ "-Wno-unused-private-field",
+ "-Wno-unused-function",
+ "-Wno-inconsistent-missing-override",
+ "-Wno-unknown-warning-option",
+ "-Wno-enum-compare-switch",
+ "-Wno-user-defined-warnings",
+ "-Wno-tautological-constant-compare",
+ ]
+ }
+ }
+
+ source_set("protobuf_lite") {
+ sources = [
+ "third_party/protobuf/src/google/protobuf/any_lite.cc",
+ "third_party/protobuf/src/google/protobuf/arena.cc",
+ "third_party/protobuf/src/google/protobuf/extension_set.cc",
+ "third_party/protobuf/src/google/protobuf/generated_message_table_driven_lite.cc",
+ "third_party/protobuf/src/google/protobuf/generated_message_util.cc",
+ "third_party/protobuf/src/google/protobuf/implicit_weak_message.cc",
+ "third_party/protobuf/src/google/protobuf/io/coded_stream.cc",
+ "third_party/protobuf/src/google/protobuf/io/strtod.cc",
+ "third_party/protobuf/src/google/protobuf/io/zero_copy_stream.cc",
+ "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
+ "third_party/protobuf/src/google/protobuf/message_lite.cc",
+ "third_party/protobuf/src/google/protobuf/repeated_field.cc",
+ "third_party/protobuf/src/google/protobuf/stubs/bytestream.cc",
+ "third_party/protobuf/src/google/protobuf/stubs/common.cc",
+ "third_party/protobuf/src/google/protobuf/stubs/int128.cc",
+ "third_party/protobuf/src/google/protobuf/stubs/io_win32.cc",
+ "third_party/protobuf/src/google/protobuf/stubs/status.cc",
+ "third_party/protobuf/src/google/protobuf/stubs/statusor.cc",
+ "third_party/protobuf/src/google/protobuf/stubs/stringpiece.cc",
+ "third_party/protobuf/src/google/protobuf/stubs/stringprintf.cc",
+ "third_party/protobuf/src/google/protobuf/stubs/structurally_valid.cc",
+ "third_party/protobuf/src/google/protobuf/stubs/strutil.cc",
+ "third_party/protobuf/src/google/protobuf/stubs/time.cc",
+ "third_party/protobuf/src/google/protobuf/wire_format_lite.cc",
+ ]
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":protobuf_config",
+ ]
+ public_configs = [ ":protobuf_gen_config" ]
+ }
+
+ # This target should be used only by the protoc compiler and by test targets.
+ source_set("protobuf_full") {
+ deps = [
+ ":protobuf_lite",
+ ]
+ sources = [
+ "third_party/protobuf/src/google/protobuf/any.cc",
+ "third_party/protobuf/src/google/protobuf/any.pb.cc",
+ "third_party/protobuf/src/google/protobuf/api.pb.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/importer.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/parser.cc",
+ "third_party/protobuf/src/google/protobuf/descriptor.cc",
+ "third_party/protobuf/src/google/protobuf/descriptor.pb.cc",
+ "third_party/protobuf/src/google/protobuf/descriptor_database.cc",
+ "third_party/protobuf/src/google/protobuf/duration.pb.cc",
+ "third_party/protobuf/src/google/protobuf/dynamic_message.cc",
+ "third_party/protobuf/src/google/protobuf/empty.pb.cc",
+ "third_party/protobuf/src/google/protobuf/extension_set_heavy.cc",
+ "third_party/protobuf/src/google/protobuf/field_mask.pb.cc",
+ "third_party/protobuf/src/google/protobuf/generated_message_reflection.cc",
+ "third_party/protobuf/src/google/protobuf/generated_message_table_driven.cc",
+ "third_party/protobuf/src/google/protobuf/io/gzip_stream.cc",
+ "third_party/protobuf/src/google/protobuf/io/printer.cc",
+ "third_party/protobuf/src/google/protobuf/io/tokenizer.cc",
+ "third_party/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc",
+ "third_party/protobuf/src/google/protobuf/map_field.cc",
+ "third_party/protobuf/src/google/protobuf/message.cc",
+ "third_party/protobuf/src/google/protobuf/reflection_ops.cc",
+ "third_party/protobuf/src/google/protobuf/service.cc",
+ "third_party/protobuf/src/google/protobuf/source_context.pb.cc",
+ "third_party/protobuf/src/google/protobuf/struct.pb.cc",
+ "third_party/protobuf/src/google/protobuf/stubs/mathlimits.cc",
+ "third_party/protobuf/src/google/protobuf/stubs/substitute.cc",
+ "third_party/protobuf/src/google/protobuf/text_format.cc",
+ "third_party/protobuf/src/google/protobuf/timestamp.pb.cc",
+ "third_party/protobuf/src/google/protobuf/type.pb.cc",
+ "third_party/protobuf/src/google/protobuf/unknown_field_set.cc",
+ "third_party/protobuf/src/google/protobuf/util/delimited_message_util.cc",
+ "third_party/protobuf/src/google/protobuf/util/field_comparator.cc",
+ "third_party/protobuf/src/google/protobuf/util/field_mask_util.cc",
+ "third_party/protobuf/src/google/protobuf/util/internal/datapiece.cc",
+ "third_party/protobuf/src/google/protobuf/util/internal/default_value_objectwriter.cc",
+ "third_party/protobuf/src/google/protobuf/util/internal/error_listener.cc",
+ "third_party/protobuf/src/google/protobuf/util/internal/field_mask_utility.cc",
+ "third_party/protobuf/src/google/protobuf/util/internal/json_escaping.cc",
+ "third_party/protobuf/src/google/protobuf/util/internal/json_objectwriter.cc",
+ "third_party/protobuf/src/google/protobuf/util/internal/json_stream_parser.cc",
+ "third_party/protobuf/src/google/protobuf/util/internal/object_writer.cc",
+ "third_party/protobuf/src/google/protobuf/util/internal/proto_writer.cc",
+ "third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.cc",
+ "third_party/protobuf/src/google/protobuf/util/internal/protostream_objectwriter.cc",
+ "third_party/protobuf/src/google/protobuf/util/internal/type_info.cc",
+ "third_party/protobuf/src/google/protobuf/util/internal/type_info_test_helper.cc",
+ "third_party/protobuf/src/google/protobuf/util/internal/utility.cc",
+ "third_party/protobuf/src/google/protobuf/util/json_util.cc",
+ "third_party/protobuf/src/google/protobuf/util/message_differencer.cc",
+ "third_party/protobuf/src/google/protobuf/util/time_util.cc",
+ "third_party/protobuf/src/google/protobuf/util/type_resolver_util.cc",
+ "third_party/protobuf/src/google/protobuf/wire_format.cc",
+ "third_party/protobuf/src/google/protobuf/wrappers.pb.cc",
+ ]
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":protobuf_config",
+ ]
+ public_configs = [ ":protobuf_gen_config" ]
+ }
+
+ if (current_toolchain == host_toolchain) {
+ source_set("protoc_lib") {
+ deps = [
+ ":protobuf_full",
+ ]
+ sources = [
+ "third_party/protobuf/src/google/protobuf/compiler/code_generator.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/command_line_interface.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_extension.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_file.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_generator.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_map_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_enum.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_enum_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_field_base.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_generator.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_helpers.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_map_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_message.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_message_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_reflection_class.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_context.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_doc_comment.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_enum.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_enum_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_enum_field_lite.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_enum_lite.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_extension.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_extension_lite.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_file.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_generator.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_generator_factory.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_helpers.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_map_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_message.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_message_builder.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_message_builder_lite.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_message_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_message_field_lite.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_message_lite.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_name_resolver.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_primitive_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_primitive_field_lite.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_service.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_shared_code_generator.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_string_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/java/java_string_field_lite.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/js/js_generator.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/js/well_known_types_embed.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_extension.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_generator.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/php/php_generator.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/plugin.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/plugin.pb.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/python/python_generator.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/ruby/ruby_generator.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/subprocess.cc",
+ "third_party/protobuf/src/google/protobuf/compiler/zip_writer.cc",
+ ]
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [
+ "//build/config/compiler:no_chromium_code",
+ ":protobuf_config",
+ ]
+ public_configs = [ ":protobuf_gen_config" ]
+ }
+
+ executable("protoc") {
+ deps = [
+ ":protoc_lib",
+ "//build/win:default_exe_manifest",
+ ]
+ sources = [
+ "third_party/protobuf/src/google/protobuf/compiler/main.cc",
+ ]
+ configs -= [ "//build/config/compiler:chromium_code" ]
+ configs += [ "//build/config/compiler:no_chromium_code" ]
+ }
+ } # host_toolchain
+} # if (!build_with_chromium && v8_use_perfetto)