# 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_root/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_root/shell/gpu:gpu_surface_software" ]
    }

    if (invoker.enable_gl) {
      public_deps += [ "$flutter_root/shell/gpu:gpu_surface_gl" ]
    }

    if (invoker.enable_vulkan) {
      public_deps += [ "$flutter_root/shell/gpu:gpu_surface_vulkan" ]
    }

    if (invoker.enable_metal) {
      public_deps += [ "$flutter_root/shell/gpu:gpu_surface_metal" ]
    }
  }
}