123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- # Copyright 2015 The Chromium 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/config/linux/pkg_config.gni")
- import("//third_party/wayland/features.gni")
- import("//tools/generate_stubs/rules.gni")
- if (!use_system_libwayland) {
- config("wayland_config") {
- include_dirs = [
- "include",
- "include/src",
- "include/protocol",
- "src/cursor",
- "src/egl",
- "src/src",
- ]
- # TODO(thomasanderson): Remove this once
- # https://patchwork.freedesktop.org/patch/242086/ lands.
- cflags = [ "-Wno-macro-redefined" ]
- }
- source_set("wayland_util") {
- sources = [
- "src/src/wayland-private.h",
- "src/src/wayland-util.c",
- "src/src/wayland-util.h",
- ]
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [ "//build/config/compiler:no_chromium_code" ]
- public_configs = [ ":wayland_config" ]
- }
- static_library("wayland_private") {
- sources = [
- "src/src/connection.c",
- "src/src/wayland-os.c",
- "src/src/wayland-os.h",
- ]
- deps = [ ":wayland_util" ]
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [
- "//build/config/compiler:no_chromium_code",
- "//build/config/linux/libffi",
- ":wayland_config",
- ]
- }
- static_library("wayland_protocol") {
- sources = [ "protocol/wayland-protocol.c" ]
- deps = [ ":wayland_util" ]
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [ "//build/config/compiler:no_chromium_code" ]
- public_configs = [ ":wayland_config" ]
- }
- static_library("wayland_server") {
- sources = [
- "include/protocol/wayland-server-protocol.h",
- "src/src/event-loop.c",
- "src/src/wayland-server.c",
- "src/src/wayland-shm.c",
- ]
- include_dirs = [ "include/" ]
- deps = [
- ":wayland_private",
- ":wayland_protocol",
- ":wayland_util",
- ]
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [
- "//build/config/compiler:no_chromium_code",
- "//build/config/linux/libffi",
- ]
- public_configs = [ ":wayland_config" ]
- }
- static_library("wayland_client") {
- sources = [
- "include/protocol/wayland-client-protocol.h",
- "src/src/wayland-client.c",
- ]
- deps = [
- ":wayland_private",
- ":wayland_protocol",
- ":wayland_util",
- ]
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [
- "//build/config/compiler:no_chromium_code",
- "//build/config/linux/libffi",
- ]
- public_configs = [ ":wayland_config" ]
- }
- static_library("wayland_egl") {
- sources = [
- "src/egl/wayland-egl-backend.h",
- "src/egl/wayland-egl-core.h",
- "src/egl/wayland-egl.c",
- "src/egl/wayland-egl.h",
- ]
- deps = [ ":wayland_util" ]
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [ "//build/config/compiler:no_chromium_code" ]
- public_configs = [ ":wayland_config" ]
- }
- static_library("wayland_cursor") {
- sources = [
- "src/cursor/cursor-data.h",
- "src/cursor/os-compatibility.c",
- "src/cursor/os-compatibility.h",
- "src/cursor/wayland-cursor.c",
- "src/cursor/wayland-cursor.h",
- "src/cursor/xcursor.c",
- "src/cursor/xcursor.h",
- ]
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [ "//build/config/compiler:no_chromium_code" ]
- public_configs = [ ":wayland_config" ]
- }
- }
- if (!use_system_wayland_scanner) {
- config("wayland_scanner_config") {
- cflags = [
- "-Wno-int-conversion",
- "-Wno-implicit-function-declaration",
- ]
- include_dirs = [ "include/" ]
- }
- executable("wayland_scanner") {
- sources = [ "src/src/scanner.c" ]
- deps = [
- ":wayland_util",
- "//third_party/expat:expat",
- ]
- configs -= [ "//build/config/compiler:chromium_code" ]
- configs += [
- "//build/config/compiler:no_chromium_code",
- ":wayland_scanner_config",
- ]
- }
- }
- if (use_system_libwayland) {
- pkg_config("wayland_client_config") {
- packages = [ "wayland-client" ]
- }
- pkg_config("wayland_cursor_config") {
- packages = [ "wayland-cursor" ]
- }
- pkg_config("wayland_server_config") {
- packages = [ "wayland-server" ]
- }
- pkg_config("wayland_egl_config") {
- packages = [ "wayland-egl" ]
- }
- group("wayland_client") {
- public_configs = [ ":wayland_client_config" ]
- }
- group("wayland_cursor") {
- public_configs = [ ":wayland_cursor_config" ]
- }
- group("wayland_server") {
- public_configs = [ ":wayland_server_config" ]
- }
- group("wayland_util") {
- public_configs = [ ":wayland_client_config" ]
- }
- group("wayland_egl") {
- public_configs = [ ":wayland_egl_config" ]
- }
- generate_stubs("wayland_wrappers") {
- visibility = [ ":wayland_stubs" ]
- extra_header = "stubs/libwayland.fragment"
- sigs = [
- "stubs/libwayland-client.sigs",
- "stubs/libwayland-cursor.sigs",
- "stubs/libwayland-egl.sigs",
- ]
- output_name = "libwayland_stubs"
- deps = [ "//base" ]
- }
- # This is a source_set, not a component, because we don't want to leak
- # our own wayland symbols in component builds, which can interfere with
- # the system libEGL's usage of wayland.
- source_set("wayland_stubs") {
- public_deps = [ ":wayland_wrappers" ]
- sources = [
- # Provide data symbols which generate_stubs.py cannot wrap -- only
- # functions are wrappable. wayland-protocol.c contains only data and
- # no code.
- "protocol/wayland-protocol.c",
- # Provide implementations of C variadic functions, which
- # generate_stubs.py cannot generate forwarding-functions for.
- "stubs/libwayland_variadic_support.cc",
- ]
- # This is a hack to hide the symbols annoted with
- # attribute((visibility("default"))) in wayland-protocol.c since libwayland
- # currently doesn't provide a way to override this behavior. This can be
- # removed once https://gitlab.freedesktop.org/wayland/wayland/-/issues/179
- # is fixed and we can switch to overriding WL_EXPORT directly.
- defines = [ "visibility(x)=visibility(\"hidden\")" ]
- }
- }
|