|  | # Copyright (c) 2019, 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") | 
|  | import("../../runtime/runtime_args.gni") | 
|  | import("../../sdk_args.gni") | 
|  |  | 
|  | _dart_root = get_path_info("../..", "abspath") | 
|  |  | 
|  | prebuilt_dart_action("bootstrap_gen_kernel") { | 
|  | deps = [ | 
|  | "$_dart_root/runtime/vm:kernel_platform_files($host_toolchain)", | 
|  | "$_dart_root/runtime/vm:vm_platform", | 
|  | ] | 
|  | gen_kernel_script = "$_dart_root/pkg/vm/bin/gen_kernel.dart" | 
|  | platform_dill = "$root_out_dir/vm_platform_strong.dill" | 
|  | dot_packages = rebase_path("$_dart_root/.dart_tool/package_config.json") | 
|  |  | 
|  | inputs = [ | 
|  | gen_kernel_script, | 
|  | platform_dill, | 
|  | dot_packages, | 
|  | ] | 
|  | output = "$target_gen_dir/bootstrap_gen_kernel.dill" | 
|  | outputs = [ output ] | 
|  |  | 
|  | depfile = "$output.d" | 
|  | vm_args = [ | 
|  | "--snapshot-kind=kernel", | 
|  | "--snapshot=" + rebase_path(output, root_build_dir), | 
|  | "--depfile=" + rebase_path(depfile, root_build_dir), | 
|  |  | 
|  | # Ensure gen_kernel.dart will use this SDK hash when consuming/producing kernel. | 
|  | "-Dsdk_hash=$sdk_hash", | 
|  |  | 
|  | "--packages=" + rebase_path(dot_packages, root_build_dir), | 
|  | ] | 
|  | script = gen_kernel_script | 
|  | args = [] | 
|  | } | 
|  |  | 
|  | import("../aot_snapshot.gni") | 
|  |  | 
|  | aot_snapshot("gen_kernel") { | 
|  | main_dart = "../../pkg/vm/bin/gen_kernel.dart" | 
|  | deps = [ "../../runtime/vm:vm_platform" ] | 
|  | output = "$root_gen_dir/gen_kernel_aot.dart.snapshot" | 
|  |  | 
|  | # dartaotruntime has dart_product_config applied to it, | 
|  | # so it is built in # product mode in both release and | 
|  | # product builds, and is only built in debug mode in debug | 
|  | # builds. The following line ensures that the dartaotruntime | 
|  | # and gen_kernel_aot snapshot in an SDK build are | 
|  | # always compatible with each other. | 
|  | force_product_mode = !dart_debug | 
|  | } |