| # 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/shell/config.gni") | 
 |  | 
 | template("shell_gpu_configuration") { | 
 |   assert(defined(invoker.enable_software), | 
 |          "Caller must declare if the Software backend must be enabled.") | 
 |   assert(defined(invoker.enable_vulkan), | 
 |          "Caller must declare if the Vulkan backend must be enabled.") | 
 |   assert(defined(invoker.enable_gl), | 
 |          "Caller must declare if the Open GL backend must be enabled.") | 
 |   assert(defined(invoker.enable_metal), | 
 |          "Caller must declare if the Metal backend must be enabled.") | 
 |  | 
 |   group(target_name) { | 
 |     public_deps = [] | 
 |  | 
 |     if (invoker.enable_software) { | 
 |       public_deps += [ "//flutter/shell/gpu:gpu_surface_software" ] | 
 |     } | 
 |  | 
 |     if (invoker.enable_gl) { | 
 |       public_deps += [ "//flutter/shell/gpu:gpu_surface_gl" ] | 
 |     } | 
 |  | 
 |     if (invoker.enable_vulkan) { | 
 |       public_deps += [ "//flutter/shell/gpu:gpu_surface_vulkan" ] | 
 |     } | 
 |  | 
 |     if (invoker.enable_metal) { | 
 |       public_deps += [ "//flutter/shell/gpu:gpu_surface_metal" ] | 
 |     } | 
 |   } | 
 |  | 
 |   config("${target_name}_config") { | 
 |     defines = [] | 
 |  | 
 |     if (invoker.enable_software) { | 
 |       defines += [ "SHELL_ENABLE_SOFTWARE" ] | 
 |     } | 
 |     if (invoker.enable_gl) { | 
 |       defines += [ "SHELL_ENABLE_GL" ] | 
 |     } | 
 |     if (invoker.enable_vulkan) { | 
 |       defines += [ "SHELL_ENABLE_VULKAN" ] | 
 |     } | 
 |     if (invoker.enable_metal) { | 
 |       defines += [ "SHELL_ENABLE_METAL" ] | 
 |     } | 
 |   } | 
 | } |