blob: 527ba119aa80f3d7cbd68c5d1534eaefd444ec6c [file] [log] [blame]
# Copyright 2022 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/dist/resource.gni")
import("//build/rust/rustc_library.gni")
import("//build/rust/rustc_test.gni")
declare_args() {
# Enable this to make object lookup failures fatal for debugging.
wayland_server_fatal_object_lookup_failures = false
}
resource("keymap") {
sources = [ "assets/keymap.xkb" ]
outputs = [ "data/keymap.xkb" ]
}
rustc_library("lib") {
name = "wayland_bridge"
with_unit_tests = true
edition = "2021"
source_root = "src/lib.rs"
deps = [
":keymap",
"//sdk/fidl/fuchsia.element:fuchsia.element_rust",
"//sdk/fidl/fuchsia.input:fuchsia.input_rust",
"//sdk/fidl/fuchsia.math:fuchsia.math_rust",
"//sdk/fidl/fuchsia.ui.app:fuchsia.ui.app_rust",
"//sdk/fidl/fuchsia.ui.composition:fuchsia.ui.composition_rust",
"//sdk/fidl/fuchsia.ui.gfx:fuchsia.ui.gfx_rust",
"//sdk/fidl/fuchsia.ui.input3:fuchsia.ui.input3_rust",
"//sdk/fidl/fuchsia.ui.pointer:fuchsia.ui.pointer_rust",
"//sdk/fidl/fuchsia.ui.scenic:fuchsia.ui.scenic_rust",
"//sdk/fidl/fuchsia.ui.views:fuchsia.ui.views_rust",
"//sdk/fidl/fuchsia.ui.views:fuchsia.ui.views_rust",
"//src/lib/async-utils",
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia-async",
"//src/lib/fuchsia-component",
"//src/lib/fuchsia-sync",
"//src/lib/trace/rust:trace",
"//src/lib/ui/fuchsia-scenic",
"//src/lib/ui/wayland/bindings/protocols:wayland_server_protocol",
"//src/lib/ui/wayland/bindings/protocols:wp_viewporter_server_protocol",
"//src/lib/ui/wayland/bindings/protocols:xdg_shell_server_protocol",
"//src/lib/ui/wayland/bindings/protocols:zaura_shell_server_protocol",
"//src/lib/ui/wayland/bindings/protocols:zcr_alpha_compositing_v1_server_protocol",
"//src/lib/ui/wayland/bindings/protocols:zcr_secure_output_v1_server_protocol",
"//src/lib/ui/wayland/bindings/protocols:zwp_linux_dmabuf_v1_server_protocol",
"//src/lib/ui/wayland/bindings/protocols:zwp_pointer_constraints_v1_server_protocol",
"//src/lib/ui/wayland/bindings/protocols:zwp_relative_pointer_v1_server_protocol",
"//src/lib/ui/wayland/core",
"//src/lib/zircon/rust:fuchsia-zircon",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:futures",
"//third_party/rust_crates:thiserror",
]
sources = [
"src/alpha_compositing.rs",
"src/aura_shell.rs",
"src/buffer.rs",
"src/client.rs",
"src/compositor.rs",
"src/data_device_manager.rs",
"src/dispatcher.rs",
"src/display.rs",
"src/lib.rs",
"src/linux_dmabuf.rs",
"src/object.rs",
"src/output.rs",
"src/pointer_constraints.rs",
"src/registry.rs",
"src/relative_pointer.rs",
"src/scenic.rs",
"src/seat.rs",
"src/secure_output.rs",
"src/shm.rs",
"src/subcompositor.rs",
"src/test_protocol.rs",
"src/viewporter.rs",
"src/xdg_shell.rs",
]
features = []
if (target_cpu == "x64") {
# This enables Intel format modifiers
features += [ "i915" ]
}
if (wayland_server_fatal_object_lookup_failures) {
features += [ "fatal_object_lookup_failures" ]
}
}
group("server") {
public_deps = [ ":lib" ]
}
fuchsia_unittest_component("wayland_server_unit_tests") {
deps = [ ":lib_test" ]
}
fuchsia_test_package("wayland_server_tests") {
test_components = [ ":wayland_server_unit_tests" ]
}
group("tests") {
testonly = true
deps = [ ":wayland_server_tests" ]
}