blob: dbb3a42219b5725f240fe026d026459bfea7f3a6 [file] [log] [blame]
# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
# for details. 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/dart/dart_action.gni")
_dart_root = get_path_info("..", "abspath")
# Template to generate entry points JSON file using dart_bootstrap tool.
# List of entry points is generated as a by-product while doing precompilation.
#
# This template expects the following arguments:
# - input: Name of the input dart script for precompilation.
# - output: Name of the output entry points JSON file.
# - extra_args: Extra arguments to pass to dart_bootstrap (optional).
#
template("generate_entry_points_json_with_dart_bootstrap") {
assert(defined(invoker.input), "Must define input dart script")
assert(defined(invoker.output), "Must define output json file")
extra_args = []
if (defined(invoker.extra_args)) {
extra_args += invoker.extra_args
}
dart_bootstrap_action(target_name) {
# Printing precompiler entry points is folded into precompilation, so dart_bootstrap is invoked
# with correct arguments to generate app-aot snapshot.
script = invoker.input
output = invoker.output
outputs = [
output,
]
vm_args = [
"--no-preview-dart-2",
"--print-precompiler-entry-points=" + rebase_path(output),
"--snapshot=" + rebase_path("$target_gen_dir/dummy.snapshot"),
"--snapshot-kind=app-aot",
"--use-blobs",
"--snapshot-kind=app-aot",
] + extra_args
args = []
}
}
# Template to copy checked-in extra entry points JSON file.
#
# This template expects the following argument:
# - output: Target destination for the extra entry points JSON file.
#
template("copy_entry_points_extra_json") {
assert(defined(invoker.output), "Must define output json file")
copy(target_name) {
sources = [ "$_dart_root/pkg/vm/lib/transformations/type_flow/entry_points_extra.json" ]
outputs = [ invoker.output ]
}
}