# Copyright 2014 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.

# TODO(jochen): These will need to be user-settable to support standalone V8
# builds.
v8_compress_startup_data = "off"
v8_deprecation_warnings = false
v8_enable_disassembler = false
v8_enable_gdbjit = false
v8_enable_handle_zapping = true
v8_enable_i18n_support = true
v8_enable_verify_heap = false
v8_interpreted_regexp = false
v8_object_print = false
v8_postmortem_support = false
v8_use_snapshot = true
v8_use_external_startup_data = false
v8_enable_extra_checks = is_debug
v8_target_arch = cpu_arch
v8_random_seed = "314159265"


###############################################################################
# Configurations
#
config("internal_config") {
  visibility = ":*"  # Only targets in this file can depend on this.

  include_dirs = [ "." ]

  if (component_mode == "shared_library") {
    defines = [
      "V8_SHARED",
      "BUILDING_V8_SHARED",
    ]
  }
}

config("internal_config_base") {
  visibility = ":*"  # Only targets in this file can depend on this.

  include_dirs = [ "." ]
}

# This config should only be applied to code using V8 and not any V8 code
# itself.
config("external_config") {
  if (is_component_build) {
    defines = [
      "V8_SHARED",
      "USING_V8_SHARED",
    ]
  }
  include_dirs = [ "include" ]
}

config("features") {
  visibility = ":*"  # Only targets in this file can depend on this.

  defines = []

  if (v8_enable_disassembler == true) {
    defines += [
      "ENABLE_DISASSEMBLER",
    ]
  }
  if (v8_enable_gdbjit == true) {
    defines += [
      "ENABLE_GDB_JIT_INTERFACE",
    ]
  }
  if (v8_object_print == true) {
    defines += [
      "OBJECT_PRINT",
    ]
  }
  if (v8_enable_verify_heap == true) {
    defines += [
      "VERIFY_HEAP",
    ]
  }
  if (v8_interpreted_regexp == true) {
    defines += [
      "V8_INTERPRETED_REGEXP",
    ]
  }
  if (v8_deprecation_warnings == true) {
    defines += [
      "V8_DEPRECATION_WARNINGS",
    ]
  }
  if (v8_enable_i18n_support == true) {
    defines += [
      "V8_I18N_SUPPORT",
    ]
  }
  if (v8_compress_startup_data == "bz2") {
    defines += [
      "COMPRESS_STARTUP_DATA_BZ2",
    ]
  }
  if (v8_enable_extra_checks == true) {
    defines += [
      "ENABLE_EXTRA_CHECKS",
    ]
  }
  if (v8_enable_handle_zapping == true) {
    defines += [
      "ENABLE_HANDLE_ZAPPING",
    ]
  }
  if (v8_use_external_startup_data == true) {
    defines += [
      "V8_USE_EXTERNAL_STARTUP_DATA",
    ]
  }
}

config("toolchain") {
  visibility = ":*"  # Only targets in this file can depend on this.

  defines = []
  cflags = []

  # TODO(jochen): Add support for arm, mips, mipsel.

  if (v8_target_arch == "arm64") {
    defines += [
      "V8_TARGET_ARCH_ARM64",
    ]
  }
  if (v8_target_arch == "x86") {
    defines += [
      "V8_TARGET_ARCH_IA32",
    ]
  }
  if (v8_target_arch == "x64") {
    defines += [
      "V8_TARGET_ARCH_X64",
    ]
  }
  if (is_win) {
    defines += [
      "WIN32",
    ]
    # TODO(jochen): Support v8_enable_prof.
  }

  # TODO(jochen): Add support for compiling with simulators.

  if (is_debug) {
    # TODO(jochen): Add support for different debug optimization levels.
    defines += [
      "ENABLE_DISASSEMBLER",
      "V8_ENABLE_CHECKS",
      "OBJECT_PRINT",
      "VERIFY_HEAP",
      "DEBUG",
      "OPTIMIZED_DEBUG",
    ]
  }
}

###############################################################################
# Actions
#

action("js2c") {
  visibility = ":*"  # Only targets in this file can depend on this.

  script = "tools/js2c.py"

  # The script depends on this other script, this rule causes a rebuild if it
  # changes.
  source_prereqs = [ "tools/jsmin.py" ]

  sources = [
    "src/runtime.js",
    "src/v8natives.js",
    "src/symbol.js",
    "src/array.js",
    "src/string.js",
    "src/uri.js",
    "third_party/fdlibm/fdlibm.js",
    "src/math.js",
    "src/messages.js",
    "src/apinatives.js",
    "src/debug-debugger.js",
    "src/mirror-debugger.js",
    "src/liveedit-debugger.js",
    "src/date.js",
    "src/json.js",
    "src/regexp.js",
    "src/arraybuffer.js",
    "src/typedarray.js",
    "src/collection.js",
    "src/collection-iterator.js",
    "src/weak_collection.js",
    "src/promise.js",
    "src/object-observe.js",
    "src/macros.py",
    "src/array-iterator.js",
    "src/string-iterator.js",
  ]

  outputs = [
    "$target_gen_dir/libraries.cc"
  ]

  if (v8_enable_i18n_support) {
    sources += [ "src/i18n.js" ]
  }

  args = [
    rebase_path("$target_gen_dir/libraries.cc", root_build_dir),
    "CORE",
    v8_compress_startup_data
  ] + rebase_path(sources, root_build_dir)

  if (v8_use_external_startup_data) {
    outputs += [ "$target_gen_dir/libraries.bin" ]
    args += [
      "--startup_blob",
      rebase_path("$target_gen_dir/libraries.bin", root_build_dir)
    ]
  }
}

