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

import("//build/config/jumbo.gni")
import("//build/config/ui.gni")

if (is_android) {
  import("//build/config/android/config.gni")
  import("//build/config/android/rules.gni")
}

jumbo_component("animation") {
  sources = [
    "animation.cc",
    "animation.h",
    "animation_android.cc",
    "animation_container.cc",
    "animation_container.h",
    "animation_container_element.h",
    "animation_container_observer.h",
    "animation_delegate.h",
    "animation_export.h",
    "animation_mac.mm",
    "animation_runner.cc",
    "animation_runner.h",
    "animation_win.cc",
    "linear_animation.cc",
    "linear_animation.h",
    "multi_animation.cc",
    "multi_animation.h",
    "slide_animation.cc",
    "slide_animation.h",
    "throb_animation.cc",
    "throb_animation.h",
    "tween.cc",
    "tween.h",
  ]

  if (is_android) {
    sources -= [
      "throb_animation.cc",
      "throb_animation.h",
    ]
  }

  if (is_mac) {
    libs = [
      "AppKit.framework",
      "CoreFoundation.framework",
      "CoreGraphics.framework",
      "CoreText.framework",
      "IOSurface.framework",
    ]
  }

  deps = [
    "//base",
    "//skia",
    "//ui/gfx:geometry_skia",
    "//ui/gfx:gfx_export",
    "//ui/gfx/geometry",
  ]

  if (is_android) {
    deps += [ "//ui/gfx:gfx_jni_headers" ]
  }

  defines = [ "ANIMATION_IMPLEMENTATION" ]
}
