# Copyright 2020 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.

import("//build/sdk/sdk_component_manifests.gni")
import("//build/sdk/sdk_molecule.gni")
import("//tools/cmc/build/expect_includes.gni")

sdk_component_manifests("syslog") {
  name = "syslog"
  manifests = [
    "client.shard.cml",
    "client.shard.cmx",
    "elf_stdio.shard.cml",
  ]
  category = "partner"
}

# Require dependent components to include logsink capabilities in their
# component manifests.
expect_includes("client_includes") {
  includes = [
    "client.shard.cml",
    "client.shard.cmx",
  ]
}

group("tests") {
  testonly = true

  deps = [
    "cpp:tests",
    "duplicate_header_test:tests",
    "streams/cpp:tests",
  ]
}
