Home | History | Annotate | Download | only in libfuzzer
      1 # Copyright 2016 The PDFium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 import("../../pdfium.gni")
      6 
      7 config("libfuzzer_config") {
      8   configs = [ "../..:pdfium_core_config" ]
      9 
     10   defines = [
     11     "PNG_PREFIX",
     12     "PNG_USE_READ_MACROS",
     13   ]
     14   include_dirs = [ "../.." ]
     15   if (pdf_enable_v8) {
     16     defines += [ "PDF_ENABLE_V8" ]
     17   }
     18   if (pdf_enable_xfa) {
     19     defines += [ "PDF_ENABLE_XFA" ]
     20   }
     21 }
     22 
     23 group("libfuzzer") {
     24   testonly = true
     25   deps = [
     26     ":pdf_cmap_fuzzer",
     27     ":pdf_codec_a85_fuzzer",
     28     ":pdf_codec_fax_fuzzer",
     29     ":pdf_codec_icc_fuzzer",
     30     ":pdf_codec_jbig2_fuzzer",
     31     ":pdf_codec_rle_fuzzer",
     32     ":pdf_font_fuzzer",
     33     ":pdf_hint_table_fuzzer",
     34     ":pdf_jpx_fuzzer",
     35     ":pdf_psengine_fuzzer",
     36     ":pdf_streamparser_fuzzer",
     37   ]
     38   if (pdf_enable_xfa) {
     39     deps += [
     40       ":pdf_cfx_barcode_fuzzer",
     41       ":pdf_cfx_saxreader_fuzzer",
     42       ":pdf_codec_bmp_fuzzer",
     43       ":pdf_codec_gif_fuzzer",
     44       ":pdf_codec_jpeg_fuzzer",
     45       ":pdf_codec_png_fuzzer",
     46       ":pdf_codec_tiff_fuzzer",
     47       ":pdf_css_fuzzer",
     48       ":pdf_fm2js_fuzzer",
     49       ":pdf_formcalc_fuzzer",
     50       ":pdf_lzw_fuzzer",
     51       ":pdf_xml_fuzzer",
     52     ]
     53   }
     54 }
     55 
     56 template("pdfium_fuzzer") {
     57   source_set(target_name) {
     58     sources = invoker.sources + [ "pdf_fuzzer_init.cc" ]
     59     deps = [
     60       "../..:pdfium",
     61     ]
     62     if (defined(invoker.deps)) {
     63       deps += invoker.deps
     64     }
     65     testonly = true
     66     configs -= [ "//build/config/compiler:chromium_code" ]
     67     configs += [
     68       "//build/config/compiler:no_chromium_code",
     69       ":libfuzzer_config",
     70     ]
     71   }
     72 }
     73 
     74 if (pdf_enable_xfa) {
     75   pdfium_fuzzer("pdf_cfx_barcode_fuzzer") {
     76     sources = [
     77       "pdf_cfx_barcode_fuzzer.cc",
     78     ]
     79   }
     80 
     81   pdfium_fuzzer("pdf_cfx_saxreader_fuzzer") {
     82     sources = [
     83       "pdf_cfx_saxreader_fuzzer.cc",
     84     ]
     85   }
     86 
     87   pdfium_fuzzer("pdf_codec_bmp_fuzzer") {
     88     sources = [
     89       "pdf_codec_bmp_fuzzer.cc",
     90       "xfa_codec_fuzzer.h",
     91     ]
     92   }
     93 
     94   pdfium_fuzzer("pdf_codec_gif_fuzzer") {
     95     sources = [
     96       "pdf_codec_gif_fuzzer.cc",
     97       "xfa_codec_fuzzer.h",
     98     ]
     99   }
    100 
    101   pdfium_fuzzer("pdf_codec_jpeg_fuzzer") {
    102     sources = [
    103       "pdf_codec_jpeg_fuzzer.cc",
    104       "xfa_codec_fuzzer.h",
    105     ]
    106   }
    107 
    108   pdfium_fuzzer("pdf_codec_png_fuzzer") {
    109     sources = [
    110       "pdf_codec_png_fuzzer.cc",
    111       "xfa_codec_fuzzer.h",
    112     ]
    113   }
    114 
    115   pdfium_fuzzer("pdf_codec_tiff_fuzzer") {
    116     sources = [
    117       "pdf_codec_tiff_fuzzer.cc",
    118       "xfa_codec_fuzzer.h",
    119     ]
    120   }
    121 
    122   pdfium_fuzzer("pdf_css_fuzzer") {
    123     sources = [
    124       "pdf_css_fuzzer.cc",
    125     ]
    126   }
    127 
    128   pdfium_fuzzer("pdf_fm2js_fuzzer") {
    129     sources = [
    130       "pdf_fm2js_fuzzer.cc",
    131     ]
    132   }
    133 
    134   pdfium_fuzzer("pdf_formcalc_fuzzer") {
    135     sources = [
    136       "pdf_formcalc_fuzzer.cc",
    137     ]
    138   }
    139 
    140   pdfium_fuzzer("pdf_lzw_fuzzer") {
    141     sources = [
    142       "pdf_lzw_fuzzer.cc",
    143     ]
    144   }
    145 
    146   pdfium_fuzzer("pdf_xml_fuzzer") {
    147     sources = [
    148       "pdf_xml_fuzzer.cc",
    149     ]
    150   }
    151 }
    152 
    153 pdfium_fuzzer("pdf_cmap_fuzzer") {
    154   sources = [
    155     "pdf_cmap_fuzzer.cc",
    156   ]
    157 }
    158 
    159 pdfium_fuzzer("pdf_codec_a85_fuzzer") {
    160   sources = [
    161     "pdf_codec_a85_fuzzer.cc",
    162   ]
    163 }
    164 
    165 pdfium_fuzzer("pdf_codec_fax_fuzzer") {
    166   sources = [
    167     "pdf_codec_fax_fuzzer.cc",
    168   ]
    169 }
    170 
    171 pdfium_fuzzer("pdf_codec_icc_fuzzer") {
    172   deps = [
    173     "../../third_party/:lcms2",
    174   ]
    175   sources = [
    176     "pdf_codec_icc_fuzzer.cc",
    177   ]
    178 }
    179 
    180 pdfium_fuzzer("pdf_codec_jbig2_fuzzer") {
    181   sources = [
    182     "pdf_codec_jbig2_fuzzer.cc",
    183   ]
    184 }
    185 
    186 pdfium_fuzzer("pdf_codec_rle_fuzzer") {
    187   sources = [
    188     "pdf_codec_rle_fuzzer.cc",
    189   ]
    190 }
    191 
    192 pdfium_fuzzer("pdf_font_fuzzer") {
    193   sources = [
    194     "pdf_font_fuzzer.cc",
    195   ]
    196 }
    197 
    198 pdfium_fuzzer("pdf_hint_table_fuzzer") {
    199   sources = [
    200     "pdf_hint_table_fuzzer.cc",
    201   ]
    202 }
    203 
    204 pdfium_fuzzer("pdf_jpx_fuzzer") {
    205   sources = [
    206     "pdf_jpx_fuzzer.cc",
    207   ]
    208 }
    209 
    210 pdfium_fuzzer("pdf_psengine_fuzzer") {
    211   sources = [
    212     "pdf_psengine_fuzzer.cc",
    213   ]
    214 }
    215 
    216 pdfium_fuzzer("pdf_streamparser_fuzzer") {
    217   sources = [
    218     "pdf_streamparser_fuzzer.cc",
    219   ]
    220 }
    221