# Copyright 2019 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

library("trace-reader") {
  sdk = "source"
  sdk_headers = [
    "trace-reader/file_reader.h",
    "trace-reader/reader.h",
    "trace-reader/reader_internal.h",
    "trace-reader/records.h",
  ]
  host = true
  sources = [
    "file_reader.cpp",
    "reader.cpp",
    "reader_internal.cpp",
    "records.cpp",
  ]
  configs += [ "$zx/public/gn/config:visibility_hidden" ]
  public_deps = [
    # <trace-reader/records.h> has #include <trace-engine/types.h>.
    "$zx/system/ulib/trace-engine:trace-engine-headers-for-reader.headers",

    # <trace-reader/records.h> has #include <fbl/array.h>.
    "$zx/system/ulib/fbl:headers",
  ]
  deps = [
    "$zx/system/ulib/fbl",
  ]
}

test("trace-reader-test") {
  sources = [
    "file_reader_tests.cpp",
    "reader_tests.cpp",
    "records_tests.cpp",
  ]
  deps = [
    "$zx/system/ulib/fbl",
    "$zx/system/ulib/trace-engine",
    "$zx/system/ulib/trace-reader",
    "$zx/system/ulib/zxtest",
  ]
  if (is_fuchsia) {
    deps += [
      "$zx/system/ulib/fdio",
      "$zx/system/ulib/zircon",
      "$zx/system/ulib/zx",
    ]
  }
}

group("tests") {
  testonly = true
  deps = [
    ":trace-reader-test",
  ]
}
