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

source_set("module_manifest_source") {
  sources = [
    "module_manifest_source.cc",
    "module_manifest_source.h",
  ]

  public_deps = [
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
    "//peridot/public/lib:fidl",
  ]
}

source_set("json") {
  sources = [
    "json.cc",
    "json.h",
  ]

  deps = [
    ":module_manifest_source",
    "//peridot/lib/fidl:json_xdr",
    "//peridot/lib/rapidjson",
    "//third_party/rapidjson",
  ]
}

source_set("firebase_source") {
  sources = [
    "firebase_source.cc",
    "firebase_source.h",
  ]

  public_deps = [
    ":module_manifest_source",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
    "//garnet/public/lib/network/fidl",
    "//peridot/lib/fidl:json_xdr",
    "//peridot/lib/firebase",
    "//third_party/rapidjson",
  ]
}

source_set("package_util") {
  sources = [
    "package_util.cc",
    "package_util.h",
  ]

  deps = [
    "//garnet/public/lib/fxl",
  ]
}

source_set("module_package_source") {
  sources = [
    "module_package_source.cc",
    "module_package_source.h",
  ]

  public_deps = [
    ":json",
    ":module_manifest_source",
    ":package_util",
    "fidl",
    "//garnet/public/lib/app/cpp",
    "//garnet/public/lib/fxl",
  ]
}
