# Copyright 2018 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/host.gni")
import("//build/rust/rustc_binary.gni")

if (is_host) {
  executable("json_validator") {
    sources = [ "main.cc" ]

    deps = [
      "//src/lib/fxl:fxl_cli",
      "//third_party/rapidjson",
      "//third_party/re2",
    ]
  }

  rustc_binary("json_validator_valico") {
    edition = "2021"
    sources = [ "src/main.rs" ]

    deps = [
      "//third_party/rust_crates:argh",
      "//third_party/rust_crates:serde_json",
      "//third_party/rust_crates:serde_json5",
      "//third_party/rust_crates:valico",
    ]
  }
}

install_host_tools("install") {
  deps = [
    ":json_validator",
    ":json_validator_valico",
  ]

  outputs = [
    "json_validator",
    "json_validator_valico",
  ]
}

group("tests") {
  testonly = true
  deps = [ "test:tests" ]
}
