| # 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/testing/testing.gni") |
| |
| source_set("test_font") { |
| sources = [ |
| "test_font_data.cc", |
| "test_font_data.h", |
| ] |
| deps = [ "//third_party/skia" ] |
| public_configs = [ "//flutter:config" ] |
| defines = [] |
| if (flutter_runtime_mode == "debug" || current_toolchain == host_toolchain) { |
| # Though the test font data is small, we dont want to add to the binary size |
| # on the device (in profile and release modes). We only add the same on the |
| # host test shells and the debug device shell. |
| defines += [ "EMBED_TEST_FONT_DATA=1" ] |
| } |
| } |
| |
| # Picks the libdart implementation based on the Flutter runtime mode. |
| group("libdart") { |
| public_deps = [] |
| |
| if (flutter_runtime_mode == "profile" || flutter_runtime_mode == "release") { |
| public_deps += [ "//third_party/dart/runtime:libdart_precompiled_runtime" ] |
| } else { |
| public_deps += [ |
| "//flutter/lib/snapshot", |
| "//third_party/dart/runtime:libdart_jit", |
| ] |
| } |
| } |
| |
| source_set("dart_plugin_registrant") { |
| sources = [ |
| "dart_plugin_registrant.cc", |
| "dart_plugin_registrant.h", |
| ] |
| deps = [ |
| "//flutter/fml", |
| "//flutter/third_party/tonic", |
| "//third_party/dart/runtime:dart_api", |
| ] |
| } |
| |
| source_set("runtime") { |
| sources = [ |
| "dart_isolate.cc", |
| "dart_isolate.h", |
| "dart_isolate_group_data.cc", |
| "dart_isolate_group_data.h", |
| "dart_service_isolate.cc", |
| "dart_service_isolate.h", |
| "dart_snapshot.cc", |
| "dart_snapshot.h", |
| "dart_timestamp_provider.cc", |
| "dart_timestamp_provider.h", |
| "dart_vm.cc", |
| "dart_vm.h", |
| "dart_vm_data.cc", |
| "dart_vm_data.h", |
| "dart_vm_initializer.cc", |
| "dart_vm_initializer.h", |
| "dart_vm_lifecycle.cc", |
| "dart_vm_lifecycle.h", |
| "embedder_resources.cc", |
| "embedder_resources.h", |
| "isolate_configuration.cc", |
| "isolate_configuration.h", |
| "platform_data.cc", |
| "platform_data.h", |
| "ptrace_check.h", |
| "runtime_controller.cc", |
| "runtime_controller.h", |
| "runtime_delegate.cc", |
| "runtime_delegate.h", |
| "service_protocol.cc", |
| "service_protocol.h", |
| "skia_concurrent_executor.cc", |
| "skia_concurrent_executor.h", |
| ] |
| |
| if (is_ios && flutter_runtime_mode == "debug") { |
| # These contain references to private APIs and this TU must only be compiled in debug runtime modes. |
| sources += [ "ptrace_check.cc" ] |
| } |
| |
| public_deps = [ |
| "//flutter/lib/ui", |
| "//third_party/rapidjson", |
| ] |
| |
| public_configs = [ "//flutter:config" ] |
| |
| deps = [ |
| ":dart_plugin_registrant", |
| ":test_font", |
| "//flutter/assets", |
| "//flutter/common", |
| "//flutter/flow", |
| "//flutter/fml", |
| "//flutter/lib/io", |
| "//flutter/shell/common:display", |
| "//flutter/third_party/tonic", |
| "//flutter/third_party/txt", |
| "//third_party/dart/runtime:dart_api", |
| "//third_party/dart/runtime/bin:dart_io_api", |
| "//third_party/skia", |
| ] |
| |
| if (flutter_runtime_mode != "release" && !is_fuchsia) { |
| # Only link in Observatory in non-release modes on non-Fuchsia. Fuchsia |
| # instead puts Observatory into the runner's package. |
| deps += [ |
| "//third_party/dart/runtime/observatory:embedded_observatory_archive", |
| ] |
| } |
| } |
| |
| if (enable_unittests) { |
| test_fixtures("runtime_fixtures") { |
| dart_main = "fixtures/runtime_test.dart" |
| } |
| |
| executable("runtime_unittests") { |
| testonly = true |
| |
| sources = [ |
| "dart_isolate_unittests.cc", |
| "dart_lifecycle_unittests.cc", |
| "dart_service_isolate_unittests.cc", |
| "dart_vm_unittests.cc", |
| "type_conversions_unittests.cc", |
| ] |
| |
| public_configs = [ "//flutter:export_dynamic_symbols" ] |
| |
| public_deps = [ |
| ":libdart", |
| ":runtime", |
| ":runtime_fixtures", |
| "//flutter/common", |
| "//flutter/fml", |
| "//flutter/lib/snapshot", |
| "//flutter/testing", |
| "//flutter/testing:dart", |
| "//flutter/testing:fixture_test", |
| "//flutter/third_party/tonic", |
| "//third_party/dart/runtime/bin:elf_loader", |
| "//third_party/skia", |
| ] |
| } |
| |
| test_fixtures("no_plugin_registrant") { |
| dart_main = "fixtures/no_dart_plugin_registrant_test.dart" |
| use_target_as_artifact_prefix = true |
| } |
| |
| executable("no_dart_plugin_registrant_unittests") { |
| testonly = true |
| |
| sources = [ "no_dart_plugin_registrant_unittests.cc" ] |
| |
| public_configs = [ "//flutter:export_dynamic_symbols" ] |
| |
| public_deps = [ |
| ":no_plugin_registrant", |
| "//flutter/fml", |
| "//flutter/lib/snapshot", |
| "//flutter/testing", |
| "//flutter/testing:fixture_test", |
| ] |
| } |
| |
| test_fixtures("plugin_registrant") { |
| dart_main = "fixtures/dart_tool/flutter_build/dart_plugin_registrant.dart" |
| use_target_as_artifact_prefix = true |
| } |
| |
| executable("dart_plugin_registrant_unittests") { |
| testonly = true |
| |
| sources = [ "dart_plugin_registrant_unittests.cc" ] |
| |
| public_configs = [ "//flutter:export_dynamic_symbols" ] |
| |
| public_deps = [ |
| ":plugin_registrant", |
| "//flutter/fml", |
| "//flutter/lib/snapshot", |
| "//flutter/runtime:dart_plugin_registrant", |
| "//flutter/testing", |
| "//flutter/testing:fixture_test", |
| ] |
| } |
| } |