# 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/components.gni")
import("//build/rust/rustc_binary.gni")
import("//build/rust/rustc_library.gni")

rustc_library("fuchsia-framebuffer") {
  name = "fuchsia_framebuffer"
  version = "0.1.0"
  edition = "2021"
  with_unit_tests = true
  deps = [
    "//sdk/fidl/fuchsia.images2:fuchsia.images2_rust",
    "//sdk/fidl/fuchsia.math:fuchsia.math_rust",
    "//sdk/fidl/fuchsia.sysmem2:fuchsia.sysmem2_rust",
    "//src/graphics/display/lib/rust/display-utils",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-runtime",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
  ]
  test_deps = [
    "//src/devices/bind/fuchsia.sysmem.heap:fuchsia.sysmem.heap_rust",
    "//src/lib/fuchsia-async",
    "//third_party/rust_crates:futures",
  ]

  sources = [
    "src/lib.rs",
    "src/sysmem.rs",
  ]
}

fuchsia_unittest_package("fuchsia-framebuffer-tests") {
  deps = [ ":fuchsia-framebuffer_test" ]
}
