# Clean copy of third_party/libprotobuf-mutator/BUILD.gn from
# Chromium, with non-relavent portions removed

# Copyright 2017 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/config/sanitizers/sanitizers.gni")
import("//testing/libfuzzer/fuzzer_test.gni")

config("public_config") {
  include_dirs = [ "src/" ]
}

config("private_config") {
  cflags = [ "-Wno-shadow" ]
}

source_set("libprotobuf-mutator") {
  testonly = true

  # Remove *San and coverage for a performance boost.
  configs -= not_fuzzed_remove_configs
  configs += [
    "//build/config/sanitizers:not_fuzzed",
    ":private_config",
  ]

  public_configs = [ ":public_config" ]

  sources = [
    "src/src/binary_format.cc",
    "src/src/libfuzzer/libfuzzer_macro.cc",
    "src/src/libfuzzer/libfuzzer_mutator.cc",
    "src/src/mutator.cc",
    "src/src/text_format.cc",
    "src/src/utf8_fix.cc",
  ]

  # Allow users of LPM to use protobuf reflection and other features from
  # protobuf_full.
  public_deps = [ "//third_party/protobuf:protobuf_full" ]

  # Let ClusterFuzz builders know to not build targets that depend on
  # libprotobuf-mutator for AFL or Chrome OS.
  if (use_afl || current_toolchain == "//build/toolchain/cros:target") {
    all_dependent_configs = [ "//testing/libfuzzer:no_clusterfuzz" ]
  }
}
