# Copyright 2016 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("//garnet/lib/magma/gnbuild/magma.gni")

executable("vkreadback") {
  testonly = true

  sources = [
    "main.cc",
    "vkreadback.cc",
  ]

  public_deps = [
    "$magma_build_root/src/magma_util",
    "//third_party/googletest:gtest",
    "//zircon/public/lib/fdio",
  ]

  if (use_vulkan_loader_for_tests) {
    public_deps +=
        [ "//third_party/vulkan_loader_and_validation_layers:vulkan" ]
  } else {
    public_deps += [ "$magma_build_root/tests/vulkan_shim" ]
  }
  libs = [ "zircon" ]
}

executable("mt_create_vkdevice_loop") {
  sources = [
    "mt_create_vkdevice_loop.cc",
  ]

  public_deps = [
    "$magma_build_root/src/magma_util",
  ]

  if (use_vulkan_loader_for_tests) {
    public_deps +=
        [ "//third_party/vulkan_loader_and_validation_layers:vulkan" ]
  } else {
    public_deps += [ "$magma_build_root/tests/vulkan_shim" ]
  }
}
