# Copyright 2017 The Chromium Authors. All rights reserved.
import("//build/config/sanitizers/sanitizers.gni")

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

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

  # Dont allow building on windows to avoid tryjob failure. This is OK since
  # libFuzzer doesn't build on windows anyway.
  if (!is_win) {
    configs += [ ":include_config" ]

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

    public_configs = [ ":include_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",
    ]
    deps = [
      "//third_party/protobuf:protobuf_full",
    ]

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