| # 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" ] |
| } |
| |
| if (enable_vulkan_validation_layers) { |
| extra_defines += [ "VULKAN_VALIDATION_LAYERS_ENABLED" ] |
| } |
| |
| 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" ] |
| |
| if (enable_vulkan_validation_layers) { |
| extra_defines += [ "VULKAN_VALIDATION_LAYERS_ENABLED" ] |
| } |
| |
| 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" ] |
| } |
| |
| if (enable_vulkan_validation_layers) { |
| extra_defines += [ "VULKAN_VALIDATION_LAYERS_ENABLED" ] |
| } |
| |
| 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" ] |
| |
| if (enable_vulkan_validation_layers) { |
| extra_defines += [ "VULKAN_VALIDATION_LAYERS_ENABLED" ] |
| } |
| |
| 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", |
| "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/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" |
| }, |
| ] |
| } |