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

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

  deps = [
    ":module_manifest_source",
    "//src/lib/json_parser",
    "//src/modular/lib/fidl:json_xdr",
    "//src/modular/lib/module_manifest:json_xdr",
    "//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",
    "//sdk/lib/sys/cpp",
    "//src/lib/fxl",
    "//src/modular/lib:maxwell_internal",
  ]
}
