blob: 9412b261331f77da65cfd03ce237bd3feb1db2a3 [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.
assert(is_fuchsia)
import("//build/fuchsia/sdk.gni")
import("//flutter/common/config.gni")
import("//flutter/shell/gpu/gpu.gni")
import("//flutter/testing/testing.gni")
import("//flutter/tools/fuchsia/dart.gni")
import("//flutter/tools/fuchsia/fuchsia_archive.gni")
import("//flutter/tools/fuchsia/fuchsia_libs.gni")
import("//flutter/vulkan/config.gni")
import("engine_flutter_runner.gni")
shell_gpu_configuration("fuchsia_gpu_configuration") {
enable_software = false
enable_gl = false
enable_vulkan = true
enable_metal = false
}
# Things that explicitly being excluded:
# 1. Kernel snapshot framework mode.
# 2. Profiler symbols.
flutter_runner("jit") {
output_name = "flutter_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",
]
}
flutter_runner("jit_product") {
output_name = "flutter_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",
]
}
flutter_runner("aot") {
output_name = "flutter_aot_runner"
product = false
extra_defines = []
if (flutter_runtime_mode == "profile") {
extra_defines += [ "FLUTTER_PROFILE" ]
}
extra_deps = [
"//third_party/dart/runtime:libdart_precompiled_runtime",
"//third_party/dart/runtime/platform:libdart_platform_precompiled_runtime",
]
}
flutter_runner("aot_product") {
output_name = "flutter_aot_product_runner"
product = true
extra_defines = [ "DART_PRODUCT" ]
extra_deps = [
"//third_party/dart/runtime:libdart_precompiled_runtime_product",
"//third_party/dart/runtime/platform:libdart_platform_precompiled_runtime_product",
]
}
template("jit_runner") {
product = defined(invoker.product) && invoker.product
product_suffix = ""
if (product) {
product_suffix = "_product"
}
fuchsia_archive(target_name) {
snapshot_label = "kernel:kernel_core_snapshot${product_suffix}"
snapshot_gen_dir = get_label_info(snapshot_label, "target_gen_dir")
deps = [
":jit${product_suffix}",
snapshot_label,
]
if (!product) {
deps += [
"//flutter/shell/platform/fuchsia/runtime/dart/profiler_symbols:flutter_jit_runner",
observatory_target,
]
}
binary = "flutter_jit${product_suffix}_runner"
meta_dir = "//flutter/shell/platform/fuchsia/flutter/meta"
resources = [
{
path = rebase_path("//third_party/icu/common/icudtl.dat")
dest = "icudtl.dat"
},
]
if (!product) {
resources += [
{
path = rebase_path(observatory_archive_file)
dest = "observatory.tar"
},
{
path = rebase_path(
get_label_info(
"//flutter/shell/platform/fuchsia/runtime/dart/profiler_symbols:flutter_jit_runner",
"target_gen_dir") +
"/flutter_jit_runner.dartprofilersymbols")
dest = "flutter_jit_runner.dartprofilersymbols"
},
]
}
resources += [
{
path = rebase_path(
"$snapshot_gen_dir/vm_isolate_snapshot${product_suffix}.bin")
dest = "vm_snapshot_data.bin"
},
{
path = rebase_path(
"$snapshot_gen_dir/vm_snapshot_instructions${product_suffix}.bin")
dest = "vm_snapshot_instructions.bin"
},
{
path = rebase_path(
"$snapshot_gen_dir/isolate_snapshot${product_suffix}.bin")
dest = "isolate_core_snapshot_data.bin"
},
{
path = rebase_path(
"$snapshot_gen_dir/isolate_snapshot_instructions${product_suffix}.bin")
dest = "isolate_core_snapshot_instructions.bin"
},
]
_vulkan_icds = []
_libs = common_libs
if (enable_vulkan_validation_layers) {
_libs += vulkan_validation_libs
_vulkan_icds += vulkan_icds
}
resources += _vulkan_icds
libraries = _libs
meta = [
{
path = rebase_path("meta/flutter_jit${product_suffix}_runner.cmx")
dest = "flutter_jit${product_suffix}_runner.cmx"
},
]
}
}
template("aot_runner") {
product = defined(invoker.product) && invoker.product
product_suffix = ""
if (product) {
product_suffix = "_product"
}
fuchsia_archive(target_name) {
deps = [
":aot${product_suffix}",
]
if (!product) {
deps += [
"//flutter/shell/platform/fuchsia/runtime/dart/profiler_symbols:flutter_aot_runner",
observatory_target,
]
}
meta_dir = "//flutter/shell/platform/fuchsia/flutter/meta"
binary = "flutter_aot${product_suffix}_runner"
resources = [
{
path = rebase_path("//third_party/icu/common/icudtl.dat")
dest = "icudtl.dat"
},
]
if (!product) {
resources += [
{
path = rebase_path(observatory_archive_file)
dest = "observatory.tar"
},
{
path = rebase_path(
get_label_info(
"//flutter/shell/platform/fuchsia/runtime/dart/profiler_symbols:flutter_aot_runner",
"target_gen_dir") +
"/flutter_aot_runner.dartprofilersymbols")
dest = "flutter_aot_runner.dartprofilersymbols"
},
]
}
_vulkan_icds = []
_libs = common_libs
if (enable_vulkan_validation_layers) {
_libs += vulkan_validation_libs
_vulkan_icds += vulkan_icds
}
resources += _vulkan_icds
libraries = _libs
meta = [
{
path = rebase_path("meta/flutter_aot${product_suffix}_runner.cmx")
dest = "flutter_aot${product_suffix}_runner.cmx"
},
]
}
}
aot_runner("flutter_aot_runner") {
product = false
}
aot_runner("flutter_aot_product_runner") {
product = true
}
jit_runner("flutter_jit_runner") {
product = false
}
jit_runner("flutter_jit_product_runner") {
product = true
}
test_fixtures("flutter_runner_fixtures") {
fixtures = []
}
executable("flutter_runner_unittests") {
testonly = true
output_name = "flutter_runner_tests"
sources = [
"accessibility_bridge.cc",
"accessibility_bridge.h",
"accessibility_bridge_unittest.cc",
"flutter_runner_fakes.h",
"flutter_runner_product_configuration.cc",
"flutter_runner_product_configuration.h",
"fuchsia_intl.cc",
"fuchsia_intl.h",
"fuchsia_intl_unittest.cc",
"logging.h",
"loop.cc",
"loop.h",
"platform_view.cc",
"platform_view.h",
"platform_view_unittest.cc",
"runner.cc",
"runner.h",
"runner_unittest.cc",
"surface.cc",
"surface.h",
"task_observers.cc",
"task_observers.h",
"task_runner_adapter.cc",
"task_runner_adapter.h",
"tests/flutter_runner_product_configuration_unittests.cc",
"tests/vsync_recorder_unittests.cc",
"thread.cc",
"thread.h",
"vsync_recorder.cc",
"vsync_recorder.h",
"vsync_waiter.cc",
"vsync_waiter.h",
"vsync_waiter_unittests.cc",
]
# This is needed for //third_party/googletest for linking zircon symbols.
libs = [ "//fuchsia/sdk/$host_os/arch/$target_cpu/sysroot/lib/libzircon.so" ]
deps = [
":aot",
":flutter_runner_fixtures",
"//build/fuchsia/fidl:fuchsia.accessibility.semantics",
"//build/fuchsia/pkg:async-default",
"//build/fuchsia/pkg:async-loop-cpp",
"//build/fuchsia/pkg:async-loop-default",
"//build/fuchsia/pkg:scenic_cpp",
"//build/fuchsia/pkg:sys_cpp_testing",
"//flutter/lib/ui",
"//flutter/runtime",
"//flutter/shell/common",
"//flutter/shell/platform/fuchsia/runtime/dart/utils",
"//flutter/testing",
"//third_party/dart/runtime:libdart_jit",
"//third_party/dart/runtime/platform:libdart_platform_jit",
]
}
executable("flutter_runner_tzdata_unittests") {
testonly = true
output_name = "flutter_runner_tzdata_tests"
sources = [
"runner.cc",
"runner.h",
"runner_tzdata_unittest.cc",
]
# This is needed for //third_party/googletest for linking zircon symbols.
libs = [ "//fuchsia/sdk/$host_os/arch/$target_cpu/sysroot/lib/libzircon.so" ]
deps = [
":aot",
":flutter_runner_fixtures",
"//build/fuchsia/fidl:fuchsia.accessibility.semantics",
"//build/fuchsia/pkg:async-loop-cpp",
"//build/fuchsia/pkg:async-loop-default",
"//build/fuchsia/pkg:scenic_cpp",
"//build/fuchsia/pkg:sys_cpp_testing",
"//flutter/lib/ui",
"//flutter/runtime",
"//flutter/shell/common",
"//flutter/shell/platform/fuchsia/runtime/dart/utils",
"//flutter/testing",
"//third_party/dart/runtime:libdart_jit",
"//third_party/dart/runtime/platform:libdart_platform_jit",
"//third_party/icu",
"//third_party/skia",
]
}
fuchsia_archive("flutter_runner_tests") {
testonly = true
deps = [
":flutter_runner_unittests",
]
binary = "$target_name"
resources = [
{
path = rebase_path("//third_party/icu/common/icudtl.dat")
dest = "icudtl.dat"
},
{
path = rebase_path(
"//flutter/shell/platform/fuchsia/flutter/tests/tzdata/2019a/44/le/metaZones.res")
dest = "tzdata/metaZones.res"
},
{
path = rebase_path(
"//flutter/shell/platform/fuchsia/flutter/tests/tzdata/2019a/44/le/timezoneTypes.res")
dest = "tzdata/timezoneTypes.res"
},
{
path = rebase_path(
"//flutter/shell/platform/fuchsia/flutter/tests/tzdata/2019a/44/le/zoneinfo64.res")
dest = "tzdata/zoneinfo64.res"
},
]
meta_dir = "//flutter/shell/platform/fuchsia/flutter/meta"
libraries = common_libs
meta = [
{
path = rebase_path("meta/$target_name.cmx")
dest = "$target_name.cmx"
},
]
}
fuchsia_archive("flutter_runner_tzdata_tests") {
testonly = true
deps = [
":flutter_runner_tzdata_unittests",
]
binary = "$target_name"
resources = [
{
path = rebase_path("//third_party/icu/common/icudtl.dat")
dest = "icudtl.dat"
},
]
meta_dir = "//flutter/shell/platform/fuchsia/flutter/meta"
libraries = common_libs
meta = [
{
path = rebase_path("meta/$target_name.cmx")
dest = "$target_name.cmx"
},
]
}
executable("flutter_runner_scenic_unittests") {
testonly = true
output_name = "flutter_runner_scenic_tests"
sources = [
"component.cc",
"component.h",
"compositor_context.cc",
"compositor_context.h",
"engine.cc",
"engine.h",
"fuchsia_intl.cc",
"fuchsia_intl.h",
"isolate_configurator.cc",
"isolate_configurator.h",
"logging.h",
"loop.cc",
"loop.h",
"platform_view.cc",
"platform_view.h",
"runner.cc",
"runner.h",
"session_connection.cc",
"session_connection.h",
"surface.cc",
"surface.h",
"task_observers.cc",
"task_observers.h",
"task_runner_adapter.cc",
"task_runner_adapter.h",
"tests/session_connection_unittests.cc",
"thread.cc",
"thread.h",
"unique_fdio_ns.h",
"vsync_recorder.cc",
"vsync_recorder.h",
"vsync_waiter.cc",
"vsync_waiter.h",
"vsync_waiter_unittests.cc",
"vulkan_surface.cc",
"vulkan_surface.h",
"vulkan_surface_pool.cc",
"vulkan_surface_pool.h",
"vulkan_surface_producer.cc",
"vulkan_surface_producer.h",
]
# This is needed for //third_party/googletest for linking zircon symbols.
libs = [ "//fuchsia/sdk/$host_os/arch/$target_cpu/sysroot/lib/libzircon.so" ]
deps = [
":flutter_runner_fixtures",
":jit",
"$fuchsia_sdk_root/fidl:fuchsia.ui.policy",
"$fuchsia_sdk_root/pkg:trace-provider-so",
"//build/fuchsia/fidl:fuchsia.accessibility.semantics",
"//build/fuchsia/pkg:async-default",
"//build/fuchsia/pkg:async-loop-cpp",
"//build/fuchsia/pkg:async-loop-default",
"//build/fuchsia/pkg:scenic_cpp",
"//build/fuchsia/pkg:sys_cpp_testing",
"//flutter/common:common",
"//flutter/flow:flow",
"//flutter/lib/ui",
"//flutter/runtime",
"//flutter/shell/common",
"//flutter/shell/platform/fuchsia/dart-pkg/fuchsia:sdk_ext",
"//flutter/shell/platform/fuchsia/dart-pkg/zircon:zircon",
"//flutter/shell/platform/fuchsia/runtime/dart/utils",
"//flutter/testing",
"//flutter/vulkan:vulkan",
"//third_party/dart/runtime:libdart_jit",
"//third_party/dart/runtime/platform:libdart_platform_jit",
"//third_party/icu",
"//third_party/skia",
]
public_deps = [
"//third_party/googletest:gtest",
]
}
fuchsia_archive("flutter_runner_scenic_tests") {
testonly = true
deps = [
":flutter_runner_scenic_unittests",
]
binary = "$target_name"
resources = [
{
path = rebase_path("//third_party/icu/common/icudtl.dat")
dest = "icudtl.dat"
},
]
meta_dir = "//flutter/shell/platform/fuchsia/flutter/meta"
libraries = common_libs
meta = [
{
path = rebase_path("meta/$target_name.cmx")
dest = "$target_name.cmx"
},
]
}