diff options
Diffstat (limited to 'core/libdeno/BUILD.gn')
-rw-r--r-- | core/libdeno/BUILD.gn | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/core/libdeno/BUILD.gn b/core/libdeno/BUILD.gn new file mode 100644 index 000000000..d2322c678 --- /dev/null +++ b/core/libdeno/BUILD.gn @@ -0,0 +1,98 @@ +# Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. +import("//v8/gni/v8.gni") + +group("default") { + testonly = true + deps = [ + ":libdeno_static_lib", + ":libdeno_test", + ":v8", + ] +} + +config("deno_config") { + include_dirs = [ "//v8" ] # This allows us to v8/src/base/ libraries. + configs = [ "//v8:external_config" ] + cflags = [] + + if (is_debug) { + defines = [ "DEBUG" ] + } + + if (is_clang) { + cflags += [ + "-fcolor-diagnostics", + "-fansi-escape-codes", + ] + } + + if (is_debug && is_clang && !is_win) { + 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 = [ + "//v8:v8", + "//v8:v8_libbase", + "//v8:v8_libplatform", + "//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" ] +} |