# Copyright 2017 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("//build/package.gni")
import("//third_party/vulkan_loader_and_validation_layers/layers/layers.gni")

executable("vulkaninfo_bin") {
  output_name = "vulkaninfo"

  sources = [
    "vulkaninfo.c",
  ]

  deps = [
    "//third_party/vulkan_loader_and_validation_layers:vulkan",
  ]
}

package("vulkaninfo") {

  deps = [
    ":vulkaninfo_bin",
    "//third_party/vulkan_loader_and_validation_layers/layers",
  ]

  meta = [
    {
      path = rebase_path("../build-fuchsia/meta/vulkaninfo.cmx")
      dest = "vulkaninfo.cmx"
    },
  ]

  binary = "vulkaninfo"

  loadable_modules = vulkan_validation_layers.loadable_modules
  resources = vulkan_validation_layers.resources
}
