| # 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" ] |
| } |
| } |
| } |