# Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. import("//third_party/v8/gni/v8.gni") group("default") { testonly = true deps = [ ":libdeno_static_lib", ":libdeno_test", ":v8", ] } config("deno_config") { include_dirs = [ "//third_party/v8" ] # This allows us to v8/src/base/ libraries. configs = [ "//third_party/v8:external_config" ] cflags = [] if (is_debug) { defines = [ "DEBUG" ] } if (is_clang) { cflags += [ "-fcolor-diagnostics", "-fansi-escape-codes", ] if (is_debug) { cflags += [ "-glldb" ] } } if (is_win) { # The `/Zl` ("omit default library name") flag makes the compiler produce # object files that can link with both the static and dynamic CRT. cflags += [ "/Zl" ] } } v8_source_set("v8") { deps = [ "//third_party/v8:v8", "//third_party/v8:v8_libbase", "//third_party/v8:v8_libplatform", "//third_party/v8:v8_libsampler", ] configs = [ ":deno_config" ] } # Only functionality needed for libdeno_test and snapshot_creator # In particular no assets, no rust, no msg handlers. # Because snapshots are slow, it's important that snapshot_creator's # dependencies are minimal. v8_source_set("libdeno") { sources = [ "api.cc", "binding.cc", "buffer.h", "deno.h", "exceptions.cc", "exceptions.h", "internal.h", "modules.cc", ] deps = [ ":v8", ] configs = [ ":deno_config" ] } # The cargo-driven build links with libdeno to pull in all non-rust code. v8_static_library("libdeno_static_lib") { output_name = "libdeno" deps = [ ":libdeno", "//build/config:shared_library_deps", ] configs = [ ":deno_config" ] } v8_executable("libdeno_test") { testonly = true sources = [ "libdeno_test.cc", "modules_test.cc", "test.cc", ] deps = [ ":libdeno", "//testing/gtest:gtest", ] data = [ "libdeno_test.js", ] js_path = rebase_path(data[0]) defines = [ "JS_PATH=\"$js_path\"" ] configs = [ ":deno_config" ] }