| # Copyright 2015 The Chromium Authors |
| # 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("//build/config/sysroot.gni") |
| import("//third_party/wayland/wayland_protocol.gni") |
| import("//tools/generate_stubs/rules.gni") |
| |
| assert(is_linux || is_chromeos) |
| |
| wayland_protocol("wayland_protocol_c") { |
| sources = [ "src/protocol/wayland.xml" ] |
| generator_type = "protocol-marshalling" |
| } |
| |
| config("wayland_config") { |
| include_dirs = [ |
| "include", |
| "include/src", |
| "src/cursor", |
| "src/egl", |
| "src/src", |
| ] |
| |
| # Client/Server headers are automatically generated. Though, we still need |
| # to pass the path where these headers are located. |
| include_dirs += [ "$root_gen_dir/third_party/wayland/src/protocol" ] |
| } |
| |
| # Only used within this file. Should not be in a public_config entry and leak |
| # out. No relations to the "wayland_private" target below. |
| # TODO(thomasanderson): Remove this once |
| # https://patchwork.freedesktop.org/patch/242086/ lands. |
| config("wayland_build_workaround_private_config") { |
| cflags = [ "-Wno-macro-redefined" ] |
| } |
| |
| wayland_protocol("wayland_server_protocol") { |
| sources = [ "src/protocol/wayland.xml" ] |
| generator_type = "protocol-server" |
| } |
| |
| wayland_protocol("wayland_client_protocol") { |
| sources = [ "src/protocol/wayland.xml" ] |
| generator_type = "protocol-client" |
| } |
| |
| 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 += [ |
| ":wayland_build_workaround_private_config", |
| "//build/config/compiler:no_chromium_code", |
| "//build/config/linux/libffi", |
| ] |
| |
| public_configs = [ ":wayland_config" ] |
| } |
| |
| static_library("wayland_server") { |
| sources = [ |
| "src/src/event-loop.c", |
| "src/src/wayland-server.c", |
| "src/src/wayland-shm.c", |
| ] |
| |
| include_dirs = [ "include/" ] |
| |
| deps = [ |
| ":wayland_private", |
| ":wayland_protocol_c", |
| ":wayland_util", |
| ] |
| |
| public_deps = [ ":wayland_server_protocol" ] |
| |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ |
| ":wayland_build_workaround_private_config", |
| "//build/config/compiler:no_chromium_code", |
| "//build/config/linux/libffi", |
| ] |
| |
| public_configs = [ ":wayland_config" ] |
| } |
| |
| static_library("wayland_client") { |
| sources = [ "src/src/wayland-client.c" ] |
| |
| deps = [ |
| ":wayland_client_protocol", |
| ":wayland_private", |
| ":wayland_protocol_c", |
| ":wayland_util", |
| ] |
| |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ |
| ":wayland_build_workaround_private_config", |
| "//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_client_protocol", |
| ":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", |
| ] |
| |
| deps = [ ":wayland_client_protocol" ] |
| |
| configs -= [ "//build/config/compiler:chromium_code" ] |
| configs += [ |
| "//build/config/compiler:no_chromium_code", |
| ":wayland_build_workaround_private_config", |
| ":wayland_config", |
| ] |
| } |
| |
| 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", |
| ] |
| } |