blob: 4da04284e3f69845f17428ae65d45b656bab758f [file] [log] [blame]
# 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.
import("//build_overrides/v8.gni")
import("//testing/test.gni")
component("gin") {
sources = [
"arguments.cc",
"arguments.h",
"array_buffer.cc",
"array_buffer.h",
"context_holder.cc",
"converter.cc",
"converter.h",
"debug_impl.cc",
"debug_impl.h",
"dictionary.cc",
"dictionary.h",
"function_template.cc",
"function_template.h",
"gin_export.h",
"gin_features.cc",
"handle.h",
"interceptor.cc",
"interceptor.h",
"isolate_holder.cc",
"modules/console.cc",
"modules/console.h",
"modules/file_module_provider.cc",
"modules/file_module_provider.h",
"modules/module_registry.cc",
"modules/module_registry.h",
"modules/module_registry_observer.h",
"modules/module_runner_delegate.cc",
"modules/module_runner_delegate.h",
"modules/timer.cc",
"modules/timer.h",
"object_template_builder.cc",
"object_template_builder.h",
"per_context_data.cc",
"per_context_data.h",
"per_isolate_data.cc",
"per_isolate_data.h",
"public/context_holder.h",
"public/debug.h",
"public/gin_embedders.h",
"public/gin_features.h",
"public/isolate_holder.h",
"public/v8_idle_task_runner.h",
"public/v8_platform.h",
"public/wrapper_info.h",
"run_microtasks_observer.cc",
"run_microtasks_observer.h",
"runner.cc",
"runner.h",
"shell_runner.cc",
"shell_runner.h",
"try_catch.cc",
"try_catch.h",
"v8_initializer.cc",
"v8_initializer.h",
"v8_isolate_memory_dump_provider.cc",
"v8_isolate_memory_dump_provider.h",
"v8_platform.cc",
"wrappable.cc",
"wrappable.h",
"wrapper_info.cc",
]
if (v8_use_external_startup_data) {
data = [
"$root_out_dir/natives_blob.bin",
"$root_out_dir/snapshot_blob.bin",
]
}
defines = [ "GIN_IMPLEMENTATION" ]
public_deps = [
"//base",
"//v8",
]
deps = [
"//base/third_party/dynamic_annotations",
"//crypto",
]
if (v8_use_external_startup_data && is_win) {
public_deps += [ ":gin_v8_snapshot_fingerprint" ]
sources += [ "$target_gen_dir/v8_snapshot_fingerprint.cc" ]
defines += [ "V8_VERIFY_EXTERNAL_STARTUP_DATA" ]
}
if (is_mac) {
libs = [ "CoreFoundation.framework" ]
}
configs += [ "//v8:external_startup_data" ]
}
if (v8_use_external_startup_data) {
action("gin_v8_snapshot_fingerprint") {
script = "//gin/fingerprint/fingerprint_v8_snapshot.py"
snapshot_file = "$root_out_dir/snapshot_blob.bin"
natives_file = "$root_out_dir/natives_blob.bin"
output_file = "$target_gen_dir/v8_snapshot_fingerprint.cc"
args = [
"--snapshot_file",
rebase_path(snapshot_file, root_build_dir),
"--natives_file",
rebase_path(natives_file, root_build_dir),
"--output_file",
rebase_path(output_file, root_build_dir),
]
inputs = [
snapshot_file,
natives_file,
]
outputs = [
output_file,
]
deps = [
"//v8",
]
}
}
executable("gin_shell") {
sources = [
"shell/gin_main.cc",
]
deps = [
":gin",
"//base",
"//base:i18n",
"//build/config/sanitizers:deps",
"//build/win:default_exe_manifest",
"//v8",
]
configs += [ "//v8:external_startup_data" ]
}
source_set("gin_test") {
testonly = true
sources = [
"test/file.cc",
"test/file.h",
"test/file_runner.cc",
"test/file_runner.h",
"test/gc.cc",
"test/gc.h",
"test/gtest.cc",
"test/gtest.h",
"test/v8_test.cc",
"test/v8_test.h",
]
data = [
"test/expect.js",
]
public_deps = [
":gin",
"//testing/gtest",
]
deps = [
"//v8",
]
configs += [ "//v8:external_startup_data" ]
}
test("gin_unittests") {
sources = [
"converter_unittest.cc",
"interceptor_unittest.cc",
"modules/module_registry_unittest.cc",
"modules/timer_unittest.cc",
"per_context_data_unittest.cc",
"shell/gin_shell_unittest.cc",
"shell_runner_unittest.cc",
"test/run_all_unittests.cc",
"test/run_js_tests.cc",
"v8_isolate_memory_dump_provider_unittest.cc",
"wrappable_unittest.cc",
]
deps = [
":gin_shell",
":gin_test",
"//base/test:test_support",
"//v8",
]
configs += [ "//v8:external_startup_data" ]
data = [
"modules/module_registry_unittests.js",
"shell/hello_world.js",
"test/file_unittests.js",
"test/gtest_unittests.js",
"../OWNERS",
]
data_deps = [
":gin_shell",
]
}