# Copyright 2019 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("modular_config_constants") {
  sources = [ "modular_config_constants.h" ]
}

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

  public_deps = [
    ":modular_config_constants",
    "//sdk/fidl/fuchsia.modular.session",
    "//zircon/public/lib/fbl",
    "//zircon/public/lib/fit",
  ]

  deps = [
    ":json_xdr",
    "//garnet/public/lib/json",
    "//src/lib/fsl",
    "//src/modular/lib/fidl:clone",
    "//src/modular/lib/fidl:json_xdr",
    "//third_party/rapidjson",
  ]
}

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

  public_deps = [
    "//sdk/fidl/fuchsia.modular.session",
    "//sdk/lib/syslog/cpp",
    "//zircon/public/lib/fbl",
  ]

  deps = [ ":modular_config" ]
}

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

  public_deps = [ ":modular_config_constants" ]

  deps = [
    "//sdk/fidl/fuchsia.modular",
    "//sdk/fidl/fuchsia.modular.internal",
    "//sdk/fidl/fuchsia.modular.session",
    "//src/modular/lib/fidl:json_xdr",
  ]
}

source_set("unittests") {
  testonly = true

  sources = [
    "modular_config_accessor_unittest.cc",
    "modular_config_unittest.cc",
    "modular_config_xdr_unittest.cc",
  ]

  deps = [
    ":json_xdr",
    ":modular_config",
    ":modular_config_accessor",
    ":modular_config_constants",
    "//sdk/fidl/fuchsia.modular.internal",
    "//sdk/fidl/fuchsia.modular.session",
    "//sdk/lib/sys/cpp/testing:integration",
    "//src/modular/lib/pseudo_dir:pseudo_dir_server",
    "//src/modular/lib/pseudo_dir:pseudo_dir_utils",
    "//third_party/googletest:gtest",
    "//third_party/rapidjson",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
  ]
}
