summaryrefslogtreecommitdiff
path: root/build_extra/deno.gni
blob: 6d1293bc16f8664d7b5c221b21aa6bb68e871fee (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
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
  suffix = "_$name"
  action("create_snapshot_" + name) {
    forward_variables_from(invoker,
                           [
                             "testonly",
                             "deps",
                           ])
    visibility = [ ":*" ]  # Only targets in this file can depend on this.
    deps += [ ":snapshot_creator" ]
    script = "//third_party/v8/tools/run.py"
    data = []
    exe = rebase_path(get_label_info(":snapshot_creator", "root_out_dir") +
                      "/snapshot_creator")
    snapshot_out_cc = "$target_gen_dir/snapshot${suffix}.cc"
    sources = [
      invoker.js,
    ]
    outputs = [
      snapshot_out_cc,
    ]
    args = [
      exe,
      rebase_path(invoker.js, root_build_dir),
      rebase_path(snapshot_out_cc, root_build_dir),
    ]

    # To debug snapshotting problems:
    #  args += ["--trace-serializer"]
    data = [
      invoker.js,
    ]
  }
}