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

component("wallpaper") {
  sources = [
    "wallpaper_layout.h",
    "wallpaper_resizer.cc",
    "wallpaper_resizer.h",
    "wallpaper_resizer_observer.h",
  ]

  defines = [ "WALLPAPER_IMPLEMENTATION" ]

  public_deps = [
    "//base",
    "//skia",
  ]
  deps = [
    "//base:prefs",
    "//content",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//url",
  ]
  if (is_chromeos) {
    sources += [
      "wallpaper_manager_base.cc",
      "wallpaper_manager_base.h",
    ]
    public_deps += [ "//third_party/icu" ]
    deps += [
      "//chromeos",
      "//components/signin/core/account_id",
      "//components/user_manager",
      "//content/public/browser",
    ]
  }
}

source_set("unit_tests") {
  testonly = true
  sources = [
    "wallpaper_resizer_unittest.cc",
  ]

  deps = [
    ":wallpaper",
    "//content/test:test_support",
    "//testing/gtest",
    "//ui/gfx",
  ]
}