action("js2c_experimental") {
  visibility = ":*"  # Only targets in this file can depend on this.

  script = "tools/js2c.py"

  # The script depends on this other script, this rule causes a rebuild if it
  # changes.
  source_prereqs = [ "tools/jsmin.py" ]

  sources = [
    "src/macros.py",
    "src/proxy.js",
    "src/generator.js",
    "src/harmony-string.js",
    "src/harmony-array.js",
  ]

  outputs = [
    "$target_gen_dir/experimental-libraries.cc"
  ]

  args = [
    rebase_path("$target_gen_dir/experimental-libraries.cc", root_build_dir),
    "EXPERIMENTAL",
    v8_compress_startup_data
  ] + rebase_path(sources, root_build_dir)

  if (v8_use_external_startup_data) {
    outputs += [ "$target_gen_dir/libraries_experimental.bin" ]
    args += [
      "--startup_blob",
      rebase_path("$target_gen_dir/libraries_experimental.bin", root_build_dir)
    ]
  }
}

if (v8_use_external_startup_data) {
  action("natives_blob") {
    visibility = ":*"  # Only targets in this file can depend on this.

    deps = [
      ":js2c",
      ":js2c_experimental"
    ]

    sources = [
      "$target_gen_dir/libraries.bin",
      "$target_gen_dir/libraries_experimental.bin"
    ]

    outputs = [
      "$root_gen_dir/natives_blob.bin"
    ]

    script = "tools/concatenate-files.py"

    args = rebase_path(sources + outputs, root_build_dir)
  }
}

action("postmortem-metadata") {
  visibility = ":*"  # Only targets in this file can depend on this.

  script = "tools/gen-postmortem-metadata.py"

  sources = [
    "src/objects.h",
    "src/objects-inl.h",
  ]

  outputs = [
    "$target_gen_dir/debug-support.cc"
  ]

  args =
    rebase_path(outputs, root_build_dir) +
    rebase_path(sources, root_build_dir)
}

action("run_mksnapshot") {
  visibility = ":*"  # Only targets in this file can depend on this.

  deps = [ ":mksnapshot($host_toolchain)" ]

  script = "tools/run.py"

  outputs = [
    "$target_gen_dir/snapshot.cc"
  ]

  args = [
    "./" + rebase_path(get_label_info(":mksnapshot($host_toolchain)",
                                      "root_out_dir") + "/mksnapshot",
                       root_build_dir),
    "--log-snapshot-positions",
    "--logfile", rebase_path("$target_gen_dir/snapshot.log", root_build_dir),
    rebase_path("$target_gen_dir/snapshot.cc", root_build_dir)
  ]

  if (v8_random_seed != "0") {
    args += [ "--random-seed", v8_random_seed ]
  }

  if (v8_use_external_startup_data) {
    outputs += [ "$root_gen_dir/snapshot_blob.bin" ]
    args += [
      "--startup_blob",
      rebase_path("$root_gen_dir/snapshot_blob.bin", root_build_dir)
    ]
  }
}


###############################################################################
# Source Sets (aka static libraries)
#

source_set("v8_nosnapshot") {
  visibility = ":*"  # Only targets in this file can depend on this.

  deps = [
    ":js2c",
    ":js2c_experimental",
    ":v8_base",
  ]

  sources = [
    "$target_gen_dir/libraries.cc",
    "$target_gen_dir/experimental-libraries.cc",
    "src/snapshot-empty.cc",
    "src/snapshot-common.cc",
  ]

  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  configs += [ ":internal_config", ":features", ":toolchain" ]
}

source_set("v8_snapshot") {
  visibility = ":*"  # Only targets in this file can depend on this.

  deps = [
    ":js2c",
    ":js2c_experimental",
    ":run_mksnapshot",
    ":v8_base",
  ]

  sources = [
    "$target_gen_dir/libraries.cc",
    "$target_gen_dir/experimental-libraries.cc",
    "$target_gen_dir/snapshot.cc",
    "src/snapshot-common.cc",
  ]

  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  configs += [ ":internal_config", ":features", ":toolchain" ]
}

if (v8_use_external_startup_data) {
  source_set("v8_external_snapshot") {
    visibility = ":*"  # Only targets in this file can depend on this.

    deps = [
      ":js2c",
      ":js2c_experimental",
      ":run_mksnapshot",
      ":v8_base",
      ":natives_blob",
    ]

    sources = [
      "src/natives-external.cc",
      "src/snapshot-external.cc",
    ]

    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs += [ ":internal_config", ":features", ":toolchain" ]
  }
}

