| # 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("//flutter/common/config.gni") | |
| import("//flutter/impeller/tools/impeller.gni") | |
| import("//flutter/shell/gpu/gpu.gni") | |
| import("//flutter/testing/testing.gni") | |
| if (is_fuchsia) { | |
| import("//flutter/tools/fuchsia/gn-sdk/src/gn_configs.gni") | |
| } | |
| # Template to generate a dart embedder resource.cc file. | |
| # Required invoker inputs: | |
| # String output (name of output file) | |
| # List inputs (list of input files to be included) | |
| # String table_name (name of symbol for resource table) | |
| # String root_prefix (base directory of resources) | |
| # Optional invoker inputs: | |
| # String input_directory (directory of resources that are recursively added) | |
| # List deps | |
| # List datadeps | |
| template("dart_embedder_resources") { | |
| action(target_name) { | |
| script = "$dart_src/runtime/tools/create_resources.py" | |
| deps = [] | |
| if (defined(invoker.deps)) { | |
| deps += invoker.deps | |
| } | |
| datadeps = [] | |
| if (defined(invoker.datadeps)) { | |
| datadeps = invoker.datadeps | |
| } | |
| output = invoker.output | |
| outputs = [ output ] | |
| inputs = [ script ] + invoker.inputs | |
| root_prefix = rebase_path(invoker.root_prefix) | |
| args = [ | |
| "--output", | |
| rebase_path(output), | |
| "--outer_namespace", | |
| "flutter", | |
| "--inner_namespace", | |
| "runtime", | |
| "--table_name", | |
| invoker.table_name, | |
| "--root_prefix", | |
| root_prefix, | |
| ] | |
| if (defined(invoker.input_directory)) { | |
| args += [ | |
| "--client_root", | |
| rebase_path(invoker.input_directory), | |
| ] | |
| } | |
| args += rebase_path(invoker.inputs) | |
| } | |
| } | |
| source_set("platform_message_handler") { | |
| sources = [ "platform_message_handler.h" ] | |
| public_configs = [ "//flutter:config" ] | |
| deps = [ "//flutter/fml:fml" ] | |
| } | |
| source_set("display") { | |
| sources = [ | |
| "display.cc", | |
| "display.h", | |
| "variable_refresh_rate_display.cc", | |
| "variable_refresh_rate_display.h", | |
| "variable_refresh_rate_reporter.h", | |
| ] | |
| public_configs = [ "//flutter:config" ] | |
| deps = [ "//flutter/fml:fml" ] | |
| } | |
| source_set("common") { | |
| sources = [ | |
| "animator.cc", | |
| "animator.h", | |
| "context_options.cc", | |
| "context_options.h", | |
| "display_manager.cc", | |
| "display_manager.h", | |
| "dl_op_spy.cc", | |
| "dl_op_spy.h", | |
| "engine.cc", | |
| "engine.h", | |
| "pipeline.cc", | |
| "pipeline.h", | |
| "platform_view.cc", | |
| "platform_view.h", | |
| "pointer_data_dispatcher.cc", | |
| "pointer_data_dispatcher.h", | |
| "rasterizer.cc", | |
| "rasterizer.h", | |
| "resource_cache_limit_calculator.cc", | |
| "resource_cache_limit_calculator.h", | |
| "run_configuration.cc", | |
| "run_configuration.h", | |
| "serialization_callbacks.cc", | |
| "serialization_callbacks.h", | |
| "shell.cc", | |
| "shell.h", | |
| "shell_io_manager.cc", | |
| "shell_io_manager.h", | |
| "skia_event_tracer_impl.cc", | |
| "skia_event_tracer_impl.h", | |
| "snapshot_controller.cc", | |
| "snapshot_controller.h", | |
| "snapshot_controller_skia.cc", | |
| "snapshot_controller_skia.h", | |
| "snapshot_surface_producer.h", | |
| "switches.cc", | |
| "switches.h", | |
| "thread_host.cc", | |
| "thread_host.h", | |
| "vsync_waiter.cc", | |
| "vsync_waiter.h", | |
| "vsync_waiter_fallback.cc", | |
| "vsync_waiter_fallback.h", | |
| ] | |
| public_configs = [ "//flutter:config" ] | |
| public_deps = [ | |
| ":display", | |
| ":platform_message_handler", | |
| "//flutter/shell/version", | |
| "//flutter/third_party/rapidjson", | |
| "//flutter/third_party/tonic", | |
| "//flutter/third_party/txt", | |
| ] | |
| deps = [ | |
| "$dart_src/runtime:dart_api", | |
| "//flutter/assets", | |
| "//flutter/common", | |
| "//flutter/common/graphics", | |
| "//flutter/flow", | |
| "//flutter/fml", | |
| "//flutter/lib/ui", | |
| "//flutter/runtime", | |
| "//flutter/shell/common:base64", | |
| "//flutter/shell/profiling", | |
| "//flutter/skia", | |
| ] | |
| if (impeller_supports_rendering) { | |
| sources += [ | |
| "snapshot_controller_impeller.cc", | |
| "snapshot_controller_impeller.h", | |
| ] | |
| deps += [ "//flutter/impeller" ] | |
| } | |
| } | |
| # These are in their own source_set to avoid a dependency cycle with //common/graphics | |
| source_set("base64") { | |
| sources = [ | |
| "base64.cc", | |
| "base64.h", | |
| ] | |
| deps = [ "//flutter/fml" ] | |
| } | |
| template("shell_host_executable") { | |
| executable(target_name) { | |
| testonly = true | |
| deps = [] | |
| ldflags = [] | |
| forward_variables_from(invoker, "*") | |
| deps += [ | |
| ":common", | |
| "//flutter/lib/snapshot", | |
| "//flutter/runtime:libdart", | |
| ] | |
| public_configs = [ "//flutter:export_dynamic_symbols" ] | |
| } | |
| } | |
| if (enable_unittests) { | |
| shell_gpu_configuration("shell_unittests_gpu_configuration") { | |
| enable_software = test_enable_software | |
| enable_vulkan = test_enable_vulkan | |
| enable_gl = test_enable_gl | |
| enable_metal = test_enable_metal | |
| } | |
| test_fixtures("shell_unittests_fixtures") { | |
| dart_main = "fixtures/shell_test.dart" | |
| fixtures = [ | |
| "fixtures/shelltest_screenshot.png", | |
| "fixtures/hello_loop_2.gif", | |
| "//flutter/third_party/txt/third_party/fonts/Roboto-Regular.ttf", | |
| ] | |
| } | |
| shell_host_executable("shell_benchmarks") { | |
| sources = [ | |
| "dart_native_benchmarks.cc", | |
| "shell_benchmarks.cc", | |
| ] | |
| deps = [ | |
| ":shell_unittests_fixtures", | |
| "//flutter/benchmarking", | |
| "//flutter/flow", | |
| "//flutter/testing:dart", | |
| "//flutter/testing:fixture_test", | |
| "//flutter/testing:testing_lib", | |
| ] | |
| } | |
| config("shell_test_fixture_sources_config") { | |
| defines = [ | |
| # Required for MSVC STL | |
| "_ENABLE_ATOMIC_ALIGNMENT_FIX", | |
| ] | |
| } | |
| source_set("shell_test_fixture_sources") { | |
| testonly = true | |
| sources = [ | |
| "shell_test.cc", | |
| "shell_test.h", | |
| "shell_test_external_view_embedder.cc", | |
| "shell_test_external_view_embedder.h", | |
| "shell_test_platform_view.cc", | |
| "shell_test_platform_view.h", | |
| "vsync_waiters_test.cc", | |
| "vsync_waiters_test.h", | |
| ] | |
| public_deps = [ | |
| "//flutter/common/graphics", | |
| "//flutter/flow", | |
| "//flutter/runtime", | |
| "//flutter/shell/common", | |
| "//flutter/testing", | |
| ] | |
| deps = [ | |
| ":shell_unittests_gpu_configuration", | |
| "//flutter/assets", | |
| "//flutter/common", | |
| "//flutter/lib/ui", | |
| "//flutter/skia", | |
| "//flutter/testing:dart", | |
| "//flutter/testing:fixture_test", | |
| "//flutter/third_party/rapidjson", | |
| ] | |
| if (impeller_supports_rendering) { | |
| deps += [ "//flutter/impeller" ] | |
| } | |
| public_configs = [ | |
| ":shell_test_fixture_sources_config", | |
| ":shell_unittests_gpu_configuration_config", | |
| ] | |
| if (test_enable_gl) { | |
| sources += [ | |
| "shell_test_platform_view_gl.cc", | |
| "shell_test_platform_view_gl.h", | |
| ] | |
| public_deps += [ "//flutter/testing:opengl" ] | |
| } | |
| if (test_enable_vulkan) { | |
| sources += [ | |
| "shell_test_platform_view_vulkan.cc", | |
| "shell_test_platform_view_vulkan.h", | |
| ] | |
| public_deps += [ | |
| "//flutter/flutter_vma:flutter_skia_vma", | |
| "//flutter/vulkan", | |
| ] | |
| } | |
| if (test_enable_metal) { | |
| sources += [ | |
| "shell_test_platform_view_metal.h", | |
| "shell_test_platform_view_metal.mm", | |
| ] | |
| public_deps += [ "//flutter/shell/platform/darwin/graphics" ] | |
| } | |
| } | |
| shell_host_executable("shell_unittests") { | |
| testonly = true | |
| sources = [ | |
| "animator_unittests.cc", | |
| "base64_unittests.cc", | |
| "context_options_unittests.cc", | |
| "dl_op_spy_unittests.cc", | |
| "engine_animator_unittests.cc", | |
| "engine_unittests.cc", | |
| "input_events_unittests.cc", | |
| "persistent_cache_unittests.cc", | |
| "pipeline_unittests.cc", | |
| "rasterizer_unittests.cc", | |
| "resource_cache_limit_calculator_unittests.cc", | |
| "shell_unittests.cc", | |
| "switches_unittests.cc", | |
| "variable_refresh_rate_display_unittests.cc", | |
| "vsync_waiter_unittests.cc", | |
| ] | |
| deps = [ | |
| ":shell_test_fixture_sources", | |
| ":shell_unittests_fixtures", | |
| "//flutter/assets", | |
| "//flutter/common/graphics", | |
| "//flutter/display_list/testing:display_list_testing", | |
| "//flutter/shell/common:base64", | |
| "//flutter/shell/profiling:profiling_unittests", | |
| "//flutter/shell/version", | |
| "//flutter/testing:fixture_test", | |
| "//flutter/third_party/googletest:gmock", | |
| ] | |
| if (is_fuchsia) { | |
| sources += [ "shell_fuchsia_unittests.cc" ] | |
| deps += [ | |
| "${fuchsia_sdk}/fidl/fuchsia.intl", | |
| "${fuchsia_sdk}/fidl/fuchsia.settings", | |
| "${fuchsia_sdk}/pkg/fidl_cpp", | |
| "${fuchsia_sdk}/pkg/sys_cpp", | |
| ] | |
| } else if (shell_enable_gl) { | |
| # TODO(63837): This test is hard-coded to use a TestGLSurface so it cannot | |
| # run on fuchsia or when GL is not enabled. | |
| sources += [ "shell_io_manager_unittests.cc" ] | |
| deps += [ "//flutter/third_party/swiftshader" ] | |
| } | |
| if (shell_enable_gl) { | |
| deps += [ | |
| "//flutter/third_party/angle:libEGL_static", | |
| "//flutter/third_party/angle:libGLESv2_static", | |
| "//flutter/third_party/swiftshader", | |
| ] | |
| } | |
| } | |
| } |