# 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 = [ "../.." ] if (pdf_enable_v8) { defines += [ "PDF_ENABLE_V8" ] } if (pdf_enable_xfa) { defines += [ "PDF_ENABLE_XFA" ] } } 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_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" ] } } } 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_xfa) { pdfium_fuzzer("pdf_bidi_fuzzer_src") { sources = [ "pdf_bidi_fuzzer.cc", ] deps = [ "../../xfa/fgas", ] } 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 = [ "../../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 = [ "../../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", ] }