# 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 ] } }