# 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/fidl:json_xdr",
    "//peridot/lib/module_manifest: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/fidl/fuchsia.net.oldhttp",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
    "//peridot/lib/fidl:json_xdr",
    "//peridot/lib/firebase",
    "//peridot/lib/module_manifest:json_xdr",
    "//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",
  ]
}
