# 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", "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/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" ] } 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", "//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", ] 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/expect.js", "test/file_unittests.js", "test/gtest_unittests.js", "../OWNERS", ] data_deps = [ ":gin_shell", ] }