# 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("//build/package.gni")

package("escher_tests") {
  testonly = true
  system_image = true

  deps = [
    "test:escher_unittests",
  ]

  tests = [ {
        name = "escher_unittests"
      } ]
}

# When targeting Linux, we use a LunarG Vulkan SDK that we download from
# Google storage (see //garnet/public/lib/escher/scripts/).
if (is_linux) {
  config("vulkan_linux") {
    vulkan_sdk = "//garnet/public/lib/escher/third_party/vulkansdk/x86_64"
    include_dirs = [ "$vulkan_sdk/include" ]
    lib_dirs = [ "$vulkan_sdk/lib" ]
    libs = [ "vulkan" ]
  }
}

config("public_includes") {
  include_dirs = [ "//third_party/glm" ]
}

config("public_preprocessor_definitions") {
  defines = [
    "VULKAN_HPP_NO_EXCEPTIONS",
    "GLM_ENABLE_EXPERIMENTAL",

    # Use Vulkan NDC (normalized depth coordinates): [0..1] instead of [-1..1]
    "GLM_FORCE_DEPTH_ZERO_TO_ONE",

    # Disable SIMD code paths that seem unstable on Fuchsia.
    "GLM_FORCE_PURE",
  ]
}

config("thread_safety_warning") {
  cflags = [
    "-Wthread-safety",
    "-fcolor-diagnostics",
  ]
}

