# 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")

gpu_dir = "//flutter/shell/gpu"

gpu_common_deps = [
  "//flutter/common",
  "//flutter/flow",
  "//flutter/fml",
  "//flutter/shell/common",
  "//flutter/shell/common:common_standalone",
  "//third_party/skia",
]

source_set("gpu_surface_software") {
  sources = [
    "$gpu_dir/gpu_surface_delegate.h",
    "$gpu_dir/gpu_surface_software.cc",
    "$gpu_dir/gpu_surface_software.h",
    "$gpu_dir/gpu_surface_software_delegate.cc",
    "$gpu_dir/gpu_surface_software_delegate.h",
  ]

  deps = gpu_common_deps
}

source_set("gpu_surface_gl") {
  sources = [
    "$gpu_dir/gpu_surface_delegate.h",
    "$gpu_dir/gpu_surface_gl.cc",
    "$gpu_dir/gpu_surface_gl.h",
    "$gpu_dir/gpu_surface_gl_delegate.cc",
    "$gpu_dir/gpu_surface_gl_delegate.h",
  ]

  deps = gpu_common_deps + [ "//third_party/skia" ]
}

source_set("gpu_surface_vulkan") {
  sources = [
    "$gpu_dir/gpu_surface_delegate.h",
    "$gpu_dir/gpu_surface_vulkan.cc",
    "$gpu_dir/gpu_surface_vulkan.h",
    "$gpu_dir/gpu_surface_vulkan_delegate.cc",
    "$gpu_dir/gpu_surface_vulkan_delegate.h",
  ]

  deps = gpu_common_deps + [
           "//third_party/skia",
           "//flutter/vulkan",
         ]
}

source_set("gpu_surface_metal") {
  sources = [
    "$gpu_dir/gpu_surface_delegate.h",
    "$gpu_dir/gpu_surface_metal.h",
    "$gpu_dir/gpu_surface_metal.mm",
  ]

  deps = gpu_common_deps + [ "//third_party/skia" ]
}
