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

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/lib/fsl",
    "//peridot/lib/fidl:json_xdr",
    "//peridot/lib/firebase",
    "//peridot/lib/module_manifest:json_xdr",
    "//sdk/fidl/fuchsia.net.oldhttp",
    "//src/lib/fxl",
    "//third_party/rapidjson",
  ]
}

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

  deps = [
    "//src/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",
    "//peridot/lib:maxwell_internal",
    "//src/lib/fxl",
  ]
}
