|  | # 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/package.gni") | 
|  | import("//build/rust/rustc_binary.gni") | 
|  | import("//build/rust/rustc_library.gni") | 
|  | import("//build/test/test_package.gni") | 
|  |  | 
|  | rustc_library("fuchsia-framebuffer") { | 
|  | name = "fuchsia_framebuffer" | 
|  | version = "0.1.0" | 
|  | edition = "2018" | 
|  | with_unit_tests = true | 
|  | deps = [ | 
|  | "//sdk/fidl/fuchsia.hardware.display:fuchsia.hardware.display-rustc", | 
|  | "//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem-rustc", | 
|  | "//src/lib/fdio/rust:fdio", | 
|  | "//src/lib/fidl/rust/fidl", | 
|  | "//src/lib/fuchsia-async", | 
|  | "//src/lib/fuchsia-component", | 
|  | "//src/lib/fuchsia-runtime", | 
|  | "//src/lib/mapped-vmo", | 
|  | "//src/lib/shared-buffer", | 
|  | "//src/lib/zircon/rust:fuchsia-zircon", | 
|  | "//third_party/rust_crates:anyhow", | 
|  | "//third_party/rust_crates:futures", | 
|  | "//third_party/rust_crates:thiserror", | 
|  | ] | 
|  |  | 
|  | sources = [ | 
|  | "src/lib.rs", | 
|  | "src/sysmem.rs", | 
|  | ] | 
|  | } | 
|  |  | 
|  | unittest_package("fuchsia-framebuffer-tests") { | 
|  | deps = [ ":fuchsia-framebuffer_test" ] | 
|  |  | 
|  | tests = [ | 
|  | { | 
|  | name = "fuchsia_framebuffer_lib_test" | 
|  | environments = basic_envs | 
|  | }, | 
|  | ] | 
|  | } | 
|  |  | 
|  | rustc_binary("box") { | 
|  | version = "0.1.0" | 
|  | edition = "2018" | 
|  | with_unit_tests = true | 
|  | source_root = "examples/box.rs" | 
|  | deps = [ | 
|  | "//src/lib/fuchsia-async", | 
|  | "//src/lib/ui/fuchsia-framebuffer", | 
|  | "//src/lib/zircon/rust:fuchsia-zircon", | 
|  | "//third_party/rust_crates:anyhow", | 
|  | "//third_party/rust_crates:futures", | 
|  | "//third_party/rust_crates:thiserror", | 
|  | ] | 
|  |  | 
|  | sources = [ "examples/box.rs" ] | 
|  | } | 
|  |  | 
|  | package("fb_box_rs") { | 
|  | deps = [ ":box" ] | 
|  |  | 
|  | binaries = [ | 
|  | { | 
|  | name = "box" | 
|  | }, | 
|  | ] | 
|  |  | 
|  | meta = [ | 
|  | { | 
|  | path = rebase_path("meta/box.cmx") | 
|  | dest = "fb_box_rs.cmx" | 
|  | }, | 
|  | ] | 
|  | } | 
|  |  | 
|  | rustc_binary("fb_integration_test_bin") { | 
|  | name = "fb_integration_test" | 
|  | edition = "2018" | 
|  | source_root = "tests/fb_integration_test.rs" | 
|  | deps = [ | 
|  | "//src/lib/fuchsia-async", | 
|  | "//src/lib/ui/fuchsia-framebuffer", | 
|  | "//src/lib/zircon/rust:fuchsia-zircon", | 
|  | "//third_party/rust_crates:anyhow", | 
|  | "//third_party/rust_crates:futures", | 
|  | "//third_party/rust_crates:thiserror", | 
|  | ] | 
|  |  | 
|  | sources = [ "tests/fb_integration_test.rs" ] | 
|  | } | 
|  |  | 
|  | test_package("fb_integration_test") { | 
|  | deps = [ ":fb_integration_test_bin" ] | 
|  |  | 
|  | tests = [ | 
|  | { | 
|  | name = "fb_integration_test" | 
|  | environments = [ nuc_env ] | 
|  | }, | 
|  | ] | 
|  | } | 
|  |  | 
|  | group("examples") { | 
|  | public_deps = [ "//src/lib/ui/fuchsia-framebuffer:fb_box_rs" ] | 
|  | } |