blob: d831ccd47be25346cc166855d4128b8979a67940 [file] [log] [blame]
# Copyright 2013 The Flutter 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/compiled_action.gni")
import("//build/fuchsia/sdk.gni")
import("//flutter/common/config.gni")
import("//flutter/tools/fuchsia/dart.gni")
import("//third_party/dart/utils/compile_platform.gni")
compile_platform("kernel_platform_files") {
single_root_scheme = "org-dartlang-sdk"
single_root_base = rebase_path("../../../../../../")
libraries_specification_uri = "org-dartlang-sdk:///flutter/shell/platform/fuchsia/dart_runner/kernel/libraries.json"
outputs = [
"$root_out_dir/dart_runner_patched_sdk/platform_strong.dill",
"$root_out_dir/dart_runner_patched_sdk/vm_outline_strong.dill",
]
args = [
"--nnbd-agnostic",
"--target=dart_runner",
"dart:core",
]
}
template("create_kernel_core_snapshot") {
assert(defined(invoker.product), "The parameter 'product' must be defined")
product_suffix = ""
if (invoker.product) {
product_suffix = "_product"
}
compiled_action(target_name) {
deps = [ ":kernel_platform_files" ]
platform_dill = "$root_out_dir/dart_runner_patched_sdk/platform_strong.dill"
inputs = [ platform_dill ]
vm_snapshot_data = "$target_gen_dir/vm_data${product_suffix}.bin"
vm_snapshot_instructions =
"$target_gen_dir/vm_instructions${product_suffix}.bin"
isolate_snapshot_data = "$target_gen_dir/isolate_data${product_suffix}.bin"
isolate_snapshot_instructions =
"$target_gen_dir/isolate_instructions${product_suffix}.bin"
snapshot_profile = "$target_gen_dir/snapshot_profile${product_suffix}.json"
outputs = [
vm_snapshot_data,
vm_snapshot_instructions,
isolate_snapshot_data,
isolate_snapshot_instructions,
snapshot_profile,
]
gen_snapshot_to_use = gen_snapshot
if (invoker.product) {
gen_snapshot_to_use = gen_snapshot_product
}
tool = gen_snapshot_to_use
args = [
"--lazy_async_stacks",
"--enable_mirrors=false",
"--deterministic",
"--snapshot_kind=core-jit",
"--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),
]
# No asserts in debug or release product.
# No asserts in release with flutter_profile=true (non-product)
# Yes asserts in non-product debug.
if (!invoker.product &&
(is_debug || !(flutter_runtime_mode == "profile"))) {
args += [ "--enable_asserts" ]
}
args += [ rebase_path(platform_dill) ]
}
}
create_kernel_core_snapshot("kernel_core_snapshot") {
product = false
}
create_kernel_core_snapshot("kernel_core_snapshot_product") {
product = true
}