| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/buildflag_header.gni") |
| import("//sandbox/features.gni") |
| import("//testing/libfuzzer/fuzzer_test.gni") |
| |
| # Several targets want to include this header file. We separate it out |
| # here so multiple targets can depend on it. |
| source_set("sandbox_export") { |
| sources = [ "sandbox_export.h" ] |
| } |
| |
| source_set("common") { |
| sources = [ "constants.h" ] |
| } |
| |
| # Meta-target that forwards to the proper platform one. |
| group("sandbox") { |
| if (is_win) { |
| public_deps = [ "//sandbox/win:sandbox" ] |
| } else if (is_mac) { |
| public_deps = [ |
| "//sandbox/mac:seatbelt", |
| "//sandbox/mac:seatbelt_extension", |
| "//sandbox/mac:system_services", |
| "//sandbox/mac/mojom", |
| ] |
| } else if (is_linux || is_chromeos || is_android) { |
| public_deps = [ "//sandbox/linux:sandbox" ] |
| } |
| } |
| |
| buildflag_header("sandbox_buildflags") { |
| header = "sandbox_buildflags.h" |
| flags = [ |
| "USE_SECCOMP_BPF=$use_seccomp_bpf", |
| "DISABLE_SECCOMP_SSBD=$disable_seccomp_ssbd", |
| ] |
| } |
| |
| # This target must be here and not in win/ otherwise it would require a full |
| # parse of win/BUILD.gn which fails on non-Windows platforms. |
| # |
| # Although the code is Windows-based, the fuzzer is designed to work on Linux, |
| # so do not disable this fuzzer on non-Windows platforms. |
| fuzzer_test("sandbox_ipc_fuzzer") { |
| sources = [ |
| "win/fuzzer/fuzzer_types.h", |
| "win/fuzzer/sandbox_ipc_fuzzer.cc", |
| "win/src/crosscall_server.cc", |
| "win/src/ipc_args.cc", |
| ] |
| if (!is_win) { |
| defines = [ "SANDBOX_FUZZ_TARGET" ] |
| } |
| deps = [ |
| ":sandbox", |
| "//base", |
| ] |
| dict = "ipc.dict" |
| libfuzzer_options = [ "max_len=1024" ] |
| } |