|  | # 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("//third_party/glfw/glfw_args.gni") | 
|  | import("tools/impeller.gni") | 
|  |  | 
|  | config("impeller_public_config") { | 
|  | include_dirs = [ ".." ] | 
|  |  | 
|  | defines = [] | 
|  |  | 
|  | if (impeller_debug) { | 
|  | defines += [ "IMPELLER_DEBUG=1" ] | 
|  | } | 
|  |  | 
|  | if (impeller_capture) { | 
|  | defines += [ "IMPELLER_ENABLE_CAPTURE=1" ] | 
|  | } | 
|  |  | 
|  | if (impeller_supports_rendering) { | 
|  | defines += [ "IMPELLER_SUPPORTS_RENDERING=1" ] | 
|  | } | 
|  |  | 
|  | if (impeller_enable_metal) { | 
|  | defines += [ "IMPELLER_ENABLE_METAL=1" ] | 
|  | } | 
|  |  | 
|  | if (impeller_enable_opengles) { | 
|  | defines += [ "IMPELLER_ENABLE_OPENGLES=1" ] | 
|  | } | 
|  |  | 
|  | if (impeller_enable_vulkan) { | 
|  | defines += [ "IMPELLER_ENABLE_VULKAN=1" ] | 
|  | } | 
|  |  | 
|  | if (impeller_trace_all_gl_calls) { | 
|  | defines += [ "IMPELLER_TRACE_ALL_GL_CALLS" ] | 
|  | } | 
|  |  | 
|  | if (impeller_error_check_all_gl_calls) { | 
|  | defines += [ "IMPELLER_ERROR_CHECK_ALL_GL_CALLS" ] | 
|  | } | 
|  |  | 
|  | if (is_win) { | 
|  | defines += [ | 
|  | # TODO(dnfield): https://github.com/flutter/flutter/issues/50053 | 
|  | "_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (impeller_enable_3d) { | 
|  | defines += [ "IMPELLER_ENABLE_3D" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | group("impeller") { | 
|  | public_deps = [ | 
|  | "archivist", | 
|  | "base", | 
|  | "geometry", | 
|  | "tessellator", | 
|  | ] | 
|  |  | 
|  | if (impeller_supports_rendering) { | 
|  | public_deps += [ | 
|  | "aiks", | 
|  | "display_list", | 
|  | "entity", | 
|  | "image:image_skia_backend", | 
|  | "renderer", | 
|  | "renderer/backend", | 
|  | "typographer/backends/skia:typographer_skia_backend", | 
|  | ] | 
|  | } | 
|  | } | 
|  |  | 
|  | impeller_component("impeller_unittests") { | 
|  | target_type = "executable" | 
|  |  | 
|  | testonly = true | 
|  |  | 
|  | deps = [ | 
|  | "archivist:archivist_unittests", | 
|  | "base:base_unittests", | 
|  | "blobcat:blobcat_unittests", | 
|  | "compiler:compiler_unittests", | 
|  | "core:allocator_unittests", | 
|  | "display_list:skia_conversions_unittests", | 
|  | "geometry:geometry_unittests", | 
|  | "runtime_stage:runtime_stage_unittests", | 
|  | "scene/importer:importer_unittests", | 
|  | "tessellator:tessellator_unittests", | 
|  | ] | 
|  |  | 
|  | if (impeller_supports_rendering) { | 
|  | deps += [ | 
|  | "aiks:aiks_unittests", | 
|  | "display_list:display_list_unittests", | 
|  | "entity:entity_unittests", | 
|  | "entity:render_target_cache_unittests", | 
|  | "fixtures", | 
|  | "geometry:geometry_unittests", | 
|  | "image:image_unittests", | 
|  | "playground", | 
|  | "renderer:renderer_unittests", | 
|  | "scene:scene_unittests", | 
|  | "typographer:typographer_unittests", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (impeller_enable_vulkan) { | 
|  | deps += [ "//flutter/impeller/renderer/backend/vulkan:vulkan_unittests" ] | 
|  | } | 
|  |  | 
|  | if (glfw_vulkan_library != "") { | 
|  | deps += [ | 
|  | "//third_party/swiftshader", | 
|  | "//third_party/vulkan-deps/vulkan-loader/src:libvulkan", | 
|  | "//third_party/vulkan_validation_layers", | 
|  | "//third_party/vulkan_validation_layers:vulkan_gen_json_files", | 
|  | ] | 
|  | } | 
|  |  | 
|  | if (impeller_enable_compute) { | 
|  | deps += [ "renderer:compute_tessellation_unittests" ] | 
|  | } | 
|  | } | 
|  |  | 
|  | if (impeller_supports_rendering) { | 
|  | impeller_component("impeller_dart_unittests") { | 
|  | target_type = "executable" | 
|  |  | 
|  | testonly = true | 
|  |  | 
|  | deps = [ "renderer:renderer_dart_unittests" ] | 
|  | } | 
|  | } |