source_set("v8_base") {
  visibility = ":*"  # Only targets in this file can depend on this.

  sources = [
    "src/accessors.cc",
    "src/accessors.h",
    "src/allocation.cc",
    "src/allocation.h",
    "src/allocation-site-scopes.cc",
    "src/allocation-site-scopes.h",
    "src/allocation-tracker.cc",
    "src/allocation-tracker.h",
    "src/api.cc",
    "src/api.h",
    "src/arguments.cc",
    "src/arguments.h",
    "src/assembler.cc",
    "src/assembler.h",
    "src/assert-scope.h",
    "src/assert-scope.cc",
    "src/ast-value-factory.cc",
    "src/ast-value-factory.h",
    "src/ast.cc",
    "src/ast.h",
    "src/bignum-dtoa.cc",
    "src/bignum-dtoa.h",
    "src/bignum.cc",
    "src/bignum.h",
    "src/bootstrapper.cc",
    "src/bootstrapper.h",
    "src/builtins.cc",
    "src/builtins.h",
    "src/bytecodes-irregexp.h",
    "src/cached-powers.cc",
    "src/cached-powers.h",
    "src/char-predicates-inl.h",
    "src/char-predicates.h",
    "src/checks.cc",
    "src/checks.h",
    "src/circular-queue-inl.h",
    "src/circular-queue.h",
    "src/code-stubs.cc",
    "src/code-stubs.h",
    "src/code-stubs-hydrogen.cc",
    "src/code.h",
    "src/codegen.cc",
    "src/codegen.h",
    "src/compilation-cache.cc",
    "src/compilation-cache.h",
    "src/compiler/ast-graph-builder.cc",
    "src/compiler/ast-graph-builder.h",
    "src/compiler/code-generator-impl.h",
    "src/compiler/code-generator.cc",
    "src/compiler/code-generator.h",
    "src/compiler/common-node-cache.h",
    "src/compiler/common-operator.h",
    "src/compiler/control-builders.cc",
    "src/compiler/control-builders.h",
    "src/compiler/frame.h",
    "src/compiler/gap-resolver.cc",
    "src/compiler/gap-resolver.h",
    "src/compiler/generic-algorithm-inl.h",
    "src/compiler/generic-algorithm.h",
    "src/compiler/generic-graph.h",
    "src/compiler/generic-node-inl.h",
    "src/compiler/generic-node.h",
    "src/compiler/graph-builder.cc",
    "src/compiler/graph-builder.h",
    "src/compiler/graph-inl.h",
    "src/compiler/graph-reducer.cc",
    "src/compiler/graph-reducer.h",
    "src/compiler/graph-replay.cc",
    "src/compiler/graph-replay.h",
    "src/compiler/graph-visualizer.cc",
    "src/compiler/graph-visualizer.h",
    "src/compiler/graph.cc",
    "src/compiler/graph.h",
    "src/compiler/instruction-codes.h",
    "src/compiler/instruction-selector-impl.h",
    "src/compiler/instruction-selector.cc",
    "src/compiler/instruction-selector.h",
    "src/compiler/instruction.cc",
    "src/compiler/instruction.h",
    "src/compiler/js-context-specialization.cc",
    "src/compiler/js-context-specialization.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-operator.h",
    "src/compiler/js-typed-lowering.cc",
    "src/compiler/js-typed-lowering.h",
    "src/compiler/linkage-impl.h",
    "src/compiler/linkage.cc",
    "src/compiler/linkage.h",
    "src/compiler/lowering-builder.cc",
    "src/compiler/lowering-builder.h",
    "src/compiler/machine-node-factory.h",
    "src/compiler/machine-operator-reducer.cc",
    "src/compiler/machine-operator-reducer.h",
    "src/compiler/machine-operator.h",
    "src/compiler/node-aux-data-inl.h",
    "src/compiler/node-aux-data.h",
    "src/compiler/node-cache.cc",
    "src/compiler/node-cache.h",
    "src/compiler/node-matchers.h",
    "src/compiler/node-properties-inl.h",
    "src/compiler/node-properties.h",
    "src/compiler/node.cc",
    "src/compiler/node.h",
    "src/compiler/opcodes.h",
    "src/compiler/operator-properties-inl.h",
    "src/compiler/operator-properties.h",
    "src/compiler/operator.h",
    "src/compiler/phi-reducer.h",
    "src/compiler/pipeline.cc",
    "src/compiler/pipeline.h",
    "src/compiler/raw-machine-assembler.cc",
    "src/compiler/raw-machine-assembler.h",
    "src/compiler/register-allocator.cc",
    "src/compiler/register-allocator.h",
    "src/compiler/representation-change.h",
    "src/compiler/schedule.cc",
    "src/compiler/schedule.h",
    "src/compiler/scheduler.cc",
    "src/compiler/scheduler.h",
    "src/compiler/simplified-lowering.cc",
    "src/compiler/simplified-lowering.h",
    "src/compiler/simplified-node-factory.h",
    "src/compiler/simplified-operator.h",
    "src/compiler/source-position.cc",
    "src/compiler/source-position.h",
    "src/compiler/structured-machine-assembler.cc",
    "src/compiler/structured-machine-assembler.h",
    "src/compiler/typer.cc",
    "src/compiler/typer.h",
    "src/compiler/verifier.cc",
    "src/compiler/verifier.h",
    "src/compiler.cc",
    "src/compiler.h",
    "src/contexts.cc",
    "src/contexts.h",
    "src/conversions-inl.h",
    "src/conversions.cc",
    "src/conversions.h",
    "src/counters.cc",
    "src/counters.h",
    "src/cpu-profiler-inl.h",
    "src/cpu-profiler.cc",
    "src/cpu-profiler.h",
    "src/data-flow.cc",
    "src/data-flow.h",
    "src/date.cc",
    "src/date.h",
    "src/dateparser-inl.h",
    "src/dateparser.cc",
    "src/dateparser.h",
    "src/debug.cc",
    "src/debug.h",
    "src/deoptimizer.cc",
    "src/deoptimizer.h",
    "src/disasm.h",
    "src/disassembler.cc",
    "src/disassembler.h",
    "src/diy-fp.cc",
    "src/diy-fp.h",
    "src/double.h",
    "src/dtoa.cc",
    "src/dtoa.h",
    "src/effects.h",
    "src/elements-kind.cc",
    "src/elements-kind.h",
    "src/elements.cc",
    "src/elements.h",
    "src/execution.cc",
    "src/execution.h",
    "src/extensions/externalize-string-extension.cc",
    "src/extensions/externalize-string-extension.h",
    "src/extensions/free-buffer-extension.cc",
    "src/extensions/free-buffer-extension.h",
    "src/extensions/gc-extension.cc",
    "src/extensions/gc-extension.h",
    "src/extensions/statistics-extension.cc",
    "src/extensions/statistics-extension.h",
    "src/extensions/trigger-failure-extension.cc",
    "src/extensions/trigger-failure-extension.h",
    "src/factory.cc",
    "src/factory.h",
    "src/fast-dtoa.cc",
    "src/fast-dtoa.h",
    "src/feedback-slots.h",
    "src/field-index.cc",
    "src/field-index.h",
    "src/field-index-inl.h",
    "src/fixed-dtoa.cc",
    "src/fixed-dtoa.h",
    "src/flag-definitions.h",
    "src/flags.cc",
    "src/flags.h",
    "src/frames-inl.h",
    "src/frames.cc",
    "src/frames.h",
    "src/full-codegen.cc",
    "src/full-codegen.h",
    "src/func-name-inferrer.cc",
    "src/func-name-inferrer.h",
    "src/gdb-jit.cc",
    "src/gdb-jit.h",
    "src/global-handles.cc",
    "src/global-handles.h",
    "src/globals.h",
    "src/handles-inl.h",
    "src/handles.cc",
    "src/handles.h",
    "src/hashmap.h",
    "src/heap-profiler.cc",
    "src/heap-profiler.h",
    "src/heap-snapshot-generator-inl.h",
    "src/heap-snapshot-generator.cc",
    "src/heap-snapshot-generator.h",
    "src/heap/gc-tracer.cc",
    "src/heap/gc-tracer.h",
    "src/heap/heap-inl.h",
    "src/heap/heap.cc",
    "src/heap/heap.h",
    "src/heap/incremental-marking.cc",
    "src/heap/incremental-marking.h",
    "src/heap/mark-compact-inl.h",
    "src/heap/mark-compact.cc",
    "src/heap/mark-compact.h",
    "src/heap/objects-visiting-inl.h",
    "src/heap/objects-visiting.cc",
    "src/heap/objects-visiting.h",
    "src/heap/spaces-inl.h",
    "src/heap/spaces.cc",
    "src/heap/spaces.h",
    "src/heap/store-buffer-inl.h",
    "src/heap/store-buffer.cc",
    "src/heap/store-buffer.h",
    "src/heap/sweeper-thread.h",
    "src/heap/sweeper-thread.cc",
    "src/hydrogen-alias-analysis.h",
    "src/hydrogen-bce.cc",
    "src/hydrogen-bce.h",
    "src/hydrogen-bch.cc",
    "src/hydrogen-bch.h",
    "src/hydrogen-canonicalize.cc",
    "src/hydrogen-canonicalize.h",
    "src/hydrogen-check-elimination.cc",
    "src/hydrogen-check-elimination.h",
    "src/hydrogen-dce.cc",
    "src/hydrogen-dce.h",
    "src/hydrogen-dehoist.cc",
    "src/hydrogen-dehoist.h",
    "src/hydrogen-environment-liveness.cc",
    "src/hydrogen-environment-liveness.h",
    "src/hydrogen-escape-analysis.cc",
    "src/hydrogen-escape-analysis.h",
    "src/hydrogen-flow-engine.h",
    "src/hydrogen-instructions.cc",
    "src/hydrogen-instructions.h",
    "src/hydrogen.cc",
    "src/hydrogen.h",
    "src/hydrogen-gvn.cc",
    "src/hydrogen-gvn.h",
    "src/hydrogen-infer-representation.cc",
    "src/hydrogen-infer-representation.h",
    "src/hydrogen-infer-types.cc",
    "src/hydrogen-infer-types.h",
    "src/hydrogen-load-elimination.cc",
    "src/hydrogen-load-elimination.h",
    "src/hydrogen-mark-deoptimize.cc",
    "src/hydrogen-mark-deoptimize.h",
    "src/hydrogen-mark-unreachable.cc",
    "src/hydrogen-mark-unreachable.h",
    "src/hydrogen-osr.cc",
    "src/hydrogen-osr.h",
    "src/hydrogen-range-analysis.cc",
    "src/hydrogen-range-analysis.h",
    "src/hydrogen-redundant-phi.cc",
    "src/hydrogen-redundant-phi.h",
    "src/hydrogen-removable-simulates.cc",
    "src/hydrogen-removable-simulates.h",
    "src/hydrogen-representation-changes.cc",
    "src/hydrogen-representation-changes.h",
    "src/hydrogen-sce.cc",
    "src/hydrogen-sce.h",
    "src/hydrogen-store-elimination.cc",
    "src/hydrogen-store-elimination.h",
    "src/hydrogen-types.cc",
    "src/hydrogen-types.h",
    "src/hydrogen-uint32-analysis.cc",
    "src/hydrogen-uint32-analysis.h",
    "src/i18n.cc",
    "src/i18n.h",
    "src/icu_util.cc",
    "src/icu_util.h",
    "src/ic-inl.h",
    "src/ic.cc",
    "src/ic.h",
    "src/interface.cc",
    "src/interface.h",
    "src/interpreter-irregexp.cc",
    "src/interpreter-irregexp.h",
    "src/isolate.cc",
    "src/isolate.h",
    "src/json-parser.h",
    "src/json-stringifier.h",
    "src/jsregexp-inl.h",
    "src/jsregexp.cc",
    "src/jsregexp.h",
    "src/list-inl.h",
    "src/list.h",
    "src/lithium-allocator-inl.h",
    "src/lithium-allocator.cc",
    "src/lithium-allocator.h",
    "src/lithium-codegen.cc",
    "src/lithium-codegen.h",
    "src/lithium.cc",
    "src/lithium.h",
    "src/liveedit.cc",
    "src/liveedit.h",
    "src/log-inl.h",
    "src/log-utils.cc",
    "src/log-utils.h",
    "src/log.cc",
    "src/log.h",
    "src/lookup-inl.h",
    "src/lookup.cc",
    "src/lookup.h",
    "src/macro-assembler.h",
    "src/messages.cc",
    "src/messages.h",
    "src/msan.h",
    "src/natives.h",
    "src/objects-debug.cc",
    "src/objects-inl.h",
    "src/objects-printer.cc",
    "src/objects.cc",
    "src/objects.h",
    "src/optimizing-compiler-thread.cc",
    "src/optimizing-compiler-thread.h",
    "src/ostreams.cc",
    "src/ostreams.h",
    "src/parser.cc",
    "src/parser.h",
    "src/perf-jit.cc",
    "src/perf-jit.h",
    "src/preparse-data-format.h",
    "src/preparse-data.cc",
    "src/preparse-data.h",
    "src/preparser.cc",
    "src/preparser.h",
    "src/prettyprinter.cc",
    "src/prettyprinter.h",
    "src/profile-generator-inl.h",
    "src/profile-generator.cc",
    "src/profile-generator.h",
    "src/property-details.h",
    "src/property.cc",
    "src/property.h",
    "src/prototype.h",
    "src/regexp-macro-assembler-irregexp-inl.h",
    "src/regexp-macro-assembler-irregexp.cc",
    "src/regexp-macro-assembler-irregexp.h",
    "src/regexp-macro-assembler-tracer.cc",
    "src/regexp-macro-assembler-tracer.h",
    "src/regexp-macro-assembler.cc",
    "src/regexp-macro-assembler.h",
    "src/regexp-stack.cc",
    "src/regexp-stack.h",
    "src/rewriter.cc",
    "src/rewriter.h",
    "src/runtime-profiler.cc",
    "src/runtime-profiler.h",
    "src/runtime.cc",
    "src/runtime.h",
    "src/safepoint-table.cc",
    "src/safepoint-table.h",
    "src/sampler.cc",
    "src/sampler.h",
    "src/scanner-character-streams.cc",
    "src/scanner-character-streams.h",
    "src/scanner.cc",
    "src/scanner.h",
    "src/scopeinfo.cc",
    "src/scopeinfo.h",
    "src/scopes.cc",
    "src/scopes.h",
    "src/serialize.cc",
    "src/serialize.h",
    "src/small-pointer-list.h",
    "src/smart-pointers.h",
    "src/snapshot-source-sink.cc",
    "src/snapshot-source-sink.h",
    "src/snapshot.h",
    "src/string-search.cc",
    "src/string-search.h",
    "src/string-stream.cc",
    "src/string-stream.h",
    "src/strtod.cc",
    "src/strtod.h",
    "src/stub-cache.cc",
    "src/stub-cache.h",
    "src/token.cc",
    "src/token.h",
    "src/transitions-inl.h",
    "src/transitions.cc",
    "src/transitions.h",
    "src/type-info.cc",
    "src/type-info.h",
    "src/types-inl.h",
    "src/types.cc",
    "src/types.h",
    "src/typing.cc",
    "src/typing.h",
    "src/unbound-queue-inl.h",
    "src/unbound-queue.h",
    "src/unicode-inl.h",
    "src/unicode.cc",
    "src/unicode.h",
    "src/unique.h",
    "src/uri.h",
    "src/utils-inl.h",
    "src/utils.cc",
    "src/utils.h",
    "src/v8.cc",
    "src/v8.h",
    "src/v8memory.h",
    "src/v8threads.cc",
    "src/v8threads.h",
    "src/variables.cc",
    "src/variables.h",
    "src/version.cc",
    "src/version.h",
    "src/vm-state-inl.h",
    "src/vm-state.h",
    "src/zone-inl.h",
    "src/zone.cc",
    "src/zone.h",
    "third_party/fdlibm/fdlibm.cc",
    "third_party/fdlibm/fdlibm.h",
  ]

  if (v8_target_arch == "x86") {
    sources += [
      "src/ia32/assembler-ia32-inl.h",
      "src/ia32/assembler-ia32.cc",
      "src/ia32/assembler-ia32.h",
      "src/ia32/builtins-ia32.cc",
      "src/ia32/code-stubs-ia32.cc",
      "src/ia32/code-stubs-ia32.h",
      "src/ia32/codegen-ia32.cc",
      "src/ia32/codegen-ia32.h",
      "src/ia32/cpu-ia32.cc",
      "src/ia32/debug-ia32.cc",
      "src/ia32/deoptimizer-ia32.cc",
      "src/ia32/disasm-ia32.cc",
      "src/ia32/frames-ia32.cc",
      "src/ia32/frames-ia32.h",
      "src/ia32/full-codegen-ia32.cc",
      "src/ia32/ic-ia32.cc",
      "src/ia32/lithium-codegen-ia32.cc",
      "src/ia32/lithium-codegen-ia32.h",
      "src/ia32/lithium-gap-resolver-ia32.cc",
      "src/ia32/lithium-gap-resolver-ia32.h",
      "src/ia32/lithium-ia32.cc",
      "src/ia32/lithium-ia32.h",
      "src/ia32/macro-assembler-ia32.cc",
      "src/ia32/macro-assembler-ia32.h",
      "src/ia32/regexp-macro-assembler-ia32.cc",
      "src/ia32/regexp-macro-assembler-ia32.h",
      "src/ia32/stub-cache-ia32.cc",
      "src/compiler/ia32/code-generator-ia32.cc",
      "src/compiler/ia32/instruction-codes-ia32.h",
      "src/compiler/ia32/instruction-selector-ia32.cc",
      "src/compiler/ia32/linkage-ia32.cc",
    ]
  } else if (v8_target_arch == "x64") {
    sources += [
      "src/x64/assembler-x64-inl.h",
      "src/x64/assembler-x64.cc",
      "src/x64/assembler-x64.h",
      "src/x64/builtins-x64.cc",
      "src/x64/code-stubs-x64.cc",
      "src/x64/code-stubs-x64.h",
      "src/x64/codegen-x64.cc",
      "src/x64/codegen-x64.h",
      "src/x64/cpu-x64.cc",
      "src/x64/debug-x64.cc",
      "src/x64/deoptimizer-x64.cc",
      "src/x64/disasm-x64.cc",
      "src/x64/frames-x64.cc",
      "src/x64/frames-x64.h",
      "src/x64/full-codegen-x64.cc",
      "src/x64/ic-x64.cc",
      "src/x64/lithium-codegen-x64.cc",
      "src/x64/lithium-codegen-x64.h",
      "src/x64/lithium-gap-resolver-x64.cc",
      "src/x64/lithium-gap-resolver-x64.h",
      "src/x64/lithium-x64.cc",
      "src/x64/lithium-x64.h",
      "src/x64/macro-assembler-x64.cc",
      "src/x64/macro-assembler-x64.h",
      "src/x64/regexp-macro-assembler-x64.cc",
      "src/x64/regexp-macro-assembler-x64.h",
      "src/x64/stub-cache-x64.cc",
      "src/compiler/x64/code-generator-x64.cc",
      "src/compiler/x64/instruction-codes-x64.h",
      "src/compiler/x64/instruction-selector-x64.cc",
      "src/compiler/x64/linkage-x64.cc",
    ]
  } else if (v8_target_arch == "arm") {
    sources += [
      "src/arm/assembler-arm-inl.h",
      "src/arm/assembler-arm.cc",
      "src/arm/assembler-arm.h",
      "src/arm/builtins-arm.cc",
      "src/arm/code-stubs-arm.cc",
      "src/arm/code-stubs-arm.h",
      "src/arm/codegen-arm.cc",
      "src/arm/codegen-arm.h",
      "src/arm/constants-arm.h",
      "src/arm/constants-arm.cc",
      "src/arm/cpu-arm.cc",
      "src/arm/debug-arm.cc",
      "src/arm/deoptimizer-arm.cc",
      "src/arm/disasm-arm.cc",
      "src/arm/frames-arm.cc",
      "src/arm/frames-arm.h",
      "src/arm/full-codegen-arm.cc",
      "src/arm/ic-arm.cc",
      "src/arm/lithium-arm.cc",
      "src/arm/lithium-arm.h",
      "src/arm/lithium-codegen-arm.cc",
      "src/arm/lithium-codegen-arm.h",
      "src/arm/lithium-gap-resolver-arm.cc",
      "src/arm/lithium-gap-resolver-arm.h",
      "src/arm/macro-assembler-arm.cc",
      "src/arm/macro-assembler-arm.h",
      "src/arm/regexp-macro-assembler-arm.cc",
      "src/arm/regexp-macro-assembler-arm.h",
      "src/arm/simulator-arm.cc",
      "src/arm/stub-cache-arm.cc",
      "src/compiler/arm/code-generator-arm.cc",
      "src/compiler/arm/instruction-codes-arm.h",
      "src/compiler/arm/instruction-selector-arm.cc",
      "src/compiler/arm/linkage-arm.cc",
    ]
  } else if (v8_target_arch == "arm64") {
    sources += [
      "src/arm64/assembler-arm64.cc",
      "src/arm64/assembler-arm64.h",
      "src/arm64/assembler-arm64-inl.h",
      "src/arm64/builtins-arm64.cc",
      "src/arm64/codegen-arm64.cc",
      "src/arm64/codegen-arm64.h",
      "src/arm64/code-stubs-arm64.cc",
      "src/arm64/code-stubs-arm64.h",
      "src/arm64/constants-arm64.h",
      "src/arm64/cpu-arm64.cc",
      "src/arm64/debug-arm64.cc",
      "src/arm64/decoder-arm64.cc",
      "src/arm64/decoder-arm64.h",
      "src/arm64/decoder-arm64-inl.h",
      "src/arm64/deoptimizer-arm64.cc",
      "src/arm64/disasm-arm64.cc",
      "src/arm64/disasm-arm64.h",
      "src/arm64/frames-arm64.cc",
      "src/arm64/frames-arm64.h",
      "src/arm64/full-codegen-arm64.cc",
      "src/arm64/ic-arm64.cc",
      "src/arm64/instructions-arm64.cc",
      "src/arm64/instructions-arm64.h",
      "src/arm64/instrument-arm64.cc",
      "src/arm64/instrument-arm64.h",
      "src/arm64/lithium-arm64.cc",
      "src/arm64/lithium-arm64.h",
      "src/arm64/lithium-codegen-arm64.cc",
      "src/arm64/lithium-codegen-arm64.h",
      "src/arm64/lithium-gap-resolver-arm64.cc",
      "src/arm64/lithium-gap-resolver-arm64.h",
      "src/arm64/macro-assembler-arm64.cc",
      "src/arm64/macro-assembler-arm64.h",
      "src/arm64/macro-assembler-arm64-inl.h",
      "src/arm64/regexp-macro-assembler-arm64.cc",
      "src/arm64/regexp-macro-assembler-arm64.h",
      "src/arm64/simulator-arm64.cc",
      "src/arm64/simulator-arm64.h",
      "src/arm64/stub-cache-arm64.cc",
      "src/arm64/utils-arm64.cc",
      "src/arm64/utils-arm64.h",
      "src/compiler/arm64/code-generator-arm64.cc",
      "src/compiler/arm64/instruction-codes-arm64.h",
      "src/compiler/arm64/instruction-selector-arm64.cc",
      "src/compiler/arm64/linkage-arm64.cc",
    ]
  } else if (v8_target_arch == "mipsel") {
    sources += [
      "src/mips/assembler-mips.cc",
      "src/mips/assembler-mips.h",
      "src/mips/assembler-mips-inl.h",
      "src/mips/builtins-mips.cc",
      "src/mips/codegen-mips.cc",
      "src/mips/codegen-mips.h",
      "src/mips/code-stubs-mips.cc",
      "src/mips/code-stubs-mips.h",
      "src/mips/constants-mips.cc",
      "src/mips/constants-mips.h",
      "src/mips/cpu-mips.cc",
      "src/mips/debug-mips.cc",
      "src/mips/deoptimizer-mips.cc",
      "src/mips/disasm-mips.cc",
      "src/mips/frames-mips.cc",
      "src/mips/frames-mips.h",
      "src/mips/full-codegen-mips.cc",
      "src/mips/ic-mips.cc",
      "src/mips/lithium-codegen-mips.cc",
      "src/mips/lithium-codegen-mips.h",
      "src/mips/lithium-gap-resolver-mips.cc",
      "src/mips/lithium-gap-resolver-mips.h",
      "src/mips/lithium-mips.cc",
      "src/mips/lithium-mips.h",
      "src/mips/macro-assembler-mips.cc",
      "src/mips/macro-assembler-mips.h",
      "src/mips/regexp-macro-assembler-mips.cc",
      "src/mips/regexp-macro-assembler-mips.h",
      "src/mips/simulator-mips.cc",
      "src/mips/stub-cache-mips.cc",
    ]
  }

  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  configs += [ ":internal_config", ":features", ":toolchain" ]

  defines = []
  deps = [ ":v8_libbase" ]

  if (is_linux) {
    if (v8_compress_startup_data == "bz2") {
      libs += [ "bz2" ]
    }
  }

  if (v8_enable_i18n_support) {
    deps += [ "//third_party/icu" ]
    if (is_win) {
      deps += [ "//third_party/icu:icudata" ]
    }
    # TODO(jochen): Add support for icu_use_data_file_flag
    defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ]
  } else {
    sources -= [
      "src/i18n.cc",
      "src/i18n.h",
    ]
  }

  if (v8_postmortem_support) {
    sources += [ "$target_gen_dir/debug-support.cc" ]
    deps += [ ":postmortem-metadata" ]
  }
}

