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