# Copyright 2018 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("//build/rust/rustc_binary.gni")
import("//build/rust/rustc_library.gni")
import("//build/rust/rustc_test.gni")
import("//build/test/test_package.gni")
import("//src/lib/vulkan/layers.gni")

rustc_library("carnelian") {
  name = "carnelian"
  with_unit_tests = true
  version = "0.1.0"
  edition = "2018"
  deps = [
    "//garnet/examples/fidl/services:echo-rustc",
    "//sdk/fidl/fuchsia.fonts:fuchsia.fonts-rustc",
    "//sdk/fidl/fuchsia.images:fuchsia.images-rustc",
    "//sdk/fidl/fuchsia.input.report:fuchsia.input.report-rustc",
    "//sdk/fidl/fuchsia.math:fuchsia.math-rustc",
    "//sdk/fidl/fuchsia.ui.app:fuchsia.ui.app-rustc",
    "//sdk/fidl/fuchsia.ui.gfx:fuchsia.ui.gfx-rustc",
    "//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input-rustc",
    "//sdk/fidl/fuchsia.ui.policy:fuchsia.ui.policy-rustc",
    "//sdk/fidl/fuchsia.ui.scenic:fuchsia.ui.scenic-rustc",
    "//sdk/fidl/fuchsia.ui.views:fuchsia.ui.views-rustc",
    "//src/graphics/lib/compute/mold",
    "//src/graphics/lib/compute/spinel-mold",
    "//src/graphics/lib/compute/spinel-rs-sys",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/mapped-vmo",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/trace/rust:trace",
    "//src/lib/trace/rust:trace-provider",
    "//src/lib/ui/fuchsia-framebuffer",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:argh",
    "//third_party/rust_crates:async-trait",
    "//third_party/rust_crates:chrono",
    "//third_party/rust_crates:euclid",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:itertools",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:lipsum",
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:rusttype",
    "//third_party/rust_crates:textwrap",
    "//third_party/rust_crates:vk-sys",
    "//zircon/system/fidl/fuchsia-hardware-input:fuchsia-hardware-input-rustc",
    "//zircon/system/fidl/fuchsia-mem:fuchsia-mem-rustc",
    "//zircon/system/fidl/fuchsia-sysmem:fuchsia-sysmem-rustc",
  ]
  non_rust_deps = [
    "//src/graphics/lib/compute/common",
    "//src/graphics/lib/compute/common/vk",
    "//src/graphics/lib/compute/hotsort/platforms/vk",
    "//src/graphics/lib/compute/spinel",
    "//src/graphics/lib/compute/spinel/platforms/vk",
    "//src/graphics/lib/compute/spinel/platforms/vk:vk_find_target",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/amd/gcn3:generate",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/amd/gcn3/hotsort",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/intel/gen8:generate",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/intel/gen8/hotsort",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/nvidia/sm50:generate",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/nvidia/sm50/hotsort",
    "//src/lib/vulkan",
  ]
}

rustc_binary("spinning_square_example") {
  version = "0.1.0"
  edition = "2018"
  source_root = "examples/spinning_square.rs"
  deps = [
    "//garnet/examples/fidl/services:echo-rustc",
    "//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input-rustc",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/ui/carnelian",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:thiserror",
  ]
}

rustc_binary("button_example") {
  version = "0.1.0"
  edition = "2018"
  source_root = "examples/button.rs"
  deps = [
    "//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input-rustc",
    "//src/lib/fuchsia-async",
    "//src/lib/ui/carnelian",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:thiserror",
  ]
}

rustc_binary("perf_test_01") {
  version = "0.1.0"
  edition = "2018"
  source_root = "examples/perf_test_01.rs"
  deps = [
    "//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input-rustc",
    "//src/lib/fuchsia-async",
    "//src/lib/ui/carnelian",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:euclid",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:thiserror",
  ]
}

rustc_binary("perf_test_02") {
  version = "0.1.0"
  edition = "2018"
  source_root = "examples/perf_test_02.rs"
  deps = [
    "//src/lib/fuchsia-async",
    "//src/lib/ui/carnelian",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:euclid",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:thiserror",
  ]
}

