# Copyright 2021 The Pigweed Authors # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy of # the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations under # the License. load( "//pw_build:pigweed.bzl", "pw_cc_library", ) package(default_visibility = ["//visibility:public"]) licenses(["notice"]) ################################################################################ # FuzzTest support # # Create FuzzTest-style fuzzers by adding a dep on //pw_fuzzer:fuzztest # Identifies when upstream FuzzTest is being used. config_setting( name = "use_fuzztest", testonly = True, flag_values = { "@pigweed//targets:pw_fuzzer_fuzztest_backend": "@com_google_fuzztest//fuzztest", }, ) pw_cc_library( name = "fuzztest", testonly = True, hdrs = ["public/pw_fuzzer/fuzztest.h"] + select({ ":use_fuzztest": ["private/pw_fuzzer/internal/fuzztest.h"], "//conditions:default": [], }), includes = ["public"] + select({ ":use_fuzztest": ["private"], "//conditions:default": [], }), deps = [ "//pw_containers", "//pw_result", "//pw_status", "//pw_string", "@pigweed//targets:pw_fuzzer_fuzztest_backend", ], ) pw_cc_library( name = "fuzztest_stub", testonly = True, hdrs = [ "private_overrides/pw_fuzzer/internal/fuzztest.h", "public_overrides/fuzztest/fuzztest.h", ], includes = [ "private_overrides", "public_overrides", ], deps = ["//pw_unit_test"], ) ################################################################################ # libFuzzer support # # Create libFuzzer-style fuzzers by using the `pw_fuzzer` template from # fuzzer.gni. pw_cc_library( name = "libfuzzer", hdrs = [ "public/pw_fuzzer/asan_interface.h", "public/pw_fuzzer/fuzzed_data_provider.h", ], includes = ["public"], )