| # Copyright 2020 Google LLC | |
| # | |
| # 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("@bazel_skylib//rules:common_settings.bzl", "bool_flag", "string_flag") | |
| label_flag( | |
| name = "cc_engine", | |
| build_setting_default = "//fuzzing/engines:replay", | |
| visibility = ["//visibility:public"], | |
| ) | |
| label_flag( | |
| name = "java_engine", | |
| build_setting_default = "//fuzzing/engines:jazzer", | |
| visibility = ["//visibility:public"], | |
| ) | |
| string_flag( | |
| name = "cc_engine_instrumentation", | |
| build_setting_default = "none", | |
| values = [ | |
| "none", | |
| "libfuzzer", | |
| "jazzer", | |
| "honggfuzz", | |
| "oss-fuzz", | |
| ], | |
| visibility = ["//visibility:public"], | |
| ) | |
| string_flag( | |
| name = "cc_engine_sanitizer", | |
| build_setting_default = "none", | |
| values = [ | |
| # No sanitizer instrumentation. | |
| "none", | |
| # Address sanitizer (ASAN). | |
| # See https://clang.llvm.org/docs/AddressSanitizer.html | |
| "asan", | |
| # Memory sanitizer (MSAN). | |
| # See https://clang.llvm.org/docs/MemorySanitizer.html | |
| "msan", | |
| # MSAN + origin tracking enabled. | |
| # Useful for debugging crash reproducers, 1.5-2x slower. | |
| "msan-origin-tracking", | |
| # Undefined Behavior sanitizer (UBSAN). | |
| # See https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html | |
| "ubsan", | |
| ], | |
| visibility = ["//visibility:public"], | |
| ) | |
| # If set, define the FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION macro | |
| # during compilation. | |
| # | |
| # See https://llvm.org/docs/LibFuzzer.html#fuzzer-friendly-build-mode | |
| bool_flag( | |
| name = "cc_fuzzing_build_mode", | |
| build_setting_default = True, | |
| visibility = ["//visibility:public"], | |
| ) | |
| exports_files([ | |
| "cc_defs.bzl", | |
| "java_defs.bzl", | |
| "instrum_opts.bzl", | |
| ]) |