|  | # 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 = [ | 
|  | "//sdk/fidl/fuchsia.fonts:fuchsia.fonts-rustc", | 
|  | "//sdk/fidl/fuchsia.hardware.input:fuchsia.hardware.input-rustc", | 
|  | "//sdk/fidl/fuchsia.images:fuchsia.images-rustc", | 
|  | "//sdk/fidl/fuchsia.input:fuchsia.input-rustc", | 
|  | "//sdk/fidl/fuchsia.input.report:fuchsia.input.report-rustc", | 
|  | "//sdk/fidl/fuchsia.math:fuchsia.math-rustc", | 
|  | "//sdk/fidl/fuchsia.mem:fuchsia.mem-rustc", | 
|  | "//sdk/fidl/fuchsia.scenic.scheduling:fuchsia.scenic.scheduling-rustc", | 
|  | "//sdk/fidl/fuchsia.sysmem:fuchsia.sysmem-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.input2:fuchsia.ui.input2-rustc", | 
|  | "//sdk/fidl/fuchsia.ui.input3:fuchsia.ui.input3-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-rs-sys", | 
|  | "//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/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/ui/input-synthesis", | 
|  | "//src/lib/zircon/rust:fuchsia-zircon", | 
|  | "//src/lib/zircon/rust:fuchsia-zircon-sys", | 
|  | "//src/testing/fidl:placeholders-rustc", | 
|  | "//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:png", | 
|  | "//third_party/rust_crates:rand", | 
|  | "//third_party/rust_crates:rusttype", | 
|  | "//third_party/rust_crates:smallvec", | 
|  | "//third_party/rust_crates:textwrap", | 
|  | "//third_party/rust_crates:ttf-parser", | 
|  | "//third_party/rust_crates:vk-sys", | 
|  | ] | 
|  | 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", | 
|  | ] | 
|  |  | 
|  | sources = [ | 
|  | "src/app.rs", | 
|  | "src/app/strategies.rs", | 
|  | "src/app/strategies/base.rs", | 
|  | "src/app/strategies/framebuffer.rs", | 
|  | "src/app/strategies/scenic.rs", | 
|  | "src/color.rs", | 
|  | "src/drawing.rs", | 
|  | "src/geometry.rs", | 
|  | "src/input.rs", | 
|  | "src/input_ext.rs", | 
|  | "src/lib.rs", | 
|  | "src/message.rs", | 
|  | "src/render/dynamic.rs", | 
|  | "src/render/generic/mod.rs", | 
|  | "src/render/generic/mold/composition.rs", | 
|  | "src/render/generic/mold/context.rs", | 
|  | "src/render/generic/mold/image.rs", | 
|  | "src/render/generic/mold/mod.rs", | 
|  | "src/render/generic/mold/path.rs", | 
|  | "src/render/generic/mold/raster.rs", | 
|  | "src/render/generic/spinel/composition.rs", | 
|  | "src/render/generic/spinel/context.rs", | 
|  | "src/render/generic/spinel/image.rs", | 
|  | "src/render/generic/spinel/mod.rs", | 
|  | "src/render/generic/spinel/path.rs", | 
|  | "src/render/generic/spinel/raster.rs", | 
|  | "src/render/mod.rs", | 
|  | "src/render/shed.rs", | 
|  | "src/view.rs", | 
|  | "src/view/strategies.rs", | 
|  | "src/view/strategies/base.rs", | 
|  | "src/view/strategies/framebuffer.rs", | 
|  | "src/view/strategies/scenic.rs", | 
|  | ] | 
|  |  | 
|  | inputs = [ "//prebuilt/third_party/fonts/robotoslab/RobotoSlab-Regular.ttf" ] | 
|  | } | 
|  |  | 
|  | rustc_binary("button_example") { | 
|  | version = "0.1.0" | 
|  | edition = "2018" | 
|  | source_root = "examples/button.rs" | 
|  | sources = [ "examples/button.rs" ] | 
|  | deps = [ | 
|  | "//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input-rustc", | 
|  | "//src/lib/fuchsia-async", | 
|  | "//src/lib/trace/rust:trace", | 
|  | "//src/lib/trace/rust:trace-provider", | 
|  | "//src/lib/ui/carnelian", | 
|  | "//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:lazy_static", | 
|  | "//third_party/rust_crates:rusttype", | 
|  | "//third_party/rust_crates:textwrap", | 
|  | "//third_party/rust_crates:thiserror", | 
|  | ] | 
|  | } | 
|  |  | 
|  | package("button-rs") { | 
|  | deps = [ ":button_example" ] | 
|  |  | 
|  | binaries = [ | 
|  | { | 
|  | name = "carnelian_example" | 
|  | source = "button_example" | 
|  | }, | 
|  | ] | 
|  |  | 
|  | resources = [ | 
|  | { | 
|  | path = rebase_path( | 
|  | "//prebuilt/third_party/fonts/robotoslab/RobotoSlab-Regular.ttf") | 
|  | dest = "fonts/RobotoSlab-Regular.ttf" | 
|  | }, | 
|  | ] | 
|  |  | 
|  | meta = [ | 
|  | { | 
|  | path = rebase_path("meta/example.cmx") | 
|  | dest = "button-rs.cmx" | 
|  | }, | 
|  | ] | 
|  | } | 
|  |  | 
|  | rustc_binary("clockface") { | 
|  | version = "0.1.0" | 
|  | edition = "2018" | 
|  | source_root = "examples/clockface.rs" | 
|  | sources = [ "examples/clockface.rs" ] | 
|  | deps = [ | 
|  | "//src/lib/fidl/rust/fidl", | 
|  | "//src/lib/fuchsia-async", | 
|  | "//src/lib/fuchsia-component", | 
|  | "//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:rusttype", | 
|  | "//third_party/rust_crates:thiserror", | 
|  | ] | 
|  | } | 
|  |  | 
|  | package("clockface-rs") { | 
|  | deps = [ ":clockface" ] | 
|  |  | 
|  | binaries = [ | 
|  | { | 
|  | name = "carnelian_example" | 
|  | 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 | 
|  | } | 
|  |  | 
|  | rustc_binary("infinite_scroll") { | 
|  | version = "0.1.0" | 
|  | edition = "2018" | 
|  | source_root = "examples/infinite_scroll.rs" | 
|  | sources = [ "examples/infinite_scroll.rs" ] | 
|  | deps = [ | 
|  | "//sdk/fidl/fuchsia.fonts:fuchsia.fonts-rustc", | 
|  | "//sdk/fidl/fuchsia.input.report:fuchsia.input.report-rustc", | 
|  | "//src/lib/fdio/rust:fdio", | 
|  | "//src/lib/fidl/rust/fidl", | 
|  | "//src/lib/fuchsia-async", | 
|  | "//src/lib/fuchsia-component", | 
|  | "//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", | 
|  | ] | 
|  | } | 
|  |  | 
|  | package("infinite-scroll-rs") { | 
|  | deps = [ ":infinite_scroll" ] | 
|  |  | 
|  | binaries = [ | 
|  | { | 
|  | name = "carnelian_example" | 
|  | 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 | 
|  |  | 
|  | resources += [ | 
|  | { | 
|  | path = rebase_path( | 
|  | "//prebuilt/third_party/fonts/robotoslab/RobotoSlab-Regular.ttf") | 
|  | dest = "fonts/RobotoSlab-Regular.ttf" | 
|  | }, | 
|  | ] | 
|  |  | 
|  | shaders = [ | 
|  | "copy.comp.spv", | 
|  | "motioncopy-unorm.comp.spv", | 
|  | "motioncopy-srgb.comp.spv", | 
|  | ] | 
|  |  | 
|  | foreach(shader, shaders) { | 
|  | resources += [ | 
|  | { | 
|  | path = rebase_path("src/render/shaders/${shader}") | 
|  | file_name = get_path_info(shader, "file") | 
|  | dest = "shaders/${file_name}" | 
|  | }, | 
|  | ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rustc_binary("ink") { | 
|  | version = "0.1.0" | 
|  | edition = "2018" | 
|  | source_root = "examples/ink.rs" | 
|  | sources = [ "examples/ink.rs" ] | 
|  | deps = [ | 
|  | "//sdk/fidl/fuchsia.hardware.input:fuchsia.hardware.input-rustc", | 
|  | "//sdk/fidl/fuchsia.input.report:fuchsia.input.report-rustc", | 
|  | "//src/lib/fdio/rust:fdio", | 
|  | "//src/lib/fidl/rust/fidl", | 
|  | "//src/lib/fuchsia-async", | 
|  | "//src/lib/fuchsia-component", | 
|  | "//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:euclid", | 
|  | "//third_party/rust_crates:futures", | 
|  | "//third_party/rust_crates:itertools", | 
|  | "//third_party/rust_crates:rand", | 
|  | "//third_party/rust_crates:rusttype", | 
|  | "//third_party/rust_crates:thiserror", | 
|  | ] | 
|  | } | 
|  |  | 
|  | package("ink-rs") { | 
|  | deps = [ ":ink" ] | 
|  |  | 
|  | binaries = [ | 
|  | { | 
|  | name = "carnelian_example" | 
|  | 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 | 
|  | } | 
|  |  | 
|  | rustc_binary("shapes") { | 
|  | version = "0.1.0" | 
|  | edition = "2018" | 
|  | source_root = "examples/shapes.rs" | 
|  | sources = [ "examples/shapes.rs" ] | 
|  | deps = [ | 
|  | "//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input-rustc", | 
|  | "//src/lib/fuchsia-async", | 
|  | "//src/lib/trace/rust:trace", | 
|  | "//src/lib/trace/rust:trace-provider", | 
|  | "//src/lib/ui/carnelian", | 
|  | "//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:thiserror", | 
|  | ] | 
|  | } | 
|  |  | 
|  | package("shapes-rs") { | 
|  | deps = [ ":shapes" ] | 
|  |  | 
|  | binaries = [ | 
|  | { | 
|  | name = "carnelian_example" | 
|  | source = "shapes" | 
|  | }, | 
|  | ] | 
|  |  | 
|  | meta = [ | 
|  | { | 
|  | path = rebase_path("meta/example.cmx") | 
|  | dest = "shapes-rs.cmx" | 
|  | }, | 
|  | ] | 
|  |  | 
|  | public_deps = vulkan_validation_layers.public_deps | 
|  | loadable_modules = vulkan_validation_layers.loadable_modules | 
|  | resources = vulkan_validation_layers.resources | 
|  | } | 
|  |  | 
|  | rustc_binary("spinning_square") { | 
|  | version = "0.1.0" | 
|  | edition = "2018" | 
|  | source_root = "examples/spinning_square.rs" | 
|  | sources = [ "examples/spinning_square.rs" ] | 
|  | deps = [ | 
|  | "//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input-rustc", | 
|  | "//src/lib/fidl/rust/fidl", | 
|  | "//src/lib/fuchsia-async", | 
|  | "//src/lib/trace/rust:trace", | 
|  | "//src/lib/trace/rust:trace-provider", | 
|  | "//src/lib/ui/carnelian", | 
|  | "//src/lib/ui/fuchsia-scenic", | 
|  | "//src/lib/zircon/rust:fuchsia-zircon", | 
|  | "//src/testing/fidl:placeholders-rustc", | 
|  | "//third_party/rust_crates:anyhow", | 
|  | "//third_party/rust_crates:euclid", | 
|  | "//third_party/rust_crates:futures", | 
|  | "//third_party/rust_crates:thiserror", | 
|  | ] | 
|  | } | 
|  |  | 
|  | package("spinning-square-rs") { | 
|  | deps = [ ":spinning_square" ] | 
|  |  | 
|  | binaries = [ | 
|  | { | 
|  | name = "carnelian_example" | 
|  | source = "spinning_square" | 
|  | }, | 
|  | ] | 
|  |  | 
|  | meta = [ | 
|  | { | 
|  | path = rebase_path("meta/example.cmx") | 
|  | dest = "spinning-square-rs.cmx" | 
|  | }, | 
|  | ] | 
|  | } | 
|  |  | 
|  | rustc_binary("gamma") { | 
|  | version = "0.1.0" | 
|  | edition = "2018" | 
|  | source_root = "examples/gamma.rs" | 
|  | sources = [ "examples/gamma.rs" ] | 
|  | deps = [ | 
|  | "//src/lib/fidl/rust/fidl", | 
|  | "//src/lib/fuchsia-async", | 
|  | "//src/lib/trace/rust:trace", | 
|  | "//src/lib/trace/rust:trace-provider", | 
|  | "//src/lib/ui/carnelian", | 
|  | "//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:thiserror", | 
|  | ] | 
|  | } | 
|  |  | 
|  | package("gamma-rs") { | 
|  | deps = [ ":gamma" ] | 
|  |  | 
|  | binaries = [ | 
|  | { | 
|  | name = "carnelian_example" | 
|  | source = "gamma" | 
|  | }, | 
|  | ] | 
|  |  | 
|  | meta = [ | 
|  | { | 
|  | path = rebase_path("meta/example.cmx") | 
|  | dest = "gamma-rs.cmx" | 
|  | }, | 
|  | ] | 
|  |  | 
|  | public_deps = vulkan_validation_layers.public_deps | 
|  | loadable_modules = vulkan_validation_layers.loadable_modules | 
|  | resources = vulkan_validation_layers.resources | 
|  | } | 
|  |  | 
|  | rustc_binary("png") { | 
|  | version = "0.1.0" | 
|  | edition = "2018" | 
|  | source_root = "examples/png.rs" | 
|  | sources = [ "examples/png.rs" ] | 
|  | deps = [ | 
|  | "//src/lib/fidl/rust/fidl", | 
|  | "//src/lib/fuchsia-async", | 
|  | "//src/lib/trace/rust:trace", | 
|  | "//src/lib/trace/rust:trace-provider", | 
|  | "//src/lib/ui/carnelian", | 
|  | "//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:png", | 
|  | "//third_party/rust_crates:thiserror", | 
|  | ] | 
|  | } | 
|  |  | 
|  | package("png-rs") { | 
|  | deps = [ ":png" ] | 
|  |  | 
|  | binaries = [ | 
|  | { | 
|  | name = "carnelian_example" | 
|  | source = "png" | 
|  | }, | 
|  | ] | 
|  |  | 
|  | meta = [ | 
|  | { | 
|  | path = rebase_path("meta/example.cmx") | 
|  | dest = "png-rs.cmx" | 
|  | }, | 
|  | ] | 
|  |  | 
|  | public_deps = vulkan_validation_layers.public_deps | 
|  | loadable_modules = vulkan_validation_layers.loadable_modules | 
|  | resources = vulkan_validation_layers.resources | 
|  |  | 
|  | images = [ | 
|  | "lenna.png", | 
|  | "baboon.png", | 
|  | "cross.png", | 
|  | ] | 
|  |  | 
|  | foreach(image, images) { | 
|  | resources += [ | 
|  | { | 
|  | path = rebase_path("examples/static/${image}") | 
|  | file_name = get_path_info(image, "file") | 
|  | dest = "static/${file_name}" | 
|  | }, | 
|  | ] | 
|  | } | 
|  | } | 
|  |  | 
|  | rustc_binary("svg") { | 
|  | version = "0.1.0" | 
|  | edition = "2018" | 
|  | source_root = "examples/svg.rs" | 
|  | sources = [ "examples/svg.rs" ] | 
|  | deps = [ | 
|  | "//src/lib/fidl/rust/fidl", | 
|  | "//src/lib/fuchsia-async", | 
|  | "//src/lib/trace/rust:trace", | 
|  | "//src/lib/trace/rust:trace-provider", | 
|  | "//src/lib/ui/carnelian", | 
|  | "//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:thiserror", | 
|  | ] | 
|  | } | 
|  |  | 
|  | package("svg-rs") { | 
|  | deps = [ ":svg" ] | 
|  |  | 
|  | binaries = [ | 
|  | { | 
|  | name = "carnelian_example" | 
|  | source = "svg" | 
|  | }, | 
|  | ] | 
|  |  | 
|  | meta = [ | 
|  | { | 
|  | path = rebase_path("meta/example.cmx") | 
|  | dest = "svg-rs.cmx" | 
|  | }, | 
|  | ] | 
|  |  | 
|  | resources = [ | 
|  | { | 
|  | path = rebase_path("examples/static/fuchsia.shed") | 
|  | file_name = get_path_info("fuchsia.shed", "file") | 
|  | dest = "static/${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 | 
|  | } | 
|  |  | 
|  | test_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" | 
|  | sources = [ "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" | 
|  | sources = [ "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:gamma-rs", | 
|  | "//src/lib/ui/carnelian:infinite-scroll-rs", | 
|  | "//src/lib/ui/carnelian:ink-rs", | 
|  | "//src/lib/ui/carnelian:png-rs", | 
|  | "//src/lib/ui/carnelian:shapes-rs", | 
|  | "//src/lib/ui/carnelian:spinning-square-rs", | 
|  | "//src/lib/ui/carnelian:svg-rs", | 
|  | ] | 
|  | } |