# 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("//build/fuchsia/sdk.gni")

config("vulkan_config") {
  include_dirs = []
  defines = []
  if (is_fuchsia) {
    include_dirs += [ "$fuchsia_sdk_root/vulkan/include" ]
    defines += [ "VK_USE_PLATFORM_FUCHSIA=1" ]
  } else {
    include_dirs += [ "//third_party/vulkan/src" ]
  }
}

source_set("vulkan") {
  sources = [
    "vulkan_application.cc",
    "vulkan_application.h",
    "vulkan_backbuffer.cc",
    "vulkan_backbuffer.h",
    "vulkan_command_buffer.cc",
    "vulkan_command_buffer.h",
    "vulkan_debug_report.cc",
    "vulkan_debug_report.h",
    "vulkan_device.cc",
    "vulkan_device.h",
    "vulkan_handle.cc",
    "vulkan_handle.h",
    "vulkan_image.cc",
    "vulkan_image.h",
    "vulkan_interface.cc",
    "vulkan_interface.h",
    "vulkan_native_surface.cc",
    "vulkan_native_surface.h",
    "vulkan_proc_table.cc",
    "vulkan_proc_table.h",
    "vulkan_surface.cc",
    "vulkan_surface.h",
    "vulkan_swapchain.h",
    "vulkan_utilities.cc",
    "vulkan_utilities.h",
    "vulkan_window.cc",
    "vulkan_window.h",
  ]

  if (is_android) {
    sources += [
      "vulkan_native_surface_android.cc",
      "vulkan_native_surface_android.h",
      "vulkan_swapchain.cc",
    ]
  } else {
    sources += [ "vulkan_swapchain_stub.cc" ]
  }

  deps = [
    "//flutter/fml",
    "//third_party/skia",
  ]

  public_configs = [
    ":vulkan_config",
    "//flutter:config",
  ]
}