source_set("v8_libbase") {
  visibility = ":*"  # Only targets in this file can depend on this.

  sources = [
    "src/base/atomicops.h",
    "src/base/atomicops_internals_arm64_gcc.h",
    "src/base/atomicops_internals_arm_gcc.h",
    "src/base/atomicops_internals_atomicword_compat.h",
    "src/base/atomicops_internals_mac.h",
    "src/base/atomicops_internals_mips_gcc.h",
    "src/base/atomicops_internals_tsan.h",
    "src/base/atomicops_internals_x86_gcc.cc",
    "src/base/atomicops_internals_x86_gcc.h",
    "src/base/atomicops_internals_x86_msvc.h",
    "src/base/build_config.h",
    "src/base/cpu.cc",
    "src/base/cpu.h",
    "src/base/lazy-instance.h",
    "src/base/logging.cc",
    "src/base/logging.h",
    "src/base/macros.h",
    "src/base/once.cc",
    "src/base/once.h",
    "src/base/platform/elapsed-timer.h",
    "src/base/platform/time.cc",
    "src/base/platform/time.h",
    "src/base/platform/condition-variable.cc",
    "src/base/platform/condition-variable.h",
    "src/base/platform/mutex.cc",
    "src/base/platform/mutex.h",
    "src/base/platform/platform.h",
    "src/base/platform/semaphore.cc",
    "src/base/platform/semaphore.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/utils/random-number-generator.cc",
    "src/base/utils/random-number-generator.h",
  ]

  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  configs += [ ":internal_config_base", ":features", ":toolchain" ]

  defines = []

  if (is_posix) {
    sources += [
      "src/base/platform/platform-posix.cc"
    ]
  }

  if (is_linux) {
    sources += [
      "src/base/platform/platform-linux.cc"
    ]

    libs = [ "rt" ]
  } else if (is_android) {
    defines += [ "CAN_USE_VFP_INSTRUCTIONS" ]

    if (build_os == "mac") {
      if (current_toolchain == host_toolchain) {
        sources += [ "src/base/platform/platform-macos.cc" ]
      } else {
        sources += [ "src/base/platform/platform-linux.cc" ]
      }
    } else {
      sources += [ "src/base/platform/platform-linux.cc" ]
      if (current_toolchain == host_toolchain) {
        defines += [ "V8_LIBRT_NOT_AVAILABLE" ]
      }
    }
  } else if (is_mac) {
    sources += [ "src/base/platform/platform-macos.cc" ]
  } else if (is_win) {
    # TODO(jochen): Add support for cygwin.
    sources += [
      "src/base/platform/platform-win32.cc",
      "src/base/win32-headers.h",
      "src/base/win32-math.cc",
      "src/base/win32-math.h",
    ]

    defines += [ "_CRT_RAND_S" ]  # for rand_s()

    libs = [ "winmm.lib", "ws2_32.lib" ]
  }

  # TODO(jochen): Add support for qnx, freebsd, openbsd, netbsd, and solaris.
}

