chromium/chromecast/system/reboot/BUILD.gn

# Copyright 2016 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//chromecast/chromecast.gni")
import("//testing/test.gni")

cast_source_set("reboot_util") {
  sources = [
    "reboot_util.h",
    "reboot_util_core.cc",
  ]

  deps = [ "//base" ]

  if (!is_fuchsia) {
    if (chromecast_branding == "google") {
      deps += [ "//chromecast/internal/system/reboot:reboot_util" ]
    } else {
      sources += [ "reboot_util_dummy.cc" ]
    }
  }

  if (is_android && chromecast_branding != "public") {
    deps += [
      "//chromecast/internal/system/reboot/android:reboot_shlib_impl",
      "//chromecast/public",
    ]
  } else if (is_fuchsia) {
    deps += [ ":fuchsia" ]
  } else {
    deps += [ ":libcast_reboot_1.0" ]
  }
}

test("cast_reboot_unittests") {
  sources = [ "reboot_util_test.cc" ]

  deps = [
    ":reboot_util",
    "//base/test:run_all_unittests",
    "//base/test:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]

  if (is_fuchsia) {
    sources += [ "reboot_fuchsia_test.cc" ]
    deps += [
      ":fuchsia",
      "//chromecast/public",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.feedback:fuchsia.feedback_hlcpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.hardware.power.statecontrol:fuchsia.hardware.power.statecontrol_hlcpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.io:fuchsia.io_hlcpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.recovery:fuchsia.recovery_hlcpp",
      "//third_party/fuchsia-sdk/sdk/pkg/fidl_cpp",
      "//third_party/fuchsia-sdk/sdk/pkg/fit-promise",
      "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
    ]
  }
}

# Target for OEM partners to override reboot shared library, i.e.
# libcast_reboot_1.0.so.
cast_shared_library("libcast_reboot_1.0") {
  sources = [ "reboot_dummy.cc" ]

  public_deps = [ "//chromecast/public" ]
}

if (is_fuchsia) {
  cast_source_set("fuchsia") {
    sources = [
      "fuchsia_component_restart_reason.cc",
      "fuchsia_component_restart_reason.h",
      "reboot_fuchsia.cc",
      "reboot_fuchsia.h",
      "reboot_util.h",
    ]
    public_deps = [ "//chromecast/public" ]
    deps = [
      "//base",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.feedback:fuchsia.feedback_hlcpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.hardware.power.statecontrol:fuchsia.hardware.power.statecontrol_hlcpp",
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.recovery:fuchsia.recovery_hlcpp",
      "//third_party/fuchsia-sdk/sdk/pkg/fidl",
      "//third_party/fuchsia-sdk/sdk/pkg/fidl_cpp",
      "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
    ]
  }
}