| # 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/impeller/tools/impeller.gni") |
| import("//flutter/shell/gpu/gpu.gni") |
| |
| if (is_fuchsia) { |
| import("//flutter/tools/fuchsia/gn-sdk/src/gn_configs.gni") |
| } |
| |
| group("testing") { |
| public_deps = [ ":flutter_tester" ] |
| if (current_toolchain == host_toolchain) { |
| public_deps += [ ":flutter_tester_opengles" ] |
| } |
| } |
| |
| shell_gpu_configuration("tester_gpu_configuration") { |
| enable_software = true |
| enable_gl = false |
| enable_vulkan = true |
| enable_metal = shell_enable_metal |
| } |
| |
| shell_gpu_configuration("tester_opengles_gpu_configuration") { |
| enable_software = false |
| enable_gl = true |
| enable_vulkan = false |
| enable_metal = false |
| } |
| |
| template("tester") { |
| executable(target_name) { |
| output_name = invoker.output_name |
| |
| public_configs = [ |
| "//flutter:config", |
| "//flutter:export_dynamic_test_symbols", |
| ] |
| |
| if (defined(invoker.configs)) { |
| configs += invoker.configs |
| } |
| |
| sources = [ |
| "tester_context.h", |
| "tester_context_gles_factory.h", |
| "tester_context_mtl_factory.h", |
| "tester_context_vk_factory.h", |
| "tester_main.cc", |
| ] |
| if (defined(invoker.sources)) { |
| sources += invoker.sources |
| } |
| |
| libs = [] |
| if (is_win) { |
| libs += [ |
| "psapi.lib", |
| "user32.lib", |
| "FontSub.lib", |
| "shlwapi.lib", |
| ] |
| } |
| |
| deps = [ |
| "$dart_src/runtime:libdart_jit", |
| "$dart_src/runtime/bin:common_embedder_dart_io", |
| "//flutter/assets", |
| "//flutter/common", |
| "//flutter/flow", |
| "//flutter/fml", |
| "//flutter/lib/snapshot", |
| "//flutter/shell/common", |
| "//flutter/shell/gpu:gpu_surface_software", |
| "//flutter/skia", |
| "//flutter/third_party/tonic", |
| "//third_party/abseil-cpp/absl/base:no_destructor", |
| ] |
| if (impeller_supports_rendering) { |
| deps += [ "//flutter/impeller" ] |
| } |
| if (defined(invoker.deps)) { |
| deps += invoker.deps |
| } |
| |
| if (defined(invoker.metadata)) { |
| metadata = invoker.metadata |
| } |
| } |
| } |
| |
| tester("flutter_tester") { |
| output_name = "flutter_tester" |
| |
| if (impeller_supports_rendering) { |
| configs = [ ":tester_gpu_configuration_config" ] |
| sources = [ "tester_context_vk_factory.cc" ] |
| if (shell_enable_metal) { |
| sources += [ "tester_context_mtl_factory.mm" ] |
| } |
| deps = [ |
| ":tester_gpu_configuration", |
| "//flutter/third_party/swiftshader/src/Vulkan:swiftshader_libvulkan_static", |
| ] |
| } |
| |
| metadata = { |
| entitlement_file_path = [ "flutter_tester" ] |
| } |
| } |
| |
| if (current_toolchain == host_toolchain) { |
| tester("flutter_tester_opengles") { |
| output_name = "flutter_tester_opengles" |
| |
| if (impeller_supports_rendering) { |
| configs = [ ":tester_opengles_gpu_configuration_config" ] |
| sources = [ "tester_context_gles_factory.cc" ] |
| deps = [ |
| ":tester_opengles_gpu_configuration", |
| "//flutter/testing:test_swangle_utils", |
| "//flutter/testing:test_swiftshader_utils", |
| "//third_party/abseil-cpp/absl/status:statusor", |
| ] |
| } |
| } |
| } |