# 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("../tools/impeller.gni")

impeller_component("base") {
  sources = [
    "allocation.cc",
    "allocation.h",
    "backend_cast.h",
    "comparable.cc",
    "comparable.h",
    "config.h",
    "promise.cc",
    "promise.h",
    "strings.cc",
    "strings.h",
    "thread.cc",
    "thread.h",
    "thread_safety.cc",
    "thread_safety.h",
    "validation.cc",
    "validation.h",
    "version.cc",
    "version.h",
    "work_queue.cc",
    "work_queue.h",
    "work_queue_common.cc",
    "work_queue_common.h",
  ]

  if (is_ios || is_mac) {
    sources += [
      "platform/darwin/work_queue_darwin.cc",
      "platform/darwin/work_queue_darwin.h",
    ]
  }

  deps = [ "//flutter/fml" ]
}

impeller_component("base_unittests") {
  testonly = true
  sources = [ "base_unittests.cc" ]
  deps = [
    ":base",
    "//flutter/testing",
  ]
}
