# Copyright 2020 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.

# DO NOT MANUALLY EDIT!
# Generated by //scripts/sdk/gn/generate.py.


copy("VkLayer_core_validation_config") {
  sources = [
    "data/vulkan/explicit_layer.d/VkLayer_core_validation.json",
  ]
  outputs = [
    "${root_gen_dir}/data/vulkan/explicit_layer.d/VkLayer_core_validation.json",
  ]
}

copy("VkLayer_core_validation_lib") {
  sources = [
    "../../arch/${target_cpu}/dist/VkLayer_core_validation.so",
  ]
  outputs = [
    "${root_out_dir}/lib/{{source_file_part}}",
  ]
}

group("VkLayer_core_validation") {
  data_deps = [
    ":VkLayer_core_validation_config",
    ":VkLayer_core_validation_lib",
  ]
}

copy("VkLayer_object_lifetimes_config") {
  sources = [
    "data/vulkan/explicit_layer.d/VkLayer_object_lifetimes.json",
  ]
  outputs = [
    "${root_gen_dir}/data/vulkan/explicit_layer.d/VkLayer_object_lifetimes.json",
  ]
}

copy("VkLayer_object_lifetimes_lib") {
  sources = [
    "../../arch/${target_cpu}/dist/VkLayer_object_lifetimes.so",
  ]
  outputs = [
    "${root_out_dir}/lib/{{source_file_part}}",
  ]
}

group("VkLayer_object_lifetimes") {
  data_deps = [
    ":VkLayer_object_lifetimes_config",
    ":VkLayer_object_lifetimes_lib",
  ]
}

copy("VkLayer_thread_safety_config") {
  sources = [
    "data/vulkan/explicit_layer.d/VkLayer_thread_safety.json",
  ]
  outputs = [
    "${root_gen_dir}/data/vulkan/explicit_layer.d/VkLayer_thread_safety.json",
  ]
}

copy("VkLayer_thread_safety_lib") {
  sources = [
    "../../arch/${target_cpu}/dist/VkLayer_thread_safety.so",
  ]
  outputs = [
    "${root_out_dir}/lib/{{source_file_part}}",
  ]
}

group("VkLayer_thread_safety") {
  data_deps = [
    ":VkLayer_thread_safety_config",
    ":VkLayer_thread_safety_lib",
  ]
}

copy("VkLayer_stateless_validation_config") {
  sources = [
    "data/vulkan/explicit_layer.d/VkLayer_stateless_validation.json",
  ]
  outputs = [
    "${root_gen_dir}/data/vulkan/explicit_layer.d/VkLayer_stateless_validation.json",
  ]
}

copy("VkLayer_stateless_validation_lib") {
  sources = [
    "../../arch/${target_cpu}/dist/VkLayer_stateless_validation.so",
  ]
  outputs = [
    "${root_out_dir}/lib/{{source_file_part}}",
  ]
}

group("VkLayer_stateless_validation") {
  data_deps = [
    ":VkLayer_stateless_validation_config",
    ":VkLayer_stateless_validation_lib",
  ]
}

copy("VkLayer_unique_objects_config") {
  sources = [
    "data/vulkan/explicit_layer.d/VkLayer_unique_objects.json",
  ]
  outputs = [
    "${root_gen_dir}/data/vulkan/explicit_layer.d/VkLayer_unique_objects.json",
  ]
}

copy("VkLayer_unique_objects_lib") {
  sources = [
    "../../arch/${target_cpu}/dist/VkLayer_unique_objects.so",
  ]
  outputs = [
    "${root_out_dir}/lib/{{source_file_part}}",
  ]
}

group("VkLayer_unique_objects") {
  data_deps = [
    ":VkLayer_unique_objects_config",
    ":VkLayer_unique_objects_lib",
  ]
}

copy("VkLayer_khronos_validation_config") {
  sources = [
    "data/vulkan/explicit_layer.d/VkLayer_khronos_validation.json",
  ]
  outputs = [
    "${root_gen_dir}/data/vulkan/explicit_layer.d/VkLayer_khronos_validation.json",
  ]
}

copy("VkLayer_khronos_validation_lib") {
  sources = [
    "../../arch/${target_cpu}/dist/VkLayer_khronos_validation.so",
  ]
  outputs = [
    "${root_out_dir}/lib/{{source_file_part}}",
  ]
}

group("VkLayer_khronos_validation") {
  data_deps = [
    ":VkLayer_khronos_validation_config",
    ":VkLayer_khronos_validation_lib",
  ]
}

copy("VkLayer_standard_validation_config") {
  sources = [
    "data/vulkan/explicit_layer.d/VkLayer_standard_validation.json",
  ]
  outputs = [
    "${root_gen_dir}/data/vulkan/explicit_layer.d/VkLayer_standard_validation.json",
  ]
}


group("VkLayer_standard_validation") {
  data_deps = [
    ":VkLayer_standard_validation_config",
    ":VkLayer_khronos_validation",
  ]
}

copy("VkLayer_image_pipe_swapchain_config") {
  sources = [
    "data/vulkan/explicit_layer.d/VkLayer_image_pipe_swapchain.json",
  ]
  outputs = [
    "${root_gen_dir}/data/vulkan/explicit_layer.d/VkLayer_image_pipe_swapchain.json",
  ]
}

copy("VkLayer_image_pipe_swapchain_lib") {
  sources = [
    "../../arch/${target_cpu}/dist/VkLayer_image_pipe_swapchain.so",
  ]
  outputs = [
    "${root_out_dir}/lib/{{source_file_part}}",
  ]
}

group("VkLayer_image_pipe_swapchain") {
  data_deps = [
    ":VkLayer_image_pipe_swapchain_config",
    ":VkLayer_image_pipe_swapchain_lib",
    "../trace-engine",
  ]
}

group("all"){
  data_deps = [
    ":VkLayer_core_validation",
    ":VkLayer_object_lifetimes",
    ":VkLayer_thread_safety",
    ":VkLayer_stateless_validation",
    ":VkLayer_unique_objects",
    ":VkLayer_khronos_validation",
    ":VkLayer_standard_validation",
    ":VkLayer_image_pipe_swapchain",
  ]
}
