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

import("//build/config/linux/pkg_config.gni")

source_set("caca") {
  sources = [
    "caca_event_source.cc",
    "caca_event_source.h",
    "caca_window.cc",
    "caca_window.h",
    "caca_window_manager.cc",
    "caca_window_manager.h",
    "ozone_platform_caca.cc",
    "ozone_platform_caca.h",
    "scoped_caca_types.cc",
    "scoped_caca_types.h",
  ]

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

  configs += [
    ":libcaca",
  ]
}

pkg_config("libcaca") {
  packages = [ "caca" ]
}
