| # Copyright 2018 The Fuchsia Authors. 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_tool.gni") |
| import("//third_party/dart/utils/compile_platform.gni") |
| import("//topaz/runtime/dart/dart_kernel.gni") |
| |
| compile_platform("kernel_platform_files") { |
| single_root_scheme = "org-dartlang-sdk" |
| single_root_base = rebase_path("../../../../") |
| |
| libraries_specification_uri = |
| "org-dartlang-sdk:///topaz/runtime/flutter_runner/kernel/libraries.json" |
| |
| outputs = [ |
| "$root_out_dir/flutter_runner_patched_sdk/platform_strong.dill", |
| "$root_out_dir/flutter_runner_patched_sdk/vm_outline_strong.dill", |
| ] |
| |
| args = [ |
| "--bytecode", |
| "--target=flutter_runner", |
| "dart:core", |
| ] |
| } |
| |
| dart_kernel("framework_shim") { |
| platform_name = "flutter_runner" |
| platform_deps = [ "//topaz/runtime/flutter_runner/kernel:kernel_platform_files" ] |
| platform_path = "$root_out_dir/flutter_runner_patched_sdk" |
| disable_analysis = true |
| gen_bytecode = true |
| args = [] |
| |
| main_dart = "framework_shim.dart" |
| deps = [ |
| "//third_party/dart-pkg/git/flutter/packages/flutter", |
| ] |
| manifest = "$target_gen_dir/framework_shim.dilpmanifest" |
| } |
| |
| template("core_snapshot") { |
| assert(defined(invoker.product), |
| "core_snapshot requires 'product' to be defined") |
| assert(defined(invoker.framework), |
| "core_snapshot requires 'framework' to be defined") |
| |
| suffix = "" |
| if (invoker.product) { |
| suffix = "${suffix}_product" |
| } |
| if (invoker.framework) { |
| suffix = "${suffix}_framework" |
| } |
| |
| action(target_name) { |
| deps = gen_snapshot_deps + [ ":kernel_platform_files" ] |
| |
| platform_dill = "$root_out_dir/flutter_runner_patched_sdk/platform_strong.dill" |
| compilation_trace = "//topaz/runtime/flutter_runner/compilation_trace.txt" |
| inputs = [ |
| platform_dill, |
| compilation_trace, |
| ] |
| |
| vm_snapshot_data = |
| "$target_gen_dir/vm_isolate_snapshot${suffix}.bin" |
| vm_snapshot_instructions = |
| "$target_gen_dir/vm_snapshot_instructions${suffix}.bin" |
| isolate_snapshot_data = |
| "$target_gen_dir/isolate_snapshot${suffix}.bin" |
| isolate_snapshot_instructions = |
| "$target_gen_dir/isolate_snapshot_instructions${suffix}.bin" |
| snapshot_profile = |
| "$target_gen_dir/snapshot_profile${suffix}.json" |
| outputs = [ |
| vm_snapshot_data, |
| vm_snapshot_instructions, |
| isolate_snapshot_data, |
| isolate_snapshot_instructions, |
| snapshot_profile, |
| ] |
| |
| if (invoker.product) { |
| script = gen_snapshot_product |
| } else { |
| script = gen_snapshot |
| } |
| args = [ |
| # TODO(FL-208): remove this when the interpreter supports field guards. |
| "--no_use_field_guards", |
| |
| # TODO(FL-117): Re-enable causal async stack traces when this issue is |
| # addressed. |
| "--no_causal_async_stacks", |
| "--use_bytecode_compiler", |
| "--enable_mirrors=false", |
| "--deterministic", |
| "--snapshot_kind=core-jit", |
| "--load_compilation_trace=" + |
| rebase_path(compilation_trace, root_build_dir), |
| "--vm_snapshot_data=" + rebase_path(vm_snapshot_data, root_build_dir), |
| "--vm_snapshot_instructions=" + |
| rebase_path(vm_snapshot_instructions, root_build_dir), |
| "--isolate_snapshot_data=" + |
| rebase_path(isolate_snapshot_data, root_build_dir), |
| "--isolate_snapshot_instructions=" + |
| rebase_path(isolate_snapshot_instructions, root_build_dir), |
| "--write_v8_snapshot_profile_to=" + |
| rebase_path(snapshot_profile, root_build_dir), |
| ] |
| if (is_debug && !invoker.product) { |
| args += [ "--enable_asserts" ] |
| } |
| args += [ rebase_path(platform_dill) ] |
| |
| if (invoker.framework) { |
| deps += [ ":framework_shim_kernel" ] |
| inputs += [ "$target_gen_dir/framework_shim_kernel.dil" ] |
| args += [ rebase_path("$target_gen_dir/framework_shim_kernel.dil") ] |
| } |
| } |
| } |
| |
| core_snapshot("kernel_core_snapshot") { |
| product = false |
| framework = false |
| } |
| |
| core_snapshot("kernel_core_snapshot_framework") { |
| product = false |
| framework = true |
| } |
| |
| core_snapshot("kernel_core_snapshot_product") { |
| product = true |
| framework = false |
| } |
| |
| core_snapshot("kernel_core_snapshot_product_framework") { |
| product = true |
| framework = true |
| } |