# 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.

import("//build/rust/rustc_library.gni")
import("//build/test/test_package.gni")
import("//build/testing/environments.gni")

source_set("cm_schema_json") {
  inputs = [
    "cm_schema.json",
    "cml_schema.json",
    "cmx_schema.json",
  ]
}

rustc_library("cm_json") {
  with_unit_tests = true
  edition = "2018"
  deps = [
    "//third_party/rust_crates:failure",
    "//third_party/rust_crates:json5",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:serde_derive",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:valico",
  ]

  non_rust_deps = [ ":cm_schema_json" ]
}

test_package("cm_json_tests") {
  deps = [
    ":cm_json",
  ]

  tests = [
    {
      name = "cm_json_lib_test"
      dest = "cm_json_tests"
      environments = basic_envs
    },
  ]
}
