# 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.

declare_args() {
  use_system_libffi = true
}

config("wayland_config") {
  include_dirs = [
    "include/src",
    "include/protocol",
    "src/src",
  ]
}

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",
    ":wayland_config",
  ]
  if (use_system_libffi) {
   configs += [
    "//build/config/linux/libffi"
   ]
  }
}

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",
  ]

  if (use_system_libffi) {
   configs += [
     "//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",
  ]

  if (use_system_libffi) {
   configs += [
    "//build/config/linux/libffi"
   ]
  }

  public_configs = [ ":wayland_config" ]
}