rustc_binary("perf_test_03") {
  version = "0.1.0"
  edition = "2018"
  source_root = "examples/perf_test_03.rs"
  deps = [
    "//src/lib/fuchsia-async",
    "//src/lib/ui/carnelian",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:chrono",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:thiserror",
  ]
}

rustc_binary("perf_test_04") {
  version = "0.1.0"
  edition = "2018"
  source_root = "examples/perf_test_04.rs"
  deps = [
    "//src/lib/fuchsia-async",
    "//src/lib/ui/carnelian",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:thiserror",
  ]
}

rustc_binary("drawing") {
  version = "0.1.0"
  edition = "2018"
  source_root = "examples/drawing.rs"
  deps = [
    "//sdk/fidl/fuchsia.images:fuchsia.images-rustc",
    "//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input-rustc",
    "//src/lib/fuchsia-async",
    "//src/lib/ui/carnelian",
    "//src/lib/ui/fuchsia-framebuffer",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:euclid",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:thiserror",
  ]
}

rustc_binary("drawing_mold") {
  version = "0.1.0"
  edition = "2018"
  source_root = "examples/drawing_mold.rs"
  deps = [
    "//sdk/fidl/fuchsia.images:fuchsia.images-rustc",
    "//src/graphics/lib/compute/mold",
    "//src/lib/fuchsia-async",
    "//src/lib/ui/carnelian",
    "//src/lib/ui/fuchsia-framebuffer",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:euclid",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:rusttype",
    "//third_party/rust_crates:thiserror",
  ]
}

rustc_binary("clockface") {
  version = "0.1.0"
  edition = "2018"
  source_root = "examples/clockface.rs"
  deps = [
    "//src/graphics/lib/compute/mold",
    "//src/graphics/lib/compute/spinel-mold",
    "//src/graphics/lib/compute/spinel-rs-sys",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/mapped-vmo",
    "//src/lib/ui/carnelian",
    "//src/lib/ui/fuchsia-framebuffer",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:argh",
    "//third_party/rust_crates:chrono",
    "//third_party/rust_crates:euclid",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:rusttype",
    "//third_party/rust_crates:thiserror",
    "//third_party/rust_crates:vk-sys",
    "//zircon/system/fidl/fuchsia-sysmem:fuchsia-sysmem-rustc",
  ]
  non_rust_deps = [
    "//src/graphics/lib/compute/common",
    "//src/graphics/lib/compute/common/vk",
    "//src/graphics/lib/compute/hotsort/platforms/vk",
    "//src/graphics/lib/compute/spinel",
    "//src/graphics/lib/compute/spinel/platforms/vk",
    "//src/graphics/lib/compute/spinel/platforms/vk:vk_find_target",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/amd/gcn3:generate",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/amd/gcn3/hotsort",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/intel/gen8:generate",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/intel/gen8/hotsort",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/nvidia/sm50:generate",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/nvidia/sm50/hotsort",
    "//src/lib/vulkan",
  ]
}

rustc_binary("ink") {
  version = "0.1.0"
  edition = "2018"
  source_root = "examples/ink.rs"
  deps = [
    "//sdk/fidl/fuchsia.input.report:fuchsia.input.report-rustc",
    "//src/graphics/lib/compute/mold",
    "//src/graphics/lib/compute/spinel-mold",
    "//src/graphics/lib/compute/spinel-rs-sys",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/mapped-vmo",
    "//src/lib/ui/carnelian",
    "//src/lib/ui/fuchsia-framebuffer",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:argh",
    "//third_party/rust_crates:euclid",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:rusttype",
    "//third_party/rust_crates:thiserror",
    "//third_party/rust_crates:vk-sys",
    "//zircon/system/fidl/fuchsia-hardware-input:fuchsia-hardware-input-rustc",
    "//zircon/system/fidl/fuchsia-sysmem:fuchsia-sysmem-rustc",
  ]
  non_rust_deps = [
    "//src/graphics/lib/compute/common",
    "//src/graphics/lib/compute/common/vk",
    "//src/graphics/lib/compute/hotsort/platforms/vk",
    "//src/graphics/lib/compute/spinel",
    "//src/graphics/lib/compute/spinel/platforms/vk",
    "//src/graphics/lib/compute/spinel/platforms/vk:vk_find_target",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/amd/gcn3:generate",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/amd/gcn3/hotsort",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/intel/gen8:generate",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/intel/gen8/hotsort",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/nvidia/sm50:generate",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/nvidia/sm50/hotsort",
    "//src/graphics/lib/vulkan",
  ]
}

