# Copyright 2018 Google Inc.
#
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

config("vulkanmemoryallocator_public") {
  include_dirs = [ "." ]
}

source_set("vulkanmemoryallocator") {
  public_configs = [ ":vulkanmemoryallocator_public" ]

  include_dirs = [ "../../include/third_party/vulkan" ]

  # Need to add this so when we include GrVkDefines.h it internally can find SkTypes.h which is
  # needed in case the user set defines in SkUserConfig.h.
  include_dirs += [ "../../include/core" ]
  include_dirs += [ "../../include/config" ]
  if (defined(is_skia_standalone) && is_skia_standalone && !is_official_build) {
    include_dirs += [ "../../tools/gpu/vk" ]
    include_dirs += [ "../../include/config" ]
  }

  sources = [
    "GrVulkanMemoryAllocator.cpp",
    "GrVulkanMemoryAllocator.h",
  ]

  # Warnings are just noise if we're not maintaining the code.
  if (is_win) {
    cflags = [ "/w" ]
  } else {
    cflags = [ "-w" ]
  }
}
