blob: 5deda55616445e6c87efb824f9c50e986de727a5 [file] [log] [blame]
# Copyright 2016 The PDFium 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/config/jumbo.gni")
import("../../pdfium.gni")
config("fuzzer_config") {
configs = [ "../..:pdfium_core_config" ]
defines = [
"PNG_PREFIX",
"PNG_USE_READ_MACROS",
]
include_dirs = [ "../.." ]
}
group("fuzzers") {
testonly = true
deps = [
":pdf_cmap_fuzzer_src",
":pdf_codec_a85_fuzzer_src",
":pdf_codec_fax_fuzzer_src",
":pdf_codec_icc_fuzzer_src",
":pdf_codec_jbig2_fuzzer_src",
":pdf_codec_rle_fuzzer_src",
":pdf_font_fuzzer_src",
":pdf_hint_table_fuzzer_src",
":pdf_jpx_fuzzer_src",
":pdf_psengine_fuzzer_src",
":pdf_streamparser_fuzzer_src",
":pdf_xml_fuzzer_src",
":pdfium_fuzzer_src",
]
if (pdf_enable_v8) {
deps += [
":pdf_cjs_util_fuzzer_src",
":pdf_fx_date_helpers_fuzzer_src",
]
if (pdf_enable_xfa) {
deps += [
":pdf_bidi_fuzzer_src",
":pdf_cfx_barcode_fuzzer_src",
":pdf_codec_jpeg_fuzzer_src",
":pdf_css_fuzzer_src",
":pdf_fm2js_fuzzer_src",
":pdf_formcalc_fuzzer_src",
":pdfium_xfa_fuzzer_src",
]
if (pdf_enable_xfa_bmp) {
deps += [ ":pdf_codec_bmp_fuzzer_src" ]
}
if (pdf_enable_xfa_gif) {
deps += [
":pdf_codec_gif_fuzzer_src",
":pdf_lzw_fuzzer_src",
]
}
if (pdf_enable_xfa_png) {
deps += [ ":pdf_codec_png_fuzzer_src" ]
}
if (pdf_enable_xfa_tiff) {
deps += [ ":pdf_codec_tiff_fuzzer_src" ]
}
}
}
}
jumbo_source_set("utils") {
sources = [
"pdfium_fuzzer_util.cc",
"pdfium_fuzzer_util.h",
]
testonly = true
}
template("pdfium_public_fuzzer") {
jumbo_source_set(target_name) {
sources = invoker.sources + [
"pdfium_fuzzer_helper.cc",
"pdfium_fuzzer_helper.h",
]
deps = [
"../:test_support",
"../../:pdfium",
]
if (defined(invoker.deps)) {
deps += invoker.deps
}
testonly = true
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [
"//build/config/compiler:no_chromium_code",
":fuzzer_config",
]
if (pdf_enable_v8) {
configs += [ "//v8:external_startup_data" ]
deps += [
"//v8",
"//v8:v8_libplatform",
]
}
}
}
template("pdfium_fuzzer") {
jumbo_source_set(target_name) {
sources = invoker.sources + [ "pdf_fuzzer_init.cc" ]
deps = [
"../../:pdfium",
]
if (defined(invoker.deps)) {
deps += invoker.deps
}
testonly = true
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [
"//build/config/compiler:no_chromium_code",
":fuzzer_config",
]
if (pdf_enable_v8) {
configs += [ "//v8:external_startup_data" ]
}
}
}
if (pdf_enable_v8) {
pdfium_fuzzer("pdf_cjs_util_fuzzer_src") {
sources = [
"pdf_cjs_util_fuzzer.cc",
]
deps = [
"../../fxjs",
]
}
pdfium_fuzzer("pdf_fx_date_helpers_fuzzer_src") {
sources = [
"pdf_fx_date_helpers_fuzzer.cc",
]
deps = [
"../../fxjs",
]
}
if (pdf_enable_xfa) {
pdfium_fuzzer("pdf_bidi_fuzzer_src") {
sources = [
"pdf_bidi_fuzzer.cc",
]
deps = [
"../../core/fxge",
"../../xfa/fgas",
"../../xfa/fgas/layout",
]
}
pdfium_fuzzer("pdf_cfx_barcode_fuzzer_src") {
sources = [
"pdf_cfx_barcode_fuzzer.cc",
]
deps = [
"../../xfa/fwl",
]
}
if (pdf_enable_xfa_bmp) {
pdfium_fuzzer("pdf_codec_bmp_fuzzer_src") {
sources = [
"pdf_codec_bmp_fuzzer.cc",
"xfa_codec_fuzzer.h",
]
deps = [
"../:test_support",
"../../core/fxcodec",
"../../core/fxge",
]
}
}
if (pdf_enable_xfa_gif) {
pdfium_fuzzer("pdf_codec_gif_fuzzer_src") {
sources = [
"pdf_codec_gif_fuzzer.cc",
"xfa_codec_fuzzer.h",
]
deps = [
"../:test_support",
"../../core/fxcodec",
"../../core/fxge",
]
}
pdfium_fuzzer("pdf_lzw_fuzzer_src") {
sources = [
"pdf_lzw_fuzzer.cc",
]
deps = [
"../../core/fxcodec",
]
}
}
pdfium_fuzzer("pdf_codec_jpeg_fuzzer_src") {
sources = [
"pdf_codec_jpeg_fuzzer.cc",
"xfa_codec_fuzzer.h",
]
deps = [
"../:test_support",
"../../core/fxcodec",
"../../core/fxge",
]
}
if (pdf_enable_xfa_png) {
pdfium_fuzzer("pdf_codec_png_fuzzer_src") {
sources = [
"pdf_codec_png_fuzzer.cc",
"xfa_codec_fuzzer.h",
]
deps = [
"../:test_support",
"../../core/fxcodec",
"../../core/fxge",
]
}
}
if (pdf_enable_xfa_tiff) {
pdfium_fuzzer("pdf_codec_tiff_fuzzer_src") {
sources = [
"pdf_codec_tiff_fuzzer.cc",
"xfa_codec_fuzzer.h",
]
deps = [
"../:test_support",
"../../core/fxcodec",
"../../core/fxge",
]
}
}
pdfium_fuzzer("pdf_css_fuzzer_src") {
sources = [
"pdf_css_fuzzer.cc",
]
deps = [
"../../core/fxcrt/css",
]
}
pdfium_fuzzer("pdf_fm2js_fuzzer_src") {
sources = [
"pdf_fm2js_fuzzer.cc",
]
deps = [
"../../fxjs",
]
}
pdfium_fuzzer("pdf_formcalc_fuzzer_src") {
sources = [
"pdf_formcalc_fuzzer.cc",
]
deps = [
"../../xfa/fxfa/fm2js",
]
}
pdfium_public_fuzzer("pdfium_xfa_fuzzer_src") {
sources = [
"pdfium_xfa_fuzzer.cc",
]
}
}
}
pdfium_fuzzer("pdf_cmap_fuzzer_src") {
sources = [
"pdf_cmap_fuzzer.cc",
]
deps = [
"../../core/fpdfapi/font",
]
}
pdfium_fuzzer("pdf_codec_a85_fuzzer_src") {
sources = [
"pdf_codec_a85_fuzzer.cc",
]
deps = [
"../../core/fxcodec",
]
}
pdfium_fuzzer("pdf_codec_fax_fuzzer_src") {
sources = [
"pdf_codec_fax_fuzzer.cc",
]
deps = [
":utils",
"../../core/fxcodec",
]
}
pdfium_fuzzer("pdf_codec_icc_fuzzer_src") {
sources = [
"pdf_codec_icc_fuzzer.cc",
]
deps = [
"../../core/fxcodec",
"../../third_party/:lcms2",
]
}
pdfium_fuzzer("pdf_codec_jbig2_fuzzer_src") {
sources = [
"pdf_codec_jbig2_fuzzer.cc",
]
deps = [
":utils",
"../../core/fpdfapi/parser",
"../../core/fxcodec",
"../../core/fxge",
]
}
pdfium_fuzzer("pdf_codec_rle_fuzzer_src") {
sources = [
"pdf_codec_rle_fuzzer.cc",
]
deps = [
"../../core/fxcodec",
]
}
pdfium_fuzzer("pdf_font_fuzzer_src") {
sources = [
"pdf_font_fuzzer.cc",
]
}
pdfium_fuzzer("pdf_hint_table_fuzzer_src") {
sources = [
"pdf_hint_table_fuzzer.cc",
]
deps = [
"../../core/fpdfapi/parser",
]
}
pdfium_fuzzer("pdf_jpx_fuzzer_src") {
sources = [
"pdf_jpx_fuzzer.cc",
]
deps = [
"../../core/fxcodec",
"../../core/fxge",
]
}
pdfium_fuzzer("pdf_psengine_fuzzer_src") {
sources = [
"pdf_psengine_fuzzer.cc",
]
deps = [
"../../core/fpdfapi/page",
]
}
pdfium_fuzzer("pdf_streamparser_fuzzer_src") {
sources = [
"pdf_streamparser_fuzzer.cc",
]
deps = [
"../../core/fpdfapi/page",
"../../core/fpdfapi/parser",
]
}
pdfium_fuzzer("pdf_xml_fuzzer_src") {
sources = [
"pdf_xml_fuzzer.cc",
]
}
pdfium_public_fuzzer("pdfium_fuzzer_src") {
sources = [
"pdfium_fuzzer.cc",
]
}