rustc_binary("infinite_scroll") {
  version = "0.1.0"
  edition = "2018"
  source_root = "examples/infinite_scroll.rs"
  deps = [
    "//sdk/fidl/fuchsia.fonts:fuchsia.fonts-rustc",
    "//sdk/fidl/fuchsia.input.report:fuchsia.input.report-rustc",
    "//src/graphics/lib/compute/mold",
    "//src/graphics/lib/compute/spinel-mold",
    "//src/graphics/lib/compute/spinel-rs-sys",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/mapped-vmo",
    "//src/lib/trace/rust:trace",
    "//src/lib/trace/rust:trace-provider",
    "//src/lib/ui/carnelian",
    "//src/lib/ui/fuchsia-framebuffer",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:argh",
    "//third_party/rust_crates:chrono",
    "//third_party/rust_crates:euclid",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:lipsum",
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:rusttype",
    "//third_party/rust_crates:textwrap",
    "//third_party/rust_crates:thiserror",
    "//third_party/rust_crates:vk-sys",
    "//zircon/system/fidl/fuchsia-sysmem:fuchsia-sysmem-rustc",
  ]
  non_rust_deps = [
    "//src/graphics/lib/compute/common",
    "//src/graphics/lib/compute/common/vk",
    "//src/graphics/lib/compute/hotsort/platforms/vk",
    "//src/graphics/lib/compute/spinel",
    "//src/graphics/lib/compute/spinel/platforms/vk",
    "//src/graphics/lib/compute/spinel/platforms/vk:vk_find_target",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/amd/gcn3:generate",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/amd/gcn3/hotsort",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/intel/gen8:generate",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/intel/gen8/hotsort",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/nvidia/sm50:generate",
    "//src/graphics/lib/compute/spinel/platforms/vk/targets/vendors/nvidia/sm50/hotsort",
    "//src/graphics/lib/vulkan",
  ]
}

package("spinning_square_rs") {
  deps = [ ":spinning_square_example" ]

  binaries = [
    {
      name = "app"
      source = "spinning_square_example"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/example.cmx")
      dest = "spinning_square_rs.cmx"
    },
  ]
}

package("button_rs") {
  deps = [ ":button_example" ]

  binaries = [
    {
      name = "app"
      source = "button_example"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/example.cmx")
      dest = "button_rs.cmx"
    },
  ]
}

package("perf_test_01_rs") {
  deps = [ ":perf_test_01" ]

  binaries = [
    {
      name = "app"
      source = "perf_test_01"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/example.cmx")
      dest = "perf_test_01_rs.cmx"
    },
  ]
}

package("perf_test_02_rs") {
  deps = [ ":perf_test_02" ]

  binaries = [
    {
      name = "app"
      source = "perf_test_02"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/example.cmx")
      dest = "perf_test_02_rs.cmx"
    },
  ]
}

package("perf_test_03_rs") {
  deps = [ ":perf_test_03" ]

  binaries = [
    {
      name = "app"
      source = "perf_test_03"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/example.cmx")
      dest = "perf_test_03_rs.cmx"
    },
  ]
}

package("perf_test_04_rs") {
  deps = [ ":perf_test_04" ]

  binaries = [
    {
      name = "app"
      source = "perf_test_04"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/example.cmx")
      dest = "perf_test_04_rs.cmx"
    },
  ]
}

package("drawing_rs") {
  deps = [ ":drawing" ]

  binaries = [
    {
      name = "app"
      source = "drawing"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/example.cmx")
      dest = "drawing_rs.cmx"
    },
  ]
}

package("drawing_mold_rs") {
  deps = [ ":drawing_mold" ]

  binaries = [
    {
      name = "app"
      source = "drawing_mold"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/example.cmx")
      dest = "drawing_mold_rs.cmx"
    },
  ]
}

