# Copyright 2014 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//build_overrides/build.gni")
import("//testing/libfuzzer/fuzzer_test.gni")

config("jsoncpp_config") {
  include_dirs = [ "source/include" ]
}

source_set("jsoncpp") {
  sources = [
    "source/include/json/allocator.h",
    "source/include/json/assertions.h",
    "source/include/json/config.h",
    "source/include/json/forwards.h",
    "source/include/json/json.h",
    "source/include/json/json_features.h",
    "source/include/json/reader.h",
    "source/include/json/value.h",
    "source/include/json/version.h",
    "source/include/json/writer.h",
    "source/src/lib_json/json_reader.cpp",
    "source/src/lib_json/json_tool.h",
    "source/src/lib_json/json_value.cpp",
    "source/src/lib_json/json_writer.cpp",
  ]

  public_configs = [ ":jsoncpp_config" ]

  defines = [
    "JSON_USE_EXCEPTION=0",
    "JSON_USE_NULLREF=0",
  ]

  include_dirs = [ "source/src/lib_json" ]

  if (!is_win || is_clang) {
    cflags_cc = [ "-Wno-implicit-fallthrough" ]
  }
}

if (build_with_chromium) {
  fuzzer_test("jsoncpp_fuzzer") {
    sources = [ "fuzzers/json_fuzzer.cc" ]

    deps = [ ":jsoncpp" ]

    include_dirs = [ "generated" ]

    dict = "//testing/libfuzzer/fuzzers/dicts/json.dict"
  }
}
