blob: a2affcad8413fedfc76ae5af451d5a782cff089c [file] [log] [blame]
# 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")
declare_args() {
# Controls whether the build should use the version of Wayland
# library shipped with the system or Chromium third_party.
use_system_libwayland = false
}
if (!use_system_libwayland) {
config("wayland_config") {
include_dirs = [
"include/src",
"include/protocol",
"src/src",
]
# TODO(thomasanderson): Remove this once
# https://patchwork.freedesktop.org/patch/242086/ lands.
cflags = [ "-Wno-macro-redefined" ]
}
static_library("wayland_util") {
sources = [
"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",
"src/src/wayland-private.h",
]
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",
]
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" ]
}
}
if (use_system_libwayland) {
pkg_config("wayland_client_config") {
packages = [ "wayland-client" ]
}
pkg_config("wayland_server_config") {
packages = [ "wayland-server" ]
}
group("wayland_client") {
public_configs = [ ":wayland_client_config" ]
}
group("wayland_server") {
public_configs = [ ":wayland_server_config" ]
}
group("wayland_util") {
public_configs = [ ":wayland_client_config" ]
}
}