source_set("escher") {
  defines = [
    # Currently necessary on Fuchsia, but not Linux.
    "ESCHER_DISABLE_BACKGROUND_COMPILATION",
  ]

  deps = [
    "//third_party/shaderc/third_party/glslang",
    "//third_party/shaderc/third_party/glslang:SPIRV",
    "//third_party/shaderc/third_party/glslang:glslang-default-resource-limits",
    "//third_party/shaderc/third_party/spirv-tools:spirv-tools-opt",
  ]

  public_deps = [
    "//garnet/public/lib/escher/base:escher_base",
    "//garnet/public/lib/fxl",
  ]

  if (is_fuchsia) {
    public_deps += [ "//garnet/public/lib/fsl" ]
  }

  sources = [
    "escher.cc",
    "escher.h",
    "escher_process_init.cc",
    "escher_process_init.h",
    "forward_declarations.h",
    "geometry/bounding_box.cc",
    "geometry/bounding_box.h",
    "geometry/quad.cc",
    "geometry/quad.h",
    "geometry/tessellation.cc",
    "geometry/tessellation.h",
    "geometry/transform.h",
    "geometry/types.h",
    "impl/command_buffer.cc",
    "impl/command_buffer.h",
    "impl/command_buffer_pool.cc",
    "impl/command_buffer_pool.h",
    "impl/command_buffer_sequencer.cc",
    "impl/command_buffer_sequencer.h",
    "impl/compute_shader.cc",
    "impl/compute_shader.h",
    "impl/debug_print.cc",
    "impl/descriptor_set_pool.cc",
    "impl/descriptor_set_pool.h",
    "impl/glsl_compiler.cc",
    "impl/glsl_compiler.h",
    "impl/gpu_mem_slab.cc",
    "impl/gpu_mem_slab.h",
    "impl/gpu_mem_suballocation.cc",
    "impl/gpu_mem_suballocation.h",
    "impl/gpu_uploader.cc",
    "impl/gpu_uploader.h",
    "impl/image_cache.cc",
    "impl/image_cache.h",
    "impl/mesh_manager.cc",
    "impl/mesh_manager.h",
    "impl/mesh_shader_binding.cc",
    "impl/mesh_shader_binding.h",
    "impl/model_data.cc",
    "impl/model_data.h",
    "impl/model_depth_pass.cc",
    "impl/model_depth_pass.h",
    "impl/model_display_list.cc",
    "impl/model_display_list.h",
    "impl/model_display_list_builder.cc",
    "impl/model_display_list_builder.h",
    "impl/model_display_list_flags.h",
    "impl/model_lighting_pass.cc",
    "impl/model_lighting_pass.h",
    "impl/model_moment_shadow_map_pass.cc",
    "impl/model_moment_shadow_map_pass.h",
    "impl/model_pipeline.cc",
    "impl/model_pipeline.h",
    "impl/model_pipeline_cache.cc",
    "impl/model_pipeline_cache.h",
    "impl/model_pipeline_spec.h",
    "impl/model_renderer.cc",
    "impl/model_renderer.h",
    "impl/model_render_pass.cc",
    "impl/model_render_pass.h",
    "impl/model_shadow_map_lighting_pass.cc",
    "impl/model_shadow_map_lighting_pass.h",
    "impl/model_shadow_map_pass.cc",
    "impl/model_shadow_map_pass.h",
    "impl/ssdo_accelerator.cc",
    "impl/ssdo_accelerator.h",
    "impl/ssdo_sampler.cc",
    "impl/ssdo_sampler.h",
    "impl/uniform_buffer_pool.cc",
    "impl/uniform_buffer_pool.h",
    "impl/vk/pipeline.cc",
    "impl/vk/pipeline.h",
    "impl/vk/pipeline_cache.cc",
    "impl/vk/pipeline_cache.h",
    "impl/vk/pipeline_factory.h",
    "impl/vk/pipeline_layout.cc",
    "impl/vk/pipeline_layout.h",
    "impl/vk/pipeline_spec.cc",
    "impl/vk/pipeline_spec.h",
    "impl/vulkan_utils.cc",
    "impl/vulkan_utils.h",
    "impl/wobble_modifier_absorber.cc",
    "impl/wobble_modifier_absorber.h",
    "material/color_utils.cc",
    "material/color_utils.h",
    "material/material.cc",
    "material/material.h",
    "math/rotations.cc",
    "math/rotations.h",
    "profiling/timestamp_profiler.cc",
    "profiling/timestamp_profiler.h",
    "renderer/frame.cc",
    "renderer/frame.h",
    "renderer/moment_shadow_map.cc",
    "renderer/moment_shadow_map.h",
    "renderer/moment_shadow_map_renderer.cc",
    "renderer/moment_shadow_map_renderer.h",
    "renderer/paper_renderer.cc",
    "renderer/paper_renderer.h",
    "renderer/renderer.cc",
    "renderer/renderer.h",
    "renderer/shadow_map.cc",
    "renderer/shadow_map.h",
    "renderer/shadow_map_renderer.cc",
    "renderer/shadow_map_renderer.h",
    "renderer/shadow_map_type_info.h",
    "renderer/semaphore.cc",
    "renderer/semaphore.h",
    "resources/resource.cc",
    "resources/resource.h",
    "resources/resource_manager.cc",
    "resources/resource_manager.h",
    "resources/resource_recycler.cc",
    "resources/resource_recycler.h",
    "resources/resource_type_info.h",
    "resources/waitable_resource.cc",
    "resources/waitable_resource.h",
    "scene/ambient_light.cc",
    "scene/ambient_light.h",
    "scene/binding.h",
    "scene/camera.cc",
    "scene/camera.h",
    "scene/directional_light.cc",
    "scene/directional_light.h",
    "scene/displacement.cc",
    "scene/displacement.h",
    "scene/model.cc",
    "scene/model.h",
    "scene/object.cc",
    "scene/object.h",
    "scene/shape.cc",
    "scene/shape.h",
    "scene/shape_modifier.h",
    "scene/stage.cc",
    "scene/stage.h",
    "scene/viewing_volume.cc",
    "scene/viewing_volume.h",
    "shape/mesh.cc",
    "shape/mesh.h",
    "shape/mesh_builder.cc",
    "shape/mesh_builder.h",
    "shape/mesh_builder_factory.h",
    "shape/mesh_spec.cc",
    "shape/mesh_spec.h",
    "shape/modifier_wobble.cc",
    "shape/modifier_wobble.h",
    "shape/rounded_rect.cc",
    "shape/rounded_rect.h",
    "shape/rounded_rect_factory.cc",
    "shape/rounded_rect_factory.h",
    "status.h",
    "util/align.h",
    "util/depth_to_color.cc",
    "util/depth_to_color.h",
    "util/image_formats.cc",
    "util/image_formats.h",
    "util/image_utils.cc",
    "util/image_utils.h",
    "util/stopwatch.h",
    "util/trace_macros.h",
    "vk/buffer.cc",
    "vk/buffer.h",
    "vk/buffer_factory.cc",
    "vk/buffer_factory.h",
    "vk/framebuffer.cc",
    "vk/framebuffer.h",
    "vk/gpu_allocator.cc",
    "vk/gpu_allocator.h",
    "vk/gpu_mem.cc",
    "vk/gpu_mem.h",
    "vk/image.cc",
    "vk/image.h",
    "vk/naive_gpu_allocator.cc",
    "vk/naive_gpu_allocator.h",
    "vk/render_pass.cc",
    "vk/render_pass.h",
    "vk/simple_image_factory.cc",
    "vk/simple_image_factory.h",
    "vk/texture.cc",
    "vk/texture.h",
    "vk/vulkan_context.h",
    "vk/vulkan_device_queues.cc",
    "vk/vulkan_device_queues.h",
    "vk/vulkan_instance.cc",
    "vk/vulkan_instance.h",
    "vk/vulkan_swapchain.h",
    "vk/vulkan_swapchain_helper.cc",
    "vk/vulkan_swapchain_helper.h",
  ]

  if (is_fuchsia) {
    sources += [
      "flib/fence.h",
      "flib/fence_listener.cc",
      "flib/fence_listener.h",
      "flib/fence_set_listener.cc",
      "flib/fence_set_listener.h",
      "flib/release_fence_signaller.cc",
      "flib/release_fence_signaller.h",
    ]
  }

  include_dirs = [
    "//third_party/shaderc/third_party/glslang",
    "//third_party/shaderc/third_party/spirv-tools/include",
  ]

  public_configs = [
    ":public_includes",
    ":public_preprocessor_definitions",
    ":thread_safety_warning",
  ]

  if (is_fuchsia) {
    public_deps += [ "//garnet/public/lib/vulkan" ]
    deps += [ "//zircon/public/lib/trace" ]
    sources += [
      "util/fuchsia_utils.cc",
      "util/fuchsia_utils.h",
    ]
  }

  if (is_linux) {
    public_configs += [ "//garnet/public/lib/escher:vulkan_linux" ]
  }
}

group("unittests") {
  testonly = true
  deps = [
    "//garnet/public/lib/escher/test:escher_unittests",
  ]
}
