# 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",
    "timing.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",
  ]
}
