| # Copyright 2019 The Chromium OS 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("//common-mk/pkg_config.gni") |
| import("wayland_protocol.gni") |
| |
| group("all") { |
| deps = [ |
| ":sommelier", |
| ] |
| if (use.fuzzer) { |
| deps += [ ":sommelier_wayland_fuzzer" ] |
| } |
| |
| if (use.test) { |
| deps += [ ":sommelier_test" ] |
| } |
| } |
| |
| # Set this to the Xwayland path. |
| if (!defined(xwayland_path)) { |
| xwayland_path = "\"/opt/google/cros-containers/bin/Xwayland\"" |
| } |
| |
| # Set this to the GL driver path to use for Xwayland. |
| if (!defined(xwayland_gl_driver_path)) { |
| xwayland_gl_driver_path = "\"/opt/google/cros-containers/lib\"" |
| } |
| |
| # Set this to the frame color to use for Xwayland clients. |
| if (!defined(frame_color)) { |
| frame_color = "\"#f2f2f2\"" |
| } |
| |
| # Set this to the dark frame color to use for Xwayland clients. |
| if (!defined(dark_frame_color)) { |
| dark_frame_color = "\"#323639\"" |
| } |
| |
| wayland_protocol_library("sommelier-protocol") { |
| out_dir = "include" |
| sources = [ |
| "protocol/aura-shell.xml", |
| "protocol/drm.xml", |
| "protocol/gaming-input-unstable-v2.xml", |
| "protocol/gtk-shell.xml", |
| "protocol/keyboard-extension-unstable-v1.xml", |
| "protocol/linux-dmabuf-unstable-v1.xml", |
| "protocol/linux-explicit-synchronization-unstable-v1.xml", |
| "protocol/pointer-constraints-unstable-v1.xml", |
| "protocol/relative-pointer-unstable-v1.xml", |
| "protocol/text-input-unstable-v1.xml", |
| "protocol/viewporter.xml", |
| "protocol/xdg-shell-unstable-v6.xml", |
| ] |
| } |
| |
| gaming_defines = [ "GAMEPAD_SUPPORT" ] |
| gaming_deps = [ ":libgaming" ] |
| |
| tracing_defines = [ "PERFETTO_TRACING" ] |
| tracing_pkg_deps = [ "perfetto" ] |
| tracing_libs = [ "pthread" ] |
| |
| sommelier_defines = [ |
| "_GNU_SOURCE", |
| "WL_HIDE_DEPRECATED", |
| "XWAYLAND_PATH=${xwayland_path}", |
| "XWAYLAND_GL_DRIVER_PATH=${xwayland_gl_driver_path}", |
| "FRAME_COLOR=${frame_color}", |
| "DARK_FRAME_COLOR=${dark_frame_color}", |
| ] + gaming_defines + tracing_defines |
| |
| static_library("libgaming") { |
| sources = [ "sommelier-gaming.cc" ] |
| defines = gaming_defines |
| pkg_deps = [ "libevdev" ] |
| deps = [ ":sommelier-protocol" ] |
| } |
| |
| static_library("libsommelier") { |
| sources = [ |
| "sommelier-compositor.cc", |
| "sommelier-ctx.cc", |
| "sommelier-data-device-manager.cc", |
| "sommelier-display.cc", |
| "sommelier-drm.cc", |
| "sommelier-global.cc", |
| "sommelier-gtk-shell.cc", |
| "sommelier-mmap.cc", |
| "sommelier-output.cc", |
| "sommelier-pointer-constraints.cc", |
| "sommelier-relative-pointer-manager.cc", |
| "sommelier-seat.cc", |
| "sommelier-shell.cc", |
| "sommelier-shm.cc", |
| "sommelier-subcompositor.cc", |
| "sommelier-text-input.cc", |
| "sommelier-timing.cc", |
| "sommelier-tracing.cc", |
| "sommelier-util.cc", |
| "sommelier-viewporter.cc", |
| "sommelier-window.cc", |
| "sommelier-xdg-shell.cc", |
| "sommelier.cc", |
| "virtualization/virtgpu_channel.cc", |
| "virtualization/virtwl_channel.cc", |
| ] |
| include_dirs = [] |
| defines = sommelier_defines |
| pkg_deps = [ |
| "gbm", |
| "libdrm", |
| "pixman-1", |
| "wayland-client", |
| "wayland-server", |
| "xcb", |
| "xcb-composite", |
| "xcb-xfixes", |
| "xkbcommon", |
| ] + tracing_pkg_deps |
| libs = [ "m" ] + tracing_libs |
| deps = [ ":sommelier-protocol" ] + gaming_deps |
| } |
| |
| executable("sommelier") { |
| sources = [ "sommelier-main.cc" ] |
| |
| defines = sommelier_defines |
| |
| deps = [ ":libsommelier" ] |
| } |
| |
| if (use.test) { |
| executable("sommelier_test") { |
| sources = [ "sommelier_test.cc" ] |
| |
| # gnlint: disable=GnLintCommonTesting |
| libs = [ |
| "gmock", |
| "gtest", |
| ] |
| defines = sommelier_defines |
| deps = [ ":libsommelier" ] |
| } |
| } |
| |
| if (use.fuzzer) { |
| executable("sommelier_wayland_fuzzer") { |
| sources = [ "sommelier-wayland-fuzzer.cc" ] |
| |
| configs += [ "//common-mk/common_fuzzer" ] |
| |
| defines = sommelier_defines |
| |
| deps = [ ":libsommelier" ] |
| } |
| } |