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

import("//build/cpp/sdk_source_set.gni")

sdk_source_set("cpp") {
  category = "partner"

  sdk_name = "sys_cpp"

  include_base = "//sdk"
  sources = [
    "component_context.cc",
    "component_context.h",
    "file_descriptor.cc",
    "file_descriptor.h",
    "outgoing_directory.cc",
    "outgoing_directory.h",
    "service_directory.cc",
    "service_directory.h",
    "termination_reason.cc",
    "termination_reason.h",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.io",
    "//sdk/fidl/fuchsia.sys",
    "//sdk/lib/sys/service/cpp",
    "//sdk/lib/vfs/cpp",
    "//zircon/public/lib/fit",
    "//zircon/public/lib/zx",
  ]

  deps = [ "//sdk/lib/fdio" ]

  public_configs = [ "//sdk/config" ]

  # TODO(fxbug.dev/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}
