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