# Copyright 2013 The Flutter 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("//flutter/impeller/tools/impeller.gni")

impeller_component("core") {
  sources = [
    "allocator.cc",
    "allocator.h",
    "buffer.cc",
    "buffer.h",
    "buffer_view.cc",
    "buffer_view.h",
    "capture.cc",
    "capture.h",
    "device_buffer.cc",
    "device_buffer.h",
    "device_buffer_descriptor.cc",
    "device_buffer_descriptor.h",
    "formats.cc",
    "formats.h",
    "host_buffer.cc",
    "host_buffer.h",
    "platform.cc",
    "platform.h",
    "range.cc",
    "range.h",
    "resource_binder.cc",
    "resource_binder.h",
    "runtime_types.cc",
    "runtime_types.h",
    "sampler.cc",
    "sampler.h",
    "sampler_descriptor.cc",
    "sampler_descriptor.h",
    "shader_types.cc",
    "shader_types.h",
    "texture.cc",
    "texture.h",
    "texture_descriptor.cc",
    "texture_descriptor.h",
    "vertex_buffer.cc",
    "vertex_buffer.h",
  ]

  deps = [
    "../base",
    "../geometry",
    "../image",
    "//flutter/fml",
  ]
}

impeller_component("allocator_unittests") {
  testonly = true

  sources = [ "allocator_unittests.cc" ]

  deps = [
    ":core",
    "../geometry",
    "//flutter/testing:testing_lib",
  ]
}
