# 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/flutter_vma/config.gni")

source_set("flutter_vma") {
  sources = [
    "flutter_vma.cc",
    "flutter_vma.h",
  ]

  if (disable_vma_stl_shared_mutex) {
    defines = [ "VMA_USE_STL_SHARED_MUTEX=0" ]
  }

  deps = [
    "//third_party/vulkan-deps/vulkan-headers/src:vulkan_headers",
    "//third_party/vulkan_memory_allocator",
  ]

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

source_set("flutter_skia_vma") {
  sources = [
    "flutter_skia_vma.cc",
    "flutter_skia_vma.h",
  ]

  public_deps = [ ":flutter_vma" ]

  deps = [
    "//flutter/fml",
    "//flutter/vulkan/procs",
    "//third_party/skia",
    "//third_party/vulkan-deps/vulkan-headers/src:vulkan_headers",
    "//third_party/vulkan_memory_allocator",
  ]
}
