# Copyright 2020 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")

group("all") {
  deps = [ ":iioservice_simpleclient" ]
}

pkg_config("target_defaults_pkg_deps") {
  pkg_deps = [
    "libbrillo",
    "libchrome",
    "libmojo",
  ]
}

static_library("libiioservice_simpleclient") {
  configs += [ ":target_defaults_pkg_deps" ]

  sources = [
    "daemon.cc",
    "observer_impl.cc",
  ]

  deps = [
    "//iioservice/libiioservice_ipc:libiioservice_ipc",
    "//iioservice/libiioservice_ipc:libiioservice_ipc_mojom",
  ]
}

executable("iioservice_simpleclient") {
  configs += [ ":target_defaults_pkg_deps" ]

  sources = [ "iioservice_simpleclient.cc" ]
  deps = [ ":libiioservice_simpleclient" ]
}
