# 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. assert(is_fuchsia) import("//build/fuchsia/sdk.gni") import("$flutter_root/common/fuchsia_config.gni") import("$flutter_root/tools/fuchsia/common_libs.gni") import("$flutter_root/tools/fuchsia/dart.gni") import("$flutter_root/tools/fuchsia/package_dir.gni") template("runner") { assert(defined(invoker.product), "The parameter 'product' must be defined") assert(defined(invoker.output_name), "The parameter 'output_name' must be defined") invoker_output_name = invoker.output_name extra_defines = invoker.extra_defines extra_deps = invoker.extra_deps executable(target_name) { output_name = invoker_output_name sources = [ "builtin_libraries.cc", "builtin_libraries.h", "dart_component_controller.cc", "dart_component_controller.h", "dart_runner.cc", "dart_runner.h", "logging.h", "main.cc", "mapped_resource.cc", "mapped_resource.h", "service_isolate.cc", "service_isolate.h", ] defines = extra_defines dart_deps = [] if (!invoker.product) { dart_deps += [ "//third_party/dart/runtime/bin:dart_io_api" ] } else { dart_deps += [ "//third_party/dart/runtime/bin:dart_io_api_product" ] } deps = [ "$flutter_root/common", "$flutter_root/fml", "$flutter_root/runtime:libdart", "$flutter_root/shell/platform/fuchsia/dart-pkg/fuchsia", "$flutter_root/shell/platform/fuchsia/dart-pkg/zircon", "$flutter_root/shell/platform/fuchsia/runtime/dart/utils", "$fuchsia_sdk_root/pkg:async-cpp", "$fuchsia_sdk_root/pkg:async-loop", "$fuchsia_sdk_root/pkg:async-loop-cpp", "$fuchsia_sdk_root/pkg:fidl_cpp", "$fuchsia_sdk_root/pkg:syslog", "$fuchsia_sdk_root/pkg:trace", "$fuchsia_sdk_root/pkg:trace-provider-so", "$fuchsia_sdk_root/pkg/lib/sys/cpp", "$fuchsia_sdk_root/pkg/lib/vfs/cpp", "//third_party/tonic", ] + dart_deps + extra_deps } } runner("dart_jit_runner_bin") { output_name = "dart_jit_runner" product = false extra_defines = [] if (flutter_runtime_mode == "profile") { extra_defines += [ "FLUTTER_PROFILE" ] } extra_deps = [ "//third_party/dart/runtime:libdart_jit", "//third_party/dart/runtime/platform:libdart_platform_jit", ] } runner("dart_jit_product_runner_bin") { output_name = "dart_jit_product_runner" product = true extra_defines = [ "DART_PRODUCT" ] extra_deps = [ "//third_party/dart/runtime:libdart_jit_product", "//third_party/dart/runtime/platform:libdart_platform_jit_product", ] } template("jit_runner_package") { assert(defined(invoker.product), "The parameter 'product' must be defined") product_suffix = "" if (invoker.product) { product_suffix = "_product" } package_dir(target_name) { deps = [ ":dart_jit${product_suffix}_runner_bin", "kernel:kernel_core_snapshot${product_suffix}", ] if (!invoker.product) { deps += [ observatory_target ] } binary = "dart_jit${product_suffix}_runner" meta_dir = "$flutter_root/shell/platform/fuchsia/dart_runner/meta" libraries = common_libs resources = [ { path = rebase_path("$target_gen_dir/kernel/vm_data${product_suffix}.bin") dest = "vm_snapshot_data.bin" }, { path = rebase_path( "$target_gen_dir/kernel/vm_instructions${product_suffix}.bin") dest = "vm_snapshot_instructions.bin" }, { path = rebase_path( "$target_gen_dir/kernel/isolate_data${product_suffix}.bin") dest = "isolate_core_snapshot_data.bin" }, { path = rebase_path( "$target_gen_dir/kernel/isolate_instructions${product_suffix}.bin") dest = "isolate_core_snapshot_instructions.bin" }, ] if (!invoker.product) { resources += [ { path = rebase_path(observatory_archive_file) dest = "observatory.tar" }, ] } meta = [ { path = rebase_path("meta/dart_jit${product_suffix}_runner.cmx") dest = "dart_jit${product_suffix}_runner.cmx" }, ] } } jit_runner_package("dart_jit_runner") { product = false } jit_runner_package("dart_jit_product_runner") { product = true }