# 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("zxtest") {
  host = true
  sdk = "source"
  sdk_headers = [
    "zxtest/base/event-broadcaster.h",
    "zxtest/base/observer.h",
    "zxtest/base/test-case.h",
    "zxtest/base/test-driver.h",
    "zxtest/base/test-info.h",
    "zxtest/base/test-internal.h",
    "zxtest/base/test.h",
    "zxtest/base/types.h",
  ]
  sources = [
    "assertion.cpp",
    "c-wrappers.cpp",
    "event-broadcaster.cpp",
    "reporter.cpp",
    "runner-options.cpp",
    "runner.cpp",
    "test-case.cpp",
    "test-info.cpp",
    "test.cpp",
    "zxtest-main.cpp",
  ]
  configs += [ "$zx/public/gn/config:visibility_hidden" ]
  public_deps = [
      # Needed for <fbl/string.h>, <fbl/vector.h> and <fbl/function.h>.
      "$zx/system/ulib/fbl:headers",
  ]
  deps = [
    "$zx/system/ulib/fbl",
  ]
  if (is_fuchsia) {
    public_deps += [
      # Needed for <zircon/status.h>
      "$zx/system/ulib/zircon:headers",
    ]

    deps += [
      "$zx/system/ulib/zircon",
      "$zx/system/ulib/zx",
      "$zx/system/ulib/zxcpp",
    ]
  }
}