package("clockface_rs") {
  deps = [ ":clockface" ]

  binaries = [
    {
      name = "app"
      source = "clockface"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/example.cmx")
      dest = "clockface_rs.cmx"
    },
  ]

  public_deps = vulkan_validation_layers.public_deps
  loadable_modules = vulkan_validation_layers.loadable_modules
  resources = vulkan_validation_layers.resources
}

package("ink_rs") {
  deps = [ ":ink" ]

  binaries = [
    {
      name = "app"
      source = "ink"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/example.cmx")
      dest = "ink_rs.cmx"
    },
  ]

  public_deps = vulkan_validation_layers.public_deps
  loadable_modules = vulkan_validation_layers.loadable_modules
  resources = vulkan_validation_layers.resources
}

package("infinite_scroll_rs") {
  deps = [ ":infinite_scroll" ]

  binaries = [
    {
      name = "app"
      source = "infinite_scroll"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/example.cmx")
      dest = "infinite_scroll_rs.cmx"
    },
  ]

  public_deps = vulkan_validation_layers.public_deps
  loadable_modules = vulkan_validation_layers.loadable_modules
  resources = vulkan_validation_layers.resources

  shaders = [
    "copy.comp.spv",
    "motioncopy.comp.spv",
  ]

  foreach(shader, shaders) {
    resources += [
      {
        path = rebase_path("examples/shaders/${shader}")
        file_name = get_path_info(shader, "file")
        dest = "shaders/${file_name}"
      },
    ]
  }
}

test_package("carnelian_render_tests") {
  deps = [ ":carnelian_test" ]

  tests = [
    {
      name = "carnelian_lib_test"
      environments = basic_envs
    },
  ]

  public_deps = vulkan_validation_layers.public_deps
  loadable_modules = vulkan_validation_layers.loadable_modules
  resources = vulkan_validation_layers.resources
}

unittest_package("carnelian_tests") {
  deps = [ ":carnelian_test" ]

  tests = [
    {
      name = "carnelian_lib_test"
      environments = basic_envs
    },
  ]
}

rustc_binary("carnelian_integration_test_bin") {
  name = "carnelian_integration_test"
  edition = "2018"
  source_root = "tests/carnelian_integration_test.rs"
  deps = [
    "//src/lib/fuchsia-async",
    "//src/lib/ui/carnelian",
    "//src/lib/ui/fuchsia-framebuffer",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:thiserror",
  ]
}

test_package("carnelian_integration_test") {
  deps = [ ":carnelian_integration_test_bin" ]

  tests = [
    {
      name = "carnelian_integration_test"
      environments = [ nuc_env ]
    },
  ]
}

rustc_binary("carnelian_fb_integration_test_bin") {
  name = "carnelian_fb_integration_test"
  edition = "2018"
  source_root = "tests/carnelian_integration_test.rs"
  deps = [
    "//src/lib/fuchsia-async",
    "//src/lib/ui/carnelian",
    "//src/lib/ui/fuchsia-framebuffer",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:thiserror",
  ]
}

test_package("carnelian_fb_integration_test") {
  deps = [ ":carnelian_fb_integration_test_bin" ]

  tests = [
    {
      name = "carnelian_fb_integration_test"
      environments = [ nuc_env ]
    },
  ]
}

group("examples") {
  public_deps = [
    "//src/lib/ui/carnelian:button_rs",
    "//src/lib/ui/carnelian:clockface_rs",
    "//src/lib/ui/carnelian:drawing_mold_rs",
    "//src/lib/ui/carnelian:drawing_rs",
    "//src/lib/ui/carnelian:infinite_scroll_rs",
    "//src/lib/ui/carnelian:ink_rs",
    "//src/lib/ui/carnelian:perf_test_01_rs",
    "//src/lib/ui/carnelian:perf_test_02_rs",
    "//src/lib/ui/carnelian:perf_test_03_rs",
    "//src/lib/ui/carnelian:perf_test_04_rs",
    "//src/lib/ui/carnelian:spinning_square_rs",
  ]
}