source_set("v8_libplatform") {
  sources = [
    "include/libplatform/libplatform.h",
    "src/libplatform/default-platform.cc",
    "src/libplatform/default-platform.h",
    "src/libplatform/task-queue.cc",
    "src/libplatform/task-queue.h",
    "src/libplatform/worker-thread.cc",
    "src/libplatform/worker-thread.h",
  ]

  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  configs += [ ":internal_config_base", ":features", ":toolchain" ]

  deps = [
    ":v8_libbase",
  ]
}

###############################################################################
# Executables
#

if (current_toolchain == host_toolchain) {
  executable("mksnapshot") {
    visibility = ":*"  # Only targets in this file can depend on this.

    sources = [
      "src/mksnapshot.cc",
    ]

    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]
    configs += [ ":internal_config", ":features", ":toolchain" ]

    deps = [
      ":v8_base",
      ":v8_libplatform",
      ":v8_nosnapshot",
    ]

    if (v8_compress_startup_data == "bz2") {
      libs = [ "bz2" ]
    }
  }
}

###############################################################################
# Public targets
#

if (component_mode == "shared_library") {

component("v8") {
  sources = [
    "src/v8dll-main.cc",
  ]

  if (v8_use_external_startup_data) {
    deps = [
      ":v8_base",
      ":v8_external_snapshot",
    ]
  } else if (v8_use_snapshot) {
    deps = [
      ":v8_base",
      ":v8_snapshot",
    ]
  } else {
    deps = [
      ":v8_base",
      ":v8_nosnapshot",
    ]
  }

  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [ "//build/config/compiler:no_chromium_code" ]
  configs += [ ":internal_config", ":features", ":toolchain" ]

  direct_dependent_configs = [ ":external_config" ]

  if (is_android && current_toolchain != host_toolchain) {
    libs += [ "log" ]
  }
}

} else {

group("v8") {
  if (v8_use_external_startup_data) {
    deps = [
      ":v8_base",
      ":v8_external_snapshot",
    ]
  } else if (v8_use_snapshot) {
    deps = [
      ":v8_base",
      ":v8_snapshot",
    ]
  } else {
    deps = [
      ":v8_base",
      ":v8_nosnapshot",
    ]
  }

  direct_dependent_configs = [ ":external_config" ]
}

}
