# 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("archivist") {
  public = [
    "archivable.h",
    "archive.h",
    "archive_location.h",
  ]

  sources = [
    "archivable.cc",
    "archivable.h",
    "archive.cc",
    "archive.h",
    "archive_class_registration.cc",
    "archive_class_registration.h",
    "archive_database.cc",
    "archive_database.h",
    "archive_location.cc",
    "archive_statement.cc",
    "archive_statement.h",
    "archive_transaction.cc",
    "archive_transaction.h",
    "archive_vector.cc",
    "archive_vector.h",
  ]

  public_deps = [ "../base" ]

  deps = [
    "//flutter/fml",
    "//flutter/third_party/sqlite",
  ]
}

impeller_component("archivist_unittests") {
  testonly = true
  sources = [
    "archivist_fixture.cc",
    "archivist_fixture.h",
    "archivist_unittests.cc",
  ]
  deps = [
    ":archivist",
    "//flutter/testing",
  ]
}
