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

source_set("upgrade") {
  configs += [ "//build/config/compiler:enable_arc" ]
  sources = [
    "upgrade_center.h",
    "upgrade_center.mm",
    "upgrade_recommended_details.h",
  ]
  deps = [
    "//base",
    "//components/infobars/core",
    "//components/version_info",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser",
    "//ios/chrome/browser/ui/commands",
    "//ios/chrome/browser/ui/infobars:resources",
    "//ios/web",
    "//net",
    "//ui/base",
    "//ui/gfx",
    "//url",
  ]
  libs = [ "UIKit.framework" ]
}

source_set("unit_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "upgrade_center_unittest.mm",
  ]
  deps = [
    ":upgrade",
    "//base",
    "//testing/gtest",
  ]
}
