summaryrefslogtreecommitdiff
path: root/libdeno/deno.gni
blob: 55662145f9791500b5950184d74f11f38f5d8a2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# Copyright 2018 the Deno authors. All rights reserved. MIT license.
import("//build/compiled_action.gni")

declare_args() {
  # Use prebuilt V8 libraries from //prebuilt/
  use_prebuilt_v8 = true
}

template("run_node") {
  action(target_name) {
    forward_variables_from(invoker, "*")
    script = "//tools/run_node.py"
  }
}

# Template to generate different V8 snapshots based on different runtime flags.
# Can be invoked with run_mksnapshot(<name>). The target will resolve to
# run_mksnapshot_<name>. If <name> is "default", no file suffixes will be used.
# Otherwise files are suffixed, e.g. embedded_<name>.cc and
# snapshot_blob_<name>.bin.
#
# The template exposes the variables:
#   args: additional flags for mksnapshots
#   embedded_suffix: a camel case suffix for method names in the embedded
#       snapshot.
template("create_snapshot") {
  name = target_name
  compiled_action("create_snapshot_" + name) {
    forward_variables_from(invoker,
                           [
                             "testonly",
                             "deps",
                           ])
    tool = "//libdeno:snapshot_creator"
    visibility = [ ":*" ]  # Only targets in this file can depend on this.
    snapshot_out_bin = "$target_gen_dir/snapshot_$name.bin"
    inputs = [
      invoker.js,
    ]
    if (defined(invoker.source_map)) {
      inputs += [ invoker.source_map ]
    }
    outputs = [
      snapshot_out_bin,
    ]
    args = rebase_path(outputs, root_build_dir) +
           rebase_path(inputs, root_build_dir)

    # To debug snapshotting problems:
    #  args += ["--trace-serializer"]
  }
}