# 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 = [
    ":cfm_dfu_notification",
  ]
  if (use.test) {
    deps += [ ":cfm_dfu_notification_test" ]
  }
}

pkg_config("cfm_dfu_notification_pkg_deps") {
  pkg_deps = [ "libchrome-${libbase_ver}" ]
}

shared_library("cfm_dfu_notification") {
  configs += [ ":cfm_dfu_notification_pkg_deps" ]
  sources = [
    "dfu_log_notification.cc",
    "idfu_notification.cc",
  ]
}

if (use.test) {
  pkg_config("test_config") {
    pkg_deps = [ "libchrome-test-${libbase_ver}" ]
  }

  executable("cfm_dfu_notification_test") {
    configs += [
      ":test_config",
      "//common-mk:test",
    ]
    sources = [
      "dfu_log_notification.cc",
      "dfu_log_notification_test.cc",
      "idfu_notification.cc",
    ]
    defines = [ "UNIT_TEST" ]
    deps = [
      "//common-mk/testrunner",
    ]
  }
}
