# Copyright 2019 The Fuchsia 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("//src/graphics/lib/compute/gn/build_rules.gni")

config("config") {
  # Unlike the sources here, clients use "common/vk/..." to include the headers.
  include_dirs = [ graphics_compute_dir ]
}

source_set("vk") {
  public_configs = [ ":config" ]
  public = [
    "assert.h",
    "barrier.h",
    "debug_utils.h",
    "find_mem_type_idx.h",
    "pipeline_cache.h",
  ]
  sources = [
    "assert.c",
    "assert.h",
    "barrier.c",
    "barrier.h",
    "debug_utils.c",
    "debug_utils.h",
    "find_mem_type_idx.c",
    "find_mem_type_idx.h",
    "pipeline_cache.c",
    "pipeline_cache.h",
  ]
  public_deps = [ graphics_compute_vulkan_loader_target ]
  deps = [ "${graphics_compute_dir}/common" ]
}
