# 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/fidl/fuchsia.modular",
  ]
}

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

  deps = [
    ":module_manifest_source",
    "//peridot/lib/module_manifest:json_xdr",
    "//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",
    "//peridot/lib/module_manifest:json_xdr",
    "//garnet/public/fidl/fuchsia.net.oldhttp",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
    "//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",
    "//garnet/public/lib/component/cpp",
    "//garnet/public/lib/fxl",
    "//peridot/lib:maxwell_internal",
  ]